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 bded1903..19b460f1 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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 Qd_ZY_mEZW}2=(dz09A`Png9R* literal 31626 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 Ofu1xweJ}?Iu>S|Jzf`0E diff --git a/src/main/macosx/SDLMain.h b/src/main/macosx/SDLMain.h index a3073552..18da5ca8 100644 --- a/src/main/macosx/SDLMain.h +++ b/src/main/macosx/SDLMain.h @@ -4,5 +4,4 @@ { } - (IBAction)quit:(id)sender; -- (IBAction)makeFullscreen:(id)sender; @end diff --git a/src/main/macosx/SDLMain.m b/src/main/macosx/SDLMain.m index 1c5f0dc2..779e8424 100644 --- a/src/main/macosx/SDLMain.m +++ b/src/main/macosx/SDLMain.m @@ -23,12 +23,6 @@ static char **gArgv; SDL_PushEvent(&event); } -/* Invoked from the "Make fulllscreen" menu item */ -- (void) makeFullscreen:(id)sender -{ - -} - /* Set the working directory to the .app's parent directory */ - (void) setupWorkingDirectory { @@ -53,16 +47,16 @@ static char **gArgv; /* Called when the internal event loop has just started running */ - (void) applicationDidFinishLaunching: (NSNotification *) note { + int status; + /* Set the working directory to the .app's parent directory */ [ self setupWorkingDirectory ]; - - /* This is passed if we are launched by double-clicking */ - if ( gArgc >= 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 fca9754e..9b108d9b 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 05f4e3cf..f0529b68 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 01c077ba..9219525b 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 c997d704..d23848e3 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 39b84fb4..2380f8ac 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