revision 1028:f99eeaf084c2
summary |
tree |
shortlog |
changelog |
graph |
changeset |
raw | bz2 | zip | gz changeset | 1028:f99eeaf084c2 |
parent | 1027:4e527bc96109 |
child | 1029:7138bbb9537c |
author | nkeynes |
date | Sun Jun 14 11:44:19 2009 +0000 (14 years ago) |
Add fullscreen support
src/cocoaui/cocoa_win.m | view | annotate | diff | log | ||
src/cocoaui/cocoaui.h | view | annotate | diff | log | ||
src/cocoaui/cocoaui.m | view | annotate | diff | log |
1.1 --- a/src/cocoaui/cocoa_win.m Sat Jun 13 07:12:51 2009 +00001.2 +++ b/src/cocoaui/cocoa_win.m Sun Jun 14 11:44:19 2009 +00001.3 @@ -21,6 +21,7 @@1.4 #include "dreamcast.h"1.5 #include "gdrom/gdrom.h"1.6 #include <ApplicationServices/ApplicationServices.h>1.7 +#include <Carbon/Carbon.h>1.9 @interface NSWindow (OSX10_5_and_later)1.10 #ifndef CGFLOAT_DEFINED1.11 @@ -207,6 +208,29 @@1.12 [self setStatusText: _("Stopped")];1.13 }1.14 }1.15 +- (BOOL)isFullscreen1.16 +{1.17 + return isFullscreen;1.18 +}1.19 +- (void)setFullscreen:(BOOL)full1.20 +{1.21 + if( full != isFullscreen ) {1.22 + isFullscreen = full;1.23 +1.24 + if( full ) {1.25 + savedFrame = [self frame];1.26 + SetSystemUIMode( kUIModeAllHidden, 0 );1.27 + NSRect screenRect = [[NSScreen mainScreen] frame];1.28 + screenRect.size.height += STATUSBAR_HEIGHT;1.29 + screenRect.origin.y -= STATUSBAR_HEIGHT;1.30 + NSRect targetRect = [self frameRectForContentRect: screenRect];1.31 + [self setFrame: targetRect display: YES];1.32 + } else {1.33 + SetSystemUIMode( kUIModeNormal, 0 );1.34 + [self setFrame: savedFrame display: YES];1.35 + }1.36 + }1.37 +}1.38 - (BOOL)isGrabbed1.39 {1.40 return isGrabbed;1.41 @@ -249,6 +273,10 @@1.42 [self setIsGrabbed: NO];1.43 return useGrab ? self : nil;1.44 }1.45 +- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)aScreen1.46 +{1.47 + return frameRect;1.48 +}1.49 @end1.51 LxdreamMainWindow *cocoa_gui_create_main_window()
2.1 --- a/src/cocoaui/cocoaui.h Sat Jun 13 07:12:51 2009 +00002.2 +++ b/src/cocoaui/cocoaui.h Sun Jun 14 11:44:19 2009 +00002.3 @@ -55,6 +55,8 @@2.4 NSTextField *status;2.5 BOOL isGrabbed;2.6 BOOL useGrab;2.7 + BOOL isFullscreen;2.8 + NSRect savedFrame;2.9 }2.10 - (id)initWithContentRect:(NSRect)contentRect;2.11 - (void)setStatusText:(const gchar *)text;2.12 @@ -63,6 +65,8 @@2.13 - (BOOL)isGrabbed;2.14 - (void)setIsGrabbed:(BOOL)grab;2.15 - (void)setUseGrab: (BOOL)grab;2.16 +- (BOOL)isFullscreen;2.17 +- (void)setFullscreen: (BOOL)fs;2.18 @end2.20 @interface LxdreamPrefsPane : NSView
3.1 --- a/src/cocoaui/cocoaui.m Sat Jun 13 07:12:51 2009 +00003.2 +++ b/src/cocoaui/cocoaui.m Sun Jun 14 11:44:19 2009 +00003.3 @@ -149,6 +149,8 @@3.4 [fileMenu addItem: [NSMenuItem separatorItem]];3.5 [fileMenu addItemWithTitle: NSMENU_("_Load State...") action: @selector(load_action:) keyEquivalent: @"o"];3.6 [fileMenu addItemWithTitle: NSMENU_("_Save State...") action: @selector(save_action:) keyEquivalent: @"s"];3.7 + [fileMenu addItem: [NSMenuItem separatorItem]];3.8 + [fileMenu addItemWithTitle: NSMENU_("_Full Screen...") action: @selector(fullscreen_action:) keyEquivalent: @"\r"];3.10 menuItem = [[NSMenuItem alloc] initWithTitle:NSMENU_("_File") action: nil keyEquivalent: @""];3.11 [menuItem setSubmenu: fileMenu];3.12 @@ -280,6 +282,10 @@3.13 {3.14 gdrom_list_set_selection( [sender tag] );3.15 }3.16 +- (void) fullscreen_action: (id)sender3.17 +{3.18 + [mainWindow setFullscreen: ![mainWindow isFullscreen]];3.19 +}3.20 @end3.23 @@ -314,7 +320,9 @@3.24 [NSApp activateIgnoringOtherApps: YES];3.26 register_gdrom_disc_change_hook( cocoa_gui_disc_changed, mainWindow );3.27 -3.28 + if( withFullscreen ) {3.29 + [mainWindow setFullscreen: YES];3.30 + }3.31 [pool release];3.32 return TRUE;3.33 }
.