From 254c4d997cd80d9991b4222d6e0f255d12fedc99 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 11 Jun 2001 06:44:43 +0000 Subject: [PATCH] * Removed fullscreen menu option from the "Window" menu * Updated the BUGS file * Fixed command line parameters when launched from Finder * Implemented setting the icon window caption * Implemented frameless style windows * Added note about SDL_RESIZABLE implementation to SDL_QuartzVideo.m * Window close requests now go through the event filtering system --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%4059 --- BUGS | 10 ++--- PBProjects.tar.gz | Bin 31626 -> 31537 bytes src/main/macosx/SDLMain.h | 1 - src/main/macosx/SDLMain.m | 36 +++++++-------- src/video/SDL_video.c | 66 ++++++++++++++-------------- src/video/quartz/SDL_QuartzVideo.h | 4 +- src/video/quartz/SDL_QuartzVideo.m | 50 ++++++++++++++------- src/video/quartz/SDL_QuartzWM.m | 19 +++++--- src/video/quartz/SDL_QuartzWindow.m | 6 +-- 9 files changed, 106 insertions(+), 86 deletions(-) diff --git a/BUGS b/BUGS index bded19035..19b460f1d 100644 --- a/BUGS +++ b/BUGS @@ -72,12 +72,12 @@ MacOS: MacOS X: Joystick and CD-ROM functions are not implemented yet. - Closing window from window's close widget not implemented yet. - - Minimizing the window erases the framebuffer to the pinstripe pattern. - + Window management buttons don't draw correctly. + Window may not close when unsetting video mode and resetting. - + + Resizeable windows aren't implemented yet. + Depth switching for windowed mode isn't implemented yet. Palette handling isn't implemented in windowed mode yet. diff --git a/PBProjects.tar.gz b/PBProjects.tar.gz index f63843bc106d69b8c76469d01b6c854bd6d0ba8a..64e7d9fdff81959ee0e7c20eed03907260ed2605 100644 GIT binary patch literal 31537 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 2 && strncmp (gArgv[1], "-psn", 4) == 0 ) - gArgc = 1; - + /* Hand off to main application code */ - SDL_main (gArgc, gArgv); - exit(0); + status = SDL_main (gArgc, gArgv); + + /* We're done, thank you for playing */ + exit(status); } @end @@ -76,13 +70,19 @@ int main (int argc, char **argv) { /* Copy the arguments into a global variable */ int i; - gArgc = argc; - gArgv = (char**) malloc (sizeof(*gArgv) * gArgc); + /* This is passed if we are launched by double-clicking */ + if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) { + gArgc = 1; + } else { + gArgc = argc; + } + gArgv = (char**) malloc (sizeof(*gArgv) * (gArgc+1)); assert (gArgv != NULL); for (i = 0; i < gArgc; i++) { - gArgv[i] = strdup (argv[i]); + gArgv[i] = argv[i]; } - + gArgv[i] = NULL; + NSApplicationMain (argc, argv); return 0; -} \ No newline at end of file +} diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index fca9754e1..9b108d9b8 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -100,10 +100,6 @@ static VideoBootStrap *bootstrap[] = { }; SDL_VideoDevice *current_video = NULL; -/* Places to store title and icon text for the app */ -static char *wm_title = NULL; -static char *wm_icon = NULL; - /* Various local functions */ int SDL_VideoInit(const char *driver_name, Uint32 flags); void SDL_VideoQuit(void); @@ -1254,13 +1250,13 @@ void SDL_VideoQuit (void) free(video->gamma); video->gamma = NULL; } - if ( wm_title != NULL ) { - free(wm_title); - wm_title = NULL; + if ( video->wm_title != NULL ) { + free(video->wm_title); + video->wm_title = NULL; } - if ( wm_icon != NULL ) { - free(wm_icon); - wm_icon = NULL; + if ( video->wm_icon != NULL ) { + free(video->wm_icon); + video->wm_icon = NULL; } /* Finish cleaning up video subsystem */ @@ -1539,35 +1535,41 @@ void SDL_WM_SetCaption (const char *title, const char *icon) SDL_VideoDevice *video = current_video; SDL_VideoDevice *this = current_video; - if ( title ) { - if ( wm_title ) { - free(wm_title); + if ( video ) { + if ( title ) { + if ( video->wm_title ) { + free(video->wm_title); + } + video->wm_title = (char *)malloc(strlen(title)+1); + if ( video->wm_title != NULL ) { + strcpy(video->wm_title, title); + } } - wm_title = (char *)malloc(strlen(title)+1); - if ( wm_title != NULL ) { - strcpy(wm_title, title); + if ( icon ) { + if ( video->wm_icon ) { + free(video->wm_icon); + } + video->wm_icon = (char *)malloc(strlen(icon)+1); + if ( video->wm_icon != NULL ) { + strcpy(video->wm_icon, icon); + } } - } - if ( icon ) { - if ( wm_icon ) { - free(wm_icon); + if ( (title || icon) && (video->SetCaption != NULL) ) { + video->SetCaption(this, video->wm_title,video->wm_icon); } - wm_icon = (char *)malloc(strlen(icon)+1); - if ( wm_icon != NULL ) { - strcpy(wm_icon, icon); - } - } - if ( (title || icon) && video && (video->SetCaption != NULL) ) { - video->SetCaption(this, wm_title, wm_icon); } } void SDL_WM_GetCaption (char **title, char **icon) { - if ( title ) { - *title = wm_title; - } - if ( icon ) { - *icon = wm_icon; + SDL_VideoDevice *video = current_video; + + if ( video ) { + if ( title ) { + *title = video->wm_title; + } + if ( icon ) { + *icon = video->wm_icon; + } } } diff --git a/src/video/quartz/SDL_QuartzVideo.h b/src/video/quartz/SDL_QuartzVideo.h index 05f4e3cfd..f0529b688 100644 --- a/src/video/quartz/SDL_QuartzVideo.h +++ b/src/video/quartz/SDL_QuartzVideo.h @@ -40,7 +40,7 @@ - SetColors sets palette correctly but clears framebuffer - Crash in CG after several mode switches - Retained windows don't draw their title bar quite right (OS Bug) - - Should I do depth switching for windowed modes? + - Should I do depth switching for windowed modes? - No, not usually. - Launch times are slow, maybe prebinding will help - Direct framebuffer access has some artifacts, maybe a driver issue - Cursor in 8 bit modes is screwy @@ -89,7 +89,6 @@ typedef struct SDL_PrivateVideoData { /* Window-only fields */ NSWindow *window; NSQuickDrawView *view; - NSString *title; } SDL_PrivateVideoData ; @@ -108,7 +107,6 @@ typedef struct SDL_PrivateVideoData { #define mode_flags (this->hidden->flags) #define window (this->hidden->window) #define windowView (this->hidden->view) -#define windowTitle (this->hidden->title) /* Interface for hardware fill not (yet) in the public API */ int CGSDisplayHWFill (CGDirectDisplayID id, unsigned int x, unsigned int y, diff --git a/src/video/quartz/SDL_QuartzVideo.m b/src/video/quartz/SDL_QuartzVideo.m index 01c077ba3..9219525b5 100644 --- a/src/video/quartz/SDL_QuartzVideo.m +++ b/src/video/quartz/SDL_QuartzVideo.m @@ -132,7 +132,6 @@ static int QZ_VideoInit (_THIS, SDL_PixelFormat *video_format) { kCFNumberSInt32Type, &device_height); video_format->BitsPerPixel = device_bpp; - windowTitle = @""; return 0; } @@ -293,6 +292,7 @@ static SDL_Surface* QZ_SetVideoFullScreen (_THIS, SDL_Surface *current, int widt current->pitch = CGDisplayBytesPerRow (display_id); #endif + current->flags = 0; current->w = width; current->h = height; current->flags |= SDL_FULLSCREEN; @@ -350,27 +350,37 @@ static SDL_Surface* QZ_SetVideoFullScreen (_THIS, SDL_Surface *current, int widt static SDL_Surface* QZ_SetVideoWindowed (_THIS, SDL_Surface *current, int width, int height, int bpp, Uint32 flags) { + unsigned int style; NSRect rect; rect = NSMakeRect (0, 0, width, height); - + +#if 1 // FIXME - the resize button doesn't show? Also need resize events... + flags &= ~SDL_RESIZABLE; +#endif + /* Set the window style based on input flags */ + if ( flags & SDL_NOFRAME ) { + style = NSBorderlessWindowMask; + } else { + style = NSTitledWindowMask; + style |= (NSMiniaturizableWindowMask | NSClosableWindowMask); + if ( flags & SDL_RESIZABLE ) + style |= NSResizableWindowMask; + } + /* Manually create a window, avoids having a nib file resource */ window = [ [ SDL_QuartzWindow alloc ] initWithContentRect:rect - styleMask:(NSTitledWindowMask | NSMiniaturizableWindowMask | - NSClosableWindowMask) - backing: //NSBackingStoreBuffered - NSBackingStoreRetained - defer:NO ]; - + styleMask:style backing:NSBackingStoreRetained defer:NO ]; if (window == nil) { SDL_SetError ("Could not create the Cocoa window"); return NULL; } - current->w = width; + current->flags = 0; + current->w = width; current->h = height; [ window setReleasedWhenClosed:YES ]; - [ window setTitle:windowTitle ]; + QZ_SetCaption(this, this->wm_title, this->wm_icon); [ window setAcceptsMouseMovedEvents:YES ]; [ window setViewsNeedDisplay:NO ]; [ window center ]; @@ -400,11 +410,17 @@ static SDL_Surface* QZ_SetVideoWindowed (_THIS, SDL_Surface *current, int width, current->pixels = GetPixBaseAddr ( GetPortPixMap ( [ windowView qdPort ] ) ); current->pitch = GetPixRowBytes ( GetPortPixMap ( [ windowView qdPort ] ) ); - /* Offset 22 pixels down to fill the full content region */ - current->pixels += 22 * current->pitch; - current->flags |= SDL_SWSURFACE; current->flags |= SDL_PREALLOC; + if ( flags & SDL_NOFRAME ) + current->flags |= SDL_NOFRAME; + if ( flags & SDL_RESIZABLE ) + current->flags |= SDL_RESIZABLE; + + /* Offset 22 pixels down to fill the full content region */ + if ( ! (current->flags & SDL_NOFRAME) ) { + current->pixels += 22 * current->pitch; + } this->UpdateRects = QZ_UpdateRects; } @@ -444,15 +460,15 @@ static SDL_Surface* QZ_SetVideoMode (_THIS, SDL_Surface *current, int width, switch (bpp) { case 16: /* (1)-5-5-5 RGB */ amask = 0; - rmask = 0x7c00; - gmask = 0x3e0; - bmask = 0x1f; + rmask = 0x7C00; + gmask = 0x03E0; + bmask = 0x001F; break; case 24: SDL_SetError ("24bpp is not available"); return NULL; case 32: /* (8)-8-8-8 ARGB */ - amask = 0x00000000; /* per-pixel alpha needs to be fixed */ + amask = 0x00000000; /* These are the correct semantics */ rmask = 0x00FF0000; gmask = 0x0000FF00; bmask = 0x000000FF; diff --git a/src/video/quartz/SDL_QuartzWM.m b/src/video/quartz/SDL_QuartzWM.m index c997d7045..d23848e3f 100644 --- a/src/video/quartz/SDL_QuartzWM.m +++ b/src/video/quartz/SDL_QuartzWM.m @@ -122,12 +122,19 @@ static void QZ_CheckMouseMode (_THIS) { } static void QZ_SetCaption (_THIS, const char *title, const char *icon) { - NSString *str = [ [ NSString alloc ] initWithCString:title ]; - if (window != nil) - [ window setTitle:str ]; - - [ windowTitle release ]; - windowTitle = str; + if ( window != nil ) { + NSString *string; + if ( title != NULL ) { + string = [ [ NSString alloc ] initWithCString:title ]; + [ window setTitle:string ]; + [ string release ]; + } + if ( icon != NULL ) { + string = [ [ NSString alloc ] initWithCString:icon ]; + [ window setMiniwindowTitle:string ]; + [ string release ]; + } + } } static void QZ_SetIcon (_THIS, SDL_Surface *icon, Uint8 *mask) { diff --git a/src/video/quartz/SDL_QuartzWindow.m b/src/video/quartz/SDL_QuartzWindow.m index 39b84fb47..2380f8acc 100644 --- a/src/video/quartz/SDL_QuartzWindow.m +++ b/src/video/quartz/SDL_QuartzWindow.m @@ -35,9 +35,7 @@ @implementation SDL_QuartzWindowDelegate - (BOOL)windowShouldClose:(id)sender { - SDL_Event event; - event.type = SDL_QUIT; - SDL_PushEvent(&event); + SDL_PrivateQuit(); return NO; } -@end \ No newline at end of file +@end