comparison src/video/quartz/SDL_QuartzVideo.m @ 657:714053f573e7

Date: Thu, 24 Jul 2003 01:40:17 +0200 From: Andrew Straw Subject: Patch: Mac OS X window position environment variable
author Sam Lantinga <slouken@libsdl.org>
date Wed, 23 Jul 2003 04:39:44 +0000
parents 864e2d2a9a55
children f91ded895274
comparison
equal deleted inserted replaced
656:864e2d2a9a55 657:714053f573e7
251 } 251 }
252 } 252 }
253 return client_mode_list; 253 return client_mode_list;
254 } 254 }
255 255
256 static SDL_bool QZ_WindowPosition(_THIS, int *x, int *y)
257 {
258 const char *window = getenv("SDL_VIDEO_WINDOW_POS");
259 if ( window ) {
260 if ( sscanf(window, "%d,%d", x, y) == 2 ) {
261 return SDL_TRUE;
262 }
263 }
264 return SDL_FALSE;
265 }
266
256 /* 267 /*
257 Gamma functions to try to hide the flash from a rez switch 268 Gamma functions to try to hide the flash from a rez switch
258 Fade the display from normal to black 269 Fade the display from normal to black
259 Save gamma tables for fade back to normal 270 Save gamma tables for fade back to normal
260 */ 271 */
567 578
568 static SDL_Surface* QZ_SetVideoWindowed (_THIS, SDL_Surface *current, int width, 579 static SDL_Surface* QZ_SetVideoWindowed (_THIS, SDL_Surface *current, int width,
569 int height, int bpp, Uint32 flags) { 580 int height, int bpp, Uint32 flags) {
570 unsigned int style; 581 unsigned int style;
571 NSRect contentRect; 582 NSRect contentRect;
583 int center_window = 1;
584 int origin_x, origin_y;
572 585
573 current->flags = 0; 586 current->flags = 0;
574 current->w = width; 587 current->w = width;
575 current->h = height; 588 current->h = height;
576 589
604 style |= NSResizableWindowMask; 617 style |= NSResizableWindowMask;
605 current->flags |= SDL_RESIZABLE; 618 current->flags |= SDL_RESIZABLE;
606 } 619 }
607 } 620 }
608 621
622 if ( QZ_WindowPosition(this, &origin_x, &origin_y) ) {
623 center_window = 0;
624 contentRect.origin.x = (float)origin_x;
625 contentRect.origin.y = (float)origin_y;
626 }
627
609 /* Manually create a window, avoids having a nib file resource */ 628 /* Manually create a window, avoids having a nib file resource */
610 qz_window = [ [ SDL_QuartzWindow alloc ] 629 qz_window = [ [ SDL_QuartzWindow alloc ]
611 initWithContentRect:contentRect 630 initWithContentRect:contentRect
612 styleMask:style 631 styleMask:style
613 backing:NSBackingStoreBuffered 632 backing:NSBackingStoreBuffered
620 639
621 //[ qz_window setReleasedWhenClosed:YES ]; 640 //[ qz_window setReleasedWhenClosed:YES ];
622 QZ_SetCaption(this, this->wm_title, this->wm_icon); 641 QZ_SetCaption(this, this->wm_title, this->wm_icon);
623 [ qz_window setAcceptsMouseMovedEvents:YES ]; 642 [ qz_window setAcceptsMouseMovedEvents:YES ];
624 [ qz_window setViewsNeedDisplay:NO ]; 643 [ qz_window setViewsNeedDisplay:NO ];
625 [ qz_window center ]; 644 if ( center_window ) {
645 [ qz_window center ];
646 }
626 [ qz_window setDelegate: 647 [ qz_window setDelegate:
627 [ [ [ SDL_QuartzWindowDelegate alloc ] init ] autorelease ] ]; 648 [ [ [ SDL_QuartzWindowDelegate alloc ] init ] autorelease ] ];
628 } 649 }
629 /* We already have a window, just change its size */ 650 /* We already have a window, just change its size */
630 else { 651 else {