Changeset 6008 for trunk/src/user32/pmwindow.cpp
- Timestamp:
- Jun 14, 2001, 1:30:57 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/pmwindow.cpp
r5993 r6008 1 /* $Id: pmwindow.cpp,v 1.13 5 2001-06-13 10:29:45sandervl Exp $ */1 /* $Id: pmwindow.cpp,v 1.136 2001-06-14 11:30:56 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Managment Code for OS/2 … … 15 15 #define INCL_GPICONTROL /* GPI control Functions */ 16 16 #define INCL_DOSPROCESS 17 #define INCL_DOSMODULEMGR 17 18 #define INCL_WINTRACKRECT 18 19 … … 51 52 //#define USE_CALCVALIDRECT 52 53 53 HMQ hmq = 0; /* Message queue handle */54 HAB hab = 0;55 56 RECTL desktopRectl = {0};57 ULONG ScreenWidth= 0;58 ULONG ScreenHeight= 0;59 ULONG ScreenBitsPerPel = 0;60 BOOL fOS2Look = FALSE;54 HMQ hmq = 0; /* Message queue handle */ 55 HAB hab = 0; 56 RECTL desktopRectl = {0}; 57 ULONG ScreenWidth = 0; 58 ULONG ScreenHeight = 0; 59 ULONG ScreenBitsPerPel = 0; 60 BOOL fOS2Look = FALSE; 61 HBITMAP hbmFrameMenu[3] = {0}; 61 62 62 63 static PFNWP pfnFrameWndProc = NULL; … … 64 65 MRESULT EXPENTRY Win32WindowProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2); 65 66 MRESULT EXPENTRY Win32FrameWindowProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2); 67 void FrameReplaceMenuItem(HWND hwndMenu, ULONG nIndex, ULONG idOld, ULONG idNew, 68 HBITMAP hbmNew); 69 70 VOID APIENTRY DspInitSystemDriverName(PSZ pszDriverName, ULONG lenDriverName); 66 71 67 72 //****************************************************************************** … … 146 151 /* create memory device context */ 147 152 hdc = DevOpenDC(hab, OD_MEMORY, "*", 5L, (PDEVOPENDATA)&dop, NULLHANDLE); 153 154 fOS2Look = PROFILE_GetOdinIniBool(ODINSYSTEM_SECTION, "OS2Look", FALSE); 155 if(fOS2Look) 156 { 157 CHAR szDisplay[30]; 158 HMODULE hModDisplay; 159 160 SYSCOLOR_Init(FALSE); //use OS/2 colors 161 162 DspInitSystemDriverName(szDisplay, sizeof(szDisplay)); 163 DosQueryModuleHandle(szDisplay, &hModDisplay); 164 165 hbmFrameMenu[0] = GpiLoadBitmap(hdc, hModDisplay, SBMP_MINBUTTON, 0, 0); 166 hbmFrameMenu[1] = GpiLoadBitmap(hdc, hModDisplay, SBMP_MAXBUTTON, 0, 0); 167 hbmFrameMenu[2] = GpiLoadBitmap(hdc, hModDisplay, SBMP_RESTOREBUTTON, 0, 0); 168 } 169 148 170 DevQueryCaps(hdc, CAPS_COLOR_BITCOUNT, 1, (PLONG)&ScreenBitsPerPel); 149 171 DevCloseDC(hdc); 150 151 fOS2Look = PROFILE_GetOdinIniBool(ODINSYSTEM_SECTION, "OS2Look", FALSE);152 if(fOS2Look) {153 SYSCOLOR_Init(FALSE); //use OS/2 colors154 }155 172 156 173 dprintf(("InitPM: Desktop (%d,%d) bpp %d", ScreenWidth, ScreenHeight, ScreenBitsPerPel)); … … 164 181 { 165 182 if(fLooks) { 183 CHAR szDisplay[30]; 184 HMODULE hModDisplay; 185 166 186 SYSCOLOR_Init(FALSE); //use OS/2 colors 187 188 if(hbmFrameMenu[0] == 0) 189 { 190 CHAR szDisplay[30]; 191 HMODULE hModDisplay; 192 HDC hdc; /* Device-context handle */ 193 DEVOPENSTRUC dop = {NULL, "DISPLAY", NULL, NULL, NULL, NULL, 194 NULL, NULL, NULL}; 195 196 /* create memory device context */ 197 hdc = DevOpenDC(hab, OD_MEMORY, "*", 5L, (PDEVOPENDATA)&dop, NULLHANDLE); 198 199 DspInitSystemDriverName(szDisplay, sizeof(szDisplay)); 200 DosQueryModuleHandle(szDisplay, &hModDisplay); 201 202 hbmFrameMenu[0] = GpiLoadBitmap(hdc, hModDisplay, SBMP_MINBUTTON, 0, 0); 203 hbmFrameMenu[1] = GpiLoadBitmap(hdc, hModDisplay, SBMP_MAXBUTTON, 0, 0); 204 hbmFrameMenu[2] = GpiLoadBitmap(hdc, hModDisplay, SBMP_RESTOREBUTTON, 0, 0); 205 DevCloseDC(hdc); 206 } 167 207 } 168 208 fOS2Look = fLooks; … … 439 479 440 480 case WM_SYSCOMMAND: 481 dprintf(("OS2: WM_SYSCOMMAND %x", hwnd)); 441 482 win32wnd->DispatchMsgA(pWinMsg); 442 483 break; … … 763 804 win32wnd->MsgPosChanging((LPARAM)&wp); 764 805 806 if(win32wnd->getOldStyle() != win32wnd->getStyle()) { 807 OSLibSetWindowStyle(win32wnd->getOS2FrameWindowHandle(), win32wnd->getOS2WindowHandle(), win32wnd->getStyle(), win32wnd->getExStyle()); 808 if(fOS2Look) { 809 DWORD dwOldStyle = win32wnd->getOldStyle(); 810 DWORD dwStyle = win32wnd->getStyle(); 811 812 if((dwOldStyle & WS_MINIMIZE_W) && !(dwStyle & WS_MINIMIZE_W)) { 813 //SC_RESTORE -> SC_MINIMIZE 814 FrameReplaceMenuItem(WinWindowFromID(hwnd, FID_MINMAX), 0, SC_RESTORE, SC_MINIMIZE, hbmFrameMenu[0]); 815 } 816 else 817 if((dwOldStyle & WS_MAXIMIZE_W) && !(dwStyle & WS_MAXIMIZE_W)) { 818 //SC_RESTORE -> SC_MAXIMIZE 819 FrameReplaceMenuItem(WinWindowFromID(hwnd, FID_MINMAX), MIT_END, SC_RESTORE, SC_MAXIMIZE, hbmFrameMenu[1]); 820 } 821 else 822 if(!(dwOldStyle & WS_MINIMIZE_W) && (dwStyle & WS_MINIMIZE_W)) { 823 //SC_MINIMIZE -> SC_RESTORE 824 FrameReplaceMenuItem(WinWindowFromID(hwnd, FID_MINMAX), 0, SC_MINIMIZE, SC_RESTORE, hbmFrameMenu[2]); 825 } 826 else 827 if(!(dwOldStyle & WS_MAXIMIZE_W) && (dwStyle & WS_MAXIMIZE_W)) { 828 //SC_MAXIMIZE -> SC_RESTORE 829 FrameReplaceMenuItem(WinWindowFromID(hwnd, FID_MINMAX), MIT_END, SC_MAXIMIZE, SC_RESTORE, hbmFrameMenu[2]); 830 } 831 } 832 } 833 765 834 if ((wp.hwndInsertAfter != wpOld.hwndInsertAfter) || 766 835 (wp.x != wpOld.x) || (wp.y != wpOld.y) || (wp.cx != wpOld.cx) || (wp.cy != wpOld.cy) || (wp.flags != wpOld.flags)) … … 1281 1350 break; 1282 1351 1352 case WM_SYSCOMMAND: 1353 dprintf(("PMFRAME: WM_SYSCOMMAND %x", win32wnd->getWindowHandle())); 1354 win32wnd->DispatchMsgA(pWinMsg); 1355 break; 1356 1283 1357 default: 1284 1358 goto RunDefFrameWndProc; … … 1368 1442 //****************************************************************************** 1369 1443 //****************************************************************************** 1444 void FrameReplaceMenuItem(HWND hwndMenu, ULONG nIndex, ULONG idOld, ULONG idNew, 1445 HBITMAP hbmNew) 1446 { 1447 MENUITEM mi; 1448 1449 if (!hwndMenu) 1450 return; 1451 1452 WinEnableWindowUpdate(hwndMenu, FALSE); 1453 1454 if (WinSendMsg(hwndMenu, MM_QUERYITEM, MPFROM2SHORT(idOld, TRUE), MPFROMP(&mi))) 1455 { 1456 WinSendMsg(hwndMenu, MM_REMOVEITEM, (MPARAM)idOld, 0); 1457 mi.afStyle = MIS_BITMAP | MIS_SYSCOMMAND; 1458 mi.afAttribute = 0; 1459 mi.hwndSubMenu = 0; 1460 mi.id = idNew; 1461 mi.hItem = (ULONG)hbmNew; 1462 WinSendMsg(hwndMenu, MM_INSERTITEM, (MPARAM)&mi, 0); 1463 } 1464 WinEnableWindowUpdate(hwndMenu, TRUE); 1465 1466 WinInvalidateRect(hwndMenu, NULL, TRUE); 1467 } 1468 //****************************************************************************** 1469 //******************************************************************************
Note:
See TracChangeset
for help on using the changeset viewer.