642 modeflags |= SDL_HWSURFACE; |
642 modeflags |= SDL_HWSURFACE; |
643 } else { |
643 } else { |
644 modeflags |= SDL_SWSURFACE; |
644 modeflags |= SDL_SWSURFACE; |
645 } |
645 } |
646 } else { |
646 } else { |
647 int posx,posy; |
|
648 short x2,y2,w2,h2; |
647 short x2,y2,w2,h2; |
649 |
648 |
650 GEM_UnlockScreen(this); |
649 GEM_UnlockScreen(this); |
651 |
650 |
652 /* Center our window */ |
651 /* Set window gadgets */ |
653 posx = GEM_desk_x; |
|
654 posy = GEM_desk_y; |
|
655 if (width<GEM_desk_w) |
|
656 posx += (GEM_desk_w - width) >> 1; |
|
657 if (height<GEM_desk_h) |
|
658 posy += (GEM_desk_h - height) >> 1; |
|
659 |
|
660 /* Calculate our window size and position */ |
|
661 if (!(flags & SDL_NOFRAME)) { |
652 if (!(flags & SDL_NOFRAME)) { |
662 GEM_win_type=NAME|MOVER|CLOSER|SMALLER; |
653 GEM_win_type=NAME|MOVER|CLOSER|SMALLER; |
663 if (flags & SDL_RESIZABLE) { |
654 if (flags & SDL_RESIZABLE) { |
664 GEM_win_type |= FULLER|SIZER; |
655 GEM_win_type |= FULLER|SIZER; |
665 modeflags |= SDL_RESIZABLE; |
656 modeflags |= SDL_RESIZABLE; |
667 } else { |
658 } else { |
668 GEM_win_type=0; |
659 GEM_win_type=0; |
669 modeflags |= SDL_NOFRAME; |
660 modeflags |= SDL_NOFRAME; |
670 } |
661 } |
671 |
662 |
672 if (!wind_calc(WC_BORDER, GEM_win_type, posx, posy, width, height, &x2, &y2, &w2, &h2)) { |
663 /* Calculate window size */ |
|
664 if (!wind_calc(WC_BORDER, GEM_win_type, 0,0,width,height, &x2,&y2,&w2,&h2)) { |
673 GEM_FreeBuffers(this); |
665 GEM_FreeBuffers(this); |
674 SDL_SetError("Can not calculate window attributes\n"); |
666 SDL_SetError("Can not calculate window attributes\n"); |
675 return NULL; |
667 return NULL; |
676 } |
668 } |
677 |
669 |
|
670 /* Center window */ |
|
671 x2 = GEM_desk_x+((GEM_desk_w-w2)>>1); |
|
672 y2 = GEM_desk_y+((GEM_desk_h-h2)>>1); |
|
673 |
678 /* Create window */ |
674 /* Create window */ |
679 GEM_handle=wind_create(GEM_win_type, x2, y2, w2, h2); |
675 GEM_handle=wind_create(GEM_win_type, x2,y2,w2,h2); |
680 if (GEM_handle<0) { |
676 if (GEM_handle<0) { |
681 GEM_FreeBuffers(this); |
677 GEM_FreeBuffers(this); |
682 SDL_SetError("Can not create window\n"); |
678 SDL_SetError("Can not create window\n"); |
683 return NULL; |
679 return NULL; |
684 } |
680 } |