changeset 16841:6d8851188a34 draft

(svn r21575) -Codechange: [OSX] Use the same class for the window delegate routines in windowed screen drivers
author planetmaker <planetmaker@openttd.org>
date Tue, 21 Dec 2010 15:57:55 +0000
parents ff18b4be8c8d
children 61bbac9b2b61
files src/video/cocoa/cocoa_v.h src/video/cocoa/cocoa_v.mm src/video/cocoa/wnd_quartz.mm src/video/cocoa/wnd_quickdraw.mm
diffstat 4 files changed, 51 insertions(+), 96 deletions(-) [+]
line wrap: on
line diff
--- a/src/video/cocoa/cocoa_v.h
+++ b/src/video/cocoa/cocoa_v.h
@@ -124,4 +124,15 @@
 
 uint QZ_ListModes(OTTD_Point *modes, uint max_modes, CGDirectDisplayID display_id, int display_depth);
 
+/** Delegate for our NSWindow to send ask for quit on close */
+@interface OTTD_CocoaWindowDelegate : NSObject {
+	CocoaSubdriver *driver;
+}
+
+- (void)setDriver:(CocoaSubdriver*)drv;
+
+- (BOOL)windowShouldClose:(id)sender;
+@end
+
+
 #endif /* VIDEO_COCOA_H */
--- a/src/video/cocoa/cocoa_v.mm
+++ b/src/video/cocoa/cocoa_v.mm
@@ -407,4 +407,40 @@
 	[ _ottd_autorelease_pool release ];
 }
 
+@implementation OTTD_CocoaWindowDelegate
+/** Initialize the video driver */
+- (void)setDriver:(CocoaSubdriver*)drv
+{
+	driver = drv;
+}
+/** Handle closure requests */
+- (BOOL)windowShouldClose:(id)sender
+{
+	HandleExitGameRequest();
+
+	return NO;
+}
+/** Handle key acceptance */
+- (void)windowDidBecomeKey:(NSNotification*)aNotification
+{
+	driver->active = true;
+}
+/** Resign key acceptance */
+- (void)windowDidResignKey:(NSNotification*)aNotification
+{
+	driver->active = false;
+}
+/** Handle becoming main window */
+- (void)windowDidBecomeMain:(NSNotification*)aNotification
+{
+	driver->active = true;
+}
+/** Resign being main window */
+- (void)windowDidResignMain:(NSNotification*)aNotification
+{
+	driver->active = false;
+}
+
+@end
+
 #endif /* WITH_COCOA */
--- a/src/video/cocoa/wnd_quartz.mm
+++ b/src/video/cocoa/wnd_quartz.mm
@@ -62,16 +62,6 @@
 - (id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)styleMask backing:(NSBackingStoreType)backingType defer:(BOOL)flag;
 @end
 
-/* Delegate for our NSWindow to send ask for quit on close */
-@interface OTTD_QuartzWindowDelegate : NSObject {
-	WindowQuartzSubdriver *driver;
-}
-
-- (void)setDriver:(WindowQuartzSubdriver*)drv;
-
-- (BOOL)windowShouldClose:(id)sender;
-@end
-
 /* Subclass of NSView to fix Quartz rendering */
 @interface OTTD_QuartzView : NSView {
 	WindowQuartzSubdriver *driver;
@@ -243,42 +233,6 @@
 
 @end
 
-@implementation OTTD_QuartzWindowDelegate
-
-- (void)setDriver:(WindowQuartzSubdriver*)drv
-{
-	driver = drv;
-}
-
-- (BOOL)windowShouldClose:(id)sender
-{
-	HandleExitGameRequest();
-
-	return NO;
-}
-
-- (void)windowDidBecomeKey:(NSNotification*)aNotification
-{
-	driver->active = true;
-}
-
-- (void)windowDidResignKey:(NSNotification*)aNotification
-{
-	driver->active = false;
-}
-
-- (void)windowDidBecomeMain:(NSNotification*)aNotification
-{
-	driver->active = true;
-}
-
-- (void)windowDidResignMain:(NSNotification*)aNotification
-{
-	driver->active = false;
-}
-
-@end
-
 @implementation OTTD_QuartzView
 
 - (void)setDriver:(WindowQuartzSubdriver*)drv
@@ -400,7 +354,7 @@
 
 	/* Check if we should recreate the window */
 	if (this->window == nil) {
-		OTTD_QuartzWindowDelegate *delegate;
+		OTTD_CocoaWindowDelegate *delegate;
 
 		/* Set the window style */
 		unsigned int style = NSTitledWindowMask;
@@ -436,7 +390,7 @@
 
 		[ this->window useOptimizedDrawing:YES ];
 
-		delegate = [ [ OTTD_QuartzWindowDelegate alloc ] init ];
+		delegate = [ [ OTTD_CocoaWindowDelegate alloc ] init ];
 		[ delegate setDriver:this ];
 		[ this->window setDelegate:[ delegate autorelease ] ];
 	} else {
--- a/src/video/cocoa/wnd_quickdraw.mm
+++ b/src/video/cocoa/wnd_quickdraw.mm
@@ -62,16 +62,6 @@
 - (id)initWithContentRect:(NSRect)contentRect styleMask:(unsigned int)styleMask backing:(NSBackingStoreType)backingType defer:(BOOL)flag;
 @end
 
-/* Delegate for our NSWindow to send ask for quit on close */
-@interface OTTD_QuickdrawWindowDelegate : NSObject {
-	WindowQuickdrawSubdriver *driver;
-}
-
-- (void)setDriver:(WindowQuickdrawSubdriver*)drv;
-
-- (BOOL)windowShouldClose:(id)sender;
-@end
-
 class WindowQuickdrawSubdriver: public CocoaSubdriver {
 private:
 	/**
@@ -236,42 +226,6 @@
 
 @end
 
-@implementation OTTD_QuickdrawWindowDelegate
-- (void)setDriver:(WindowQuickdrawSubdriver*)drv
-{
-	driver = drv;
-}
-
-- (BOOL)windowShouldClose:(id)sender
-{
-	HandleExitGameRequest();
-
-	return NO;
-}
-
-- (void)windowDidBecomeKey:(NSNotification*)aNotification
-{
-	driver->active = true;
-}
-
-- (void)windowDidResignKey:(NSNotification*)aNotification
-{
-	driver->active = false;
-}
-
-- (void)windowDidBecomeMain:(NSNotification*)aNotification
-{
-	driver->active = true;
-}
-
-- (void)windowDidResignMain:(NSNotification*)aNotification
-{
-	driver->active = false;
-}
-
-@end
-
-
 static const int _resize_icon_width  = 16;
 static const int _resize_icon_height = 16;
 
@@ -329,7 +283,7 @@
 
 	/* Check if we should recreate the window */
 	if (this->window == nil) {
-		OTTD_QuickdrawWindowDelegate *delegate;
+		OTTD_CocoaWindowDelegate *delegate;
 
 		/* Set the window style */
 		unsigned int style = NSTitledWindowMask;
@@ -360,7 +314,7 @@
 		[ this->window setAcceptsMouseMovedEvents:YES ];
 		[ this->window setViewsNeedDisplay:NO ];
 
-		delegate = [ [ OTTD_QuickdrawWindowDelegate alloc ] init ];
+		delegate = [ [ OTTD_CocoaWindowDelegate alloc ] init ];
 		[ delegate setDriver:this ];
 		[ this->window setDelegate: [ delegate autorelease ] ];
 	} else {