From 34cfcc5169cafa8ae9e0d6469e20dc11c122c077 Mon Sep 17 00:00:00 2001 From: "SND\\weimingzhi_cp" Date: Fri, 18 Feb 2011 08:58:58 +0000 Subject: -(SysBeep)Added Mac OS X port of P.E.Op.S OpenGL plugin. (Patch #8361) -Fixed help message for Windows. (Issue #8028). git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@63522 e17a0e51-4ae3-4d35-97c3-1a29b211df97 --- macosx/plugins/PeopsXgl/macsrc/PluginWindow.m | 155 ++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 macosx/plugins/PeopsXgl/macsrc/PluginWindow.m (limited to 'macosx/plugins/PeopsXgl/macsrc/PluginWindow.m') diff --git a/macosx/plugins/PeopsXgl/macsrc/PluginWindow.m b/macosx/plugins/PeopsXgl/macsrc/PluginWindow.m new file mode 100644 index 00000000..feffedec --- /dev/null +++ b/macosx/plugins/PeopsXgl/macsrc/PluginWindow.m @@ -0,0 +1,155 @@ +/*************************************************************************** + PluginWindow.m + PeopsSoftGPU + + Created by Gil Pedersen on Wed April 21 2004. + Copyright (c) 2004 Gil Pedersen. + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +#import "PluginWindow.h" +@implementation NetSfPeopsOpenGLGPUPluginWindow +/* +- (BOOL)windowShouldClose:(id)sender +{ + [[NSNotificationCenter defaultCenter] postNotificationName:@"emuWindowDidClose" object:self]; + + return YES; +}*/ + +- (void)sendEvent:(NSEvent *)theEvent +{ + int type = [theEvent type]; + if (type == NSKeyDown || type == NSKeyUp) { + if (type == NSKeyDown && [theEvent keyCode] == 53 /* escape */) { + // reroute to menu event + [[NSApp mainMenu] performKeyEquivalent:theEvent]; + } + + // ignore all key Events + return; + } + + [super sendEvent:theEvent]; +} + +- (id) initWithContentRect: (NSRect) contentRect + styleMask: (unsigned int) aStyle + backing: (NSBackingStoreType) bufferingType + defer: (BOOL) flag +{ + if (self = [super initWithContentRect: contentRect + styleMask: NSBorderlessWindowMask + backing: bufferingType + defer: flag]) + { + return self; + } + + return nil; +} + + + +- (void) windowDidResize:(NSNotification*)notice +{ +} + +- (void) windowDidUpdate: (NSNotification*)notice +{ +} + +- (void)windowDidMove:(NSNotification *)notification +{ + +} + + + +- (BOOL) canBecomeKeyWindow +{ + return YES; +} + +- (void)keyDown:(NSEvent *)theEvent +{ +} + +- (void)keyUp:(NSEvent *)theEvent +{ +} + + +- (BOOL)validateMenuItem:(NSMenuItem*) menuItem +{ +// SEL bleh = [menuItem action]; +// NSLog(@"Validate: %@, action: %@", menuItem, NSStringFromSelector(bleh)); + if ([menuItem action] == @selector(performClose:)) + return YES; + + return NO; + +} + +- (void) performClose: (id)sender +{ + if ([self delegate]){ + // NSLog(@"We have a delegate %@", [self delegate]); + + if ([[self delegate] windowShouldClose:sender]) + [super close]; + } + else { + // hmm, just explode I guess + [super close]; + } +} + +- (void)mouseDown:(NSEvent *)theEvent { + + // Get the mouse location in window coordinates. + initialLocation = [theEvent locationInWindow]; + +} + + + +/* + + Once the user starts dragging the mouse, move the window with it. The window has no title bar for the user to drag (so we have to implement dragging ourselves) + + */ + +- (void)mouseDragged:(NSEvent *)theEvent { + + NSRect screenVisibleFrame = [[NSScreen mainScreen] visibleFrame]; + NSRect windowFrame = [self frame]; + NSPoint newOrigin = windowFrame.origin; + + // Get the mouse location in window coordinates. + NSPoint currentLocation = [theEvent locationInWindow]; + + // Update the origin with the difference between the new mouse location and the old mouse location. + newOrigin.x += (currentLocation.x - initialLocation.x); + newOrigin.y += (currentLocation.y - initialLocation.y); + + // Don't let window get dragged up under the menu bar + if ((newOrigin.y + windowFrame.size.height) > (screenVisibleFrame.origin.y + screenVisibleFrame.size.height)) { + newOrigin.y = screenVisibleFrame.origin.y + (screenVisibleFrame.size.height - windowFrame.size.height); + } + + // Move the window to the new location + [self setFrameOrigin:newOrigin]; + +} + +@end -- cgit v1.2.3