![SND\MaddTheSane_cp](/assets/img/avatar_default.png)
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@92227 e17a0e51-4ae3-4d35-97c3-1a29b211df97
145 lines
3.9 KiB
Objective-C
Executable File
145 lines
3.9 KiB
Objective-C
Executable File
/***************************************************************************
|
|
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
|
|
{
|
|
NSWindow* myParent;
|
|
NSPoint initialLocation;
|
|
}
|
|
/*
|
|
- (BOOL)windowShouldClose:(id)sender
|
|
{
|
|
[[NSNotificationCenter defaultCenter] postNotificationName:@"emuWindowDidClose" object:self];
|
|
|
|
return YES;
|
|
}*/
|
|
|
|
- (void)sendEvent:(NSEvent *)theEvent
|
|
{
|
|
NSEventType 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];
|
|
}
|
|
|
|
- (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 {
|
|
|
|
if ([self level] == NSScreenSaverWindowLevel)
|
|
// we don't drag when in fullscreen
|
|
// note that it is only because a quirk in the ordering of events
|
|
// and the time that NSScreenSaverWindowLevel is set
|
|
// that we'll never be dragged while in the background
|
|
return;
|
|
|
|
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
|