| version 1.4, 2003/10/21 14:57:41 | version 1.6, 2003/10/26 12:12:12 | 
| Line 31  typedef struct { | Line 31  typedef struct { | 
 | BYTE                            r16b; | BYTE                            r16b; | 
 | BYTE                            l16r; | BYTE                            l16r; | 
 | BYTE                            l16g; | BYTE                            l16g; | 
 |  | BYTE                            menudisp; | 
 |  | int                                     menusize; | 
 |  | HMENU                           menuhdl; | 
 | RECT                            scrn; | RECT                            scrn; | 
 | RECT                            rect; | RECT                            rect; | 
 | PALETTEENTRY            pal[256]; | PALETTEENTRY            pal[256]; | 
| Line 205  static void clearoutofrect(const RECT *t | Line 208  static void clearoutofrect(const RECT *t | 
 | static void clearoutscreen(void) { | static void clearoutscreen(void) { | 
 |  |  | 
 | RECT    base; | RECT    base; | 
 |  | POINT   clipt; | 
 | RECT    target; | RECT    target; | 
 |  |  | 
 | GetClientRect(hWndMain, &base); | GetClientRect(hWndMain, &base); | 
 |  | clipt.x = 0; | 
 |  | clipt.y = 0; | 
 |  | ClientToScreen(hWndMain, &clipt); | 
 |  | base.left += clipt.x; | 
 |  | base.top += clipt.y; | 
 |  | base.right += clipt.x; | 
 |  | base.bottom += clipt.y; | 
 | target.left = base.left + ddraw.scrn.left; | target.left = base.left + ddraw.scrn.left; | 
 | target.top = base.top + ddraw.scrn.top; | target.top = base.top + ddraw.scrn.top; | 
 | target.right = base.left + ddraw.scrn.right; | target.right = base.left + ddraw.scrn.right; | 
| Line 217  static void clearoutscreen(void) { | Line 228  static void clearoutscreen(void) { | 
 |  |  | 
 | static void clearoutfullscreen(void) { | static void clearoutfullscreen(void) { | 
 |  |  | 
| clearoutofrect(&ddraw.scrn, &ddraw.rect); | RECT    r; | 
|  |  | 
|  | r.left = 0; | 
|  | r.top = (ddraw.menuhdl)?0:ddraw.menusize; | 
|  | r.right = ddraw.width;                  // (+ ddraw.extend) | 
|  | r.bottom = ddraw.height; | 
|  | clearoutofrect(&ddraw.scrn, &r); | 
 | dclock_redraw(); | dclock_redraw(); | 
 | } | } | 
 |  |  | 
| Line 321  BOOL scrnmng_create(BYTE scrnmode) { | Line 338  BOOL scrnmng_create(BYTE scrnmode) { | 
 | winstyleex |= WS_EX_TOPMOST; | winstyleex |= WS_EX_TOPMOST; | 
 | CheckMenuItem(hmenu, IDM_WINDOW, MF_UNCHECKED); | CheckMenuItem(hmenu, IDM_WINDOW, MF_UNCHECKED); | 
 | CheckMenuItem(hmenu, IDM_FULLSCREEN, MF_CHECKED); | CheckMenuItem(hmenu, IDM_FULLSCREEN, MF_CHECKED); | 
 |  | ddraw.menudisp = 0; | 
 |  | ddraw.menusize = GetSystemMetrics(SM_CYMENU); | 
 |  | ddraw.menuhdl = GetMenu(hWndMain); | 
 |  | SetMenu(hWndMain, NULL); | 
 | } | } | 
 | else { | else { | 
 | scrnmng.flag = SCRNFLAG_HAVEEXTEND; | scrnmng.flag = SCRNFLAG_HAVEEXTEND; | 
| Line 488  void scrnmng_destroy(void) { | Line 509  void scrnmng_destroy(void) { | 
 | if (ddraw.ddraw1) { | if (ddraw.ddraw1) { | 
 | ddraw.ddraw1->Release(); | ddraw.ddraw1->Release(); | 
 | } | } | 
 |  | scrnmng_enablemenubar(); | 
 | ZeroMemory(&ddraw, sizeof(ddraw)); | ZeroMemory(&ddraw, sizeof(ddraw)); | 
 | } | } | 
 |  |  | 
| Line 507  RGB16 scrnmng_makepal16(RGB32 pal32) { | Line 529  RGB16 scrnmng_makepal16(RGB32 pal32) { | 
 | (pal.p.r << ddraw.l16r) + (pal.p.b >> ddraw.r16b))); | (pal.p.r << ddraw.l16r) + (pal.p.b >> ddraw.r16b))); | 
 | } | } | 
 |  |  | 
 |  | void scrnmng_enablemenubar(void) { | 
 |  |  | 
 |  | if (ddraw.menuhdl) { | 
 |  | SetMenu(hWndMain, ddraw.menuhdl); | 
 |  | ddraw.menuhdl = NULL; | 
 |  | DrawMenuBar(hWndMain); | 
 |  | } | 
 |  | } | 
 |  |  | 
 |  | void scrnmng_disablemenubar(void) { | 
 |  |  | 
 |  | if (ddraw.menuhdl == NULL) { | 
 |  | ddraw.menuhdl = GetMenu(hWndMain); | 
 |  | SetMenu(hWndMain, NULL); | 
 |  | } | 
 |  | } | 
 |  |  | 
 |  | void scrnmng_fullscrnmenu(int y) { | 
 |  |  | 
 |  | BYTE    menudisp; | 
 |  |  | 
 |  | if (scrnmng.flag & SCRNFLAG_FULLSCREEN) { | 
 |  | menudisp = ((y >= 0) && (y < ddraw.menusize))?1:0; | 
 |  | if (ddraw.menudisp != menudisp) { | 
 |  | ddraw.menudisp = menudisp; | 
 |  | if (menudisp == 1) { | 
 |  | scrnmng_enablemenubar(); | 
 |  | } | 
 |  | else { | 
 |  | scrnmng_disablemenubar(); | 
 |  | clearoutfullscreen(); | 
 |  | } | 
 |  | } | 
 |  | } | 
 |  | } | 
 |  |  | 
 | void scrnmng_topwinui(void) { | void scrnmng_topwinui(void) { | 
 |  |  | 
 | mouse_running(MOUSE_STOP); | mouse_running(MOUSE_STOP); | 
| Line 531  void scrnmng_clearwinui(void) { | Line 589  void scrnmng_clearwinui(void) { | 
 | } | } | 
 | } | } | 
 | if (scrnmng.flag & SCRNFLAG_FULLSCREEN) { | if (scrnmng.flag & SCRNFLAG_FULLSCREEN) { | 
 |  | scrnmng_disablemenubar(); | 
 | clearoutfullscreen(); | clearoutfullscreen(); | 
 |  | ddraw.menudisp = 0; | 
 | } | } | 
 | mouse_running(MOUSE_CONT); | mouse_running(MOUSE_CONT); | 
 | } | } |