Changeset 9437 for trunk/src/user32/pmwindow.cpp
- Timestamp:
- Nov 27, 2002, 2:56:27 PM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/pmwindow.cpp
r9297 r9437 1 /* $Id: pmwindow.cpp,v 1.1 89 2002-09-26 16:04:34sandervl Exp $ */1 /* $Id: pmwindow.cpp,v 1.190 2002-11-27 13:56:26 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Managment Code for OS/2 … … 28 28 #include <winuser32.h> 29 29 #include <wprocess.h> 30 #include < misc.h>30 #include <dbglog.h> 31 31 #include <win32wbase.h> 32 32 #include <win32dlg.h> … … 69 69 BOOL fDragDropActive = FALSE; 70 70 BOOL fDragDropDisabled = FALSE; 71 HBITMAP hbmFrameMenu[3] = {0}; 71 72 73 #define PMMENU_MINBUTTON 0 74 #define PMMENU_MAXBUTTON 1 75 #define PMMENU_RESTOREBUTTON 2 76 #define PMMENU_CLOSEBUTTON 3 77 #define PMMENU_MINBUTTONDOWN 4 78 #define PMMENU_MAXBUTTONDOWN 5 79 #define PMMENU_RESTOREBUTTONDOWN 6 80 #define PMMENU_CLOSEBUTTONDOWN 7 81 82 HBITMAP hbmFrameMenu[8] = {0}; 83 84 //Win32 bitmap handles of the OS/2 min, max and restore buttons 85 HBITMAP hBmpMinButton = 0; 86 HBITMAP hBmpMaxButton = 0; 87 HBITMAP hBmpRestoreButton = 0; 88 HBITMAP hBmpCloseButton = 0; 89 HBITMAP hBmpMinButtonDown = 0; 90 HBITMAP hBmpMaxButtonDown = 0; 91 HBITMAP hBmpRestoreButtonDown = 0; 92 HBITMAP hBmpCloseButtonDown = 0; 72 93 73 94 static PFNWP pfnFrameWndProc = NULL; … … 88 109 static char *PMDragExtractFiles(PDRAGINFO pDragInfo, ULONG *pcItems, ULONG *pulBytes); 89 110 static BOOL PMDragValidate(PDRAGINFO pDragInfo); 111 static void QueryPMMenuBitmaps(); 90 112 91 113 MRESULT EXPENTRY Win32WindowProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2); … … 217 239 if(fOS2Look) 218 240 { 219 CHAR szDisplay[30];220 HMODULE hModDisplay;221 222 241 SYSCOLOR_Init(FALSE); //use OS/2 colors 223 224 // query the name of the display driver resource DLL to load 225 // some standard bitmaps from it 226 DspInitSystemDriverName(szDisplay, sizeof(szDisplay)); 227 DosQueryModuleHandle(szDisplay, &hModDisplay); 228 229 hbmFrameMenu[0] = GpiLoadBitmap(hdc, hModDisplay, SBMP_MINBUTTON, 0, 0); 230 hbmFrameMenu[1] = GpiLoadBitmap(hdc, hModDisplay, SBMP_MAXBUTTON, 0, 0); 231 hbmFrameMenu[2] = GpiLoadBitmap(hdc, hModDisplay, SBMP_RESTOREBUTTON, 0, 0); 242 QueryPMMenuBitmaps(); 232 243 } 233 244 … … 244 255 } /* End of main */ 245 256 //****************************************************************************** 257 HBITMAP OPEN32API _O32_CreateBitmapFromPMHandle(HBITMAP hPMBitmap); 258 259 inline HBITMAP O32_CreateBitmapFromPMHandle(HBITMAP hPMBitmap) 260 { 261 HBITMAP yyrc; 262 USHORT sel = RestoreOS2FS(); 263 264 yyrc = _O32_CreateBitmapFromPMHandle(hPMBitmap); 265 SetFS(sel); 266 267 return yyrc; 268 } 269 //****************************************************************************** 270 static void QueryPMMenuBitmaps() 271 { 272 CHAR szDisplay[30]; 273 HMODULE hModDisplay; 274 275 if(hbmFrameMenu[0] == 0) 276 { 277 CHAR szDisplay[30]; 278 HMODULE hModDisplay; 279 HDC hdc; /* Device-context handle */ 280 DEVOPENSTRUC dop = {NULL, "DISPLAY", NULL, NULL, NULL, NULL, 281 NULL, NULL, NULL}; 282 283 /* create memory device context */ 284 hdc = DevOpenDC(hab, OD_MEMORY, "*", 5L, (PDEVOPENDATA)&dop, NULLHANDLE); 285 286 DspInitSystemDriverName(szDisplay, sizeof(szDisplay)); 287 DosQueryModuleHandle(szDisplay, &hModDisplay); 288 289 hbmFrameMenu[PMMENU_MINBUTTON] = GpiLoadBitmap(hdc, hModDisplay, SBMP_MINBUTTON, 0, 0); 290 hbmFrameMenu[PMMENU_MINBUTTONDOWN] = GpiLoadBitmap(hdc, hModDisplay, SBMP_MINBUTTONDEP, 0, 0); 291 hbmFrameMenu[PMMENU_MAXBUTTON] = GpiLoadBitmap(hdc, hModDisplay, SBMP_MAXBUTTON, 0, 0); 292 hbmFrameMenu[PMMENU_MAXBUTTONDOWN] = GpiLoadBitmap(hdc, hModDisplay, SBMP_MAXBUTTONDEP, 0, 0); 293 hbmFrameMenu[PMMENU_RESTOREBUTTON] = GpiLoadBitmap(hdc, hModDisplay, SBMP_RESTOREBUTTON, 0, 0); 294 hbmFrameMenu[PMMENU_RESTOREBUTTONDOWN] = GpiLoadBitmap(hdc, hModDisplay, SBMP_RESTOREBUTTONDEP, 0, 0); 295 hbmFrameMenu[PMMENU_CLOSEBUTTON] = GpiLoadBitmap(hdc, hModDisplay, SBMP_CLOSE, 0, 0); 296 hbmFrameMenu[PMMENU_CLOSEBUTTONDOWN] = GpiLoadBitmap(hdc, hModDisplay, SBMP_CLOSEDEP, 0, 0); 297 298 #ifdef NEW_WGSS 299 //Create win32 bitmap handles of the OS/2 min, max and restore buttons 300 hBmpMinButton = O32_CreateBitmapFromPMHandle(hbmFrameMenu[PMMENU_MINBUTTON]); 301 hBmpMinButtonDown = O32_CreateBitmapFromPMHandle(hbmFrameMenu[PMMENU_MINBUTTONDOWN]); 302 hBmpMaxButton = O32_CreateBitmapFromPMHandle(hbmFrameMenu[PMMENU_MAXBUTTON]); 303 hBmpMaxButtonDown = O32_CreateBitmapFromPMHandle(hbmFrameMenu[PMMENU_MAXBUTTONDOWN]); 304 hBmpRestoreButton = O32_CreateBitmapFromPMHandle(hbmFrameMenu[PMMENU_RESTOREBUTTON]); 305 hBmpRestoreButtonDown = O32_CreateBitmapFromPMHandle(hbmFrameMenu[PMMENU_RESTOREBUTTONDOWN]); 306 hBmpCloseButton = O32_CreateBitmapFromPMHandle(hbmFrameMenu[PMMENU_CLOSEBUTTON]); 307 hBmpCloseButtonDown = O32_CreateBitmapFromPMHandle(hbmFrameMenu[PMMENU_CLOSEBUTTONDOWN]); 308 #endif 309 DevCloseDC(hdc); 310 } 311 } 312 //****************************************************************************** 246 313 //menu.cpp 247 314 BOOL MENU_Init(); 248 315 //****************************************************************************** 249 // AH TODO 2002-07-18250 // Note: this looks a lot like unnecessary code duplication. We should call this251 // function from InitPM...252 316 //****************************************************************************** 253 317 void WIN32API SetWindowAppearance(int fLooks) … … 255 319 if(fLooks == OS2_APPEARANCE || fLooks == OS2_APPEARANCE_SYSMENU) 256 320 { 257 CHAR szDisplay[30];258 HMODULE hModDisplay;259 260 321 SYSCOLOR_Init(FALSE); //use OS/2 colors 261 262 if(hbmFrameMenu[0] == 0) 263 { 264 CHAR szDisplay[30]; 265 HMODULE hModDisplay; 266 HDC hdc; /* Device-context handle */ 267 DEVOPENSTRUC dop = {NULL, "DISPLAY", NULL, NULL, NULL, NULL, 268 NULL, NULL, NULL}; 269 270 /* create memory device context */ 271 hdc = DevOpenDC(hab, OD_MEMORY, "*", 5L, (PDEVOPENDATA)&dop, NULLHANDLE); 272 273 DspInitSystemDriverName(szDisplay, sizeof(szDisplay)); 274 DosQueryModuleHandle(szDisplay, &hModDisplay); 275 276 hbmFrameMenu[0] = GpiLoadBitmap(hdc, hModDisplay, SBMP_MINBUTTON, 0, 0); 277 hbmFrameMenu[1] = GpiLoadBitmap(hdc, hModDisplay, SBMP_MAXBUTTON, 0, 0); 278 hbmFrameMenu[2] = GpiLoadBitmap(hdc, hModDisplay, SBMP_RESTOREBUTTON, 0, 0); 279 DevCloseDC(hdc); 280 } 322 QueryPMMenuBitmaps(); 281 323 } 282 324 fOS2Look = fLooks; … … 1259 1301 //SC_RESTORE -> SC_MINIMIZE 1260 1302 dprintf(("%x -> SC_RESTORE -> SC_MINIMIZE", win32wnd->getWindowHandle())); 1261 FrameReplaceMenuItem(WinWindowFromID(hwnd, FID_MINMAX), 0, SC_RESTORE, SC_MINIMIZE, hbmFrameMenu[ 0]);1303 FrameReplaceMenuItem(WinWindowFromID(hwnd, FID_MINMAX), 0, SC_RESTORE, SC_MINIMIZE, hbmFrameMenu[PMMENU_MINBUTTON]); 1262 1304 if(dwStyle & WS_MAXIMIZE_W) { 1263 1305 //SC_MAXIMIZE -> SC_RESTORE 1264 1306 dprintf(("%x -> SC_MAXIMIZE -> SC_RESTORE", win32wnd->getWindowHandle())); 1265 FrameReplaceMenuItem(WinWindowFromID(hwnd, FID_MINMAX), MIT_END, SC_MAXIMIZE, SC_RESTORE, hbmFrameMenu[ 2]);1307 FrameReplaceMenuItem(WinWindowFromID(hwnd, FID_MINMAX), MIT_END, SC_MAXIMIZE, SC_RESTORE, hbmFrameMenu[PMMENU_RESTOREBUTTON]); 1266 1308 } 1267 1309 } … … 1270 1312 //SC_RESTORE -> SC_MAXIMIZE 1271 1313 dprintf(("%x -> SC_RESTORE -> SC_MAXIMIZE", win32wnd->getWindowHandle())); 1272 FrameReplaceMenuItem(WinWindowFromID(hwnd, FID_MINMAX), MIT_END, SC_RESTORE, SC_MAXIMIZE, hbmFrameMenu[ 1]);1314 FrameReplaceMenuItem(WinWindowFromID(hwnd, FID_MINMAX), MIT_END, SC_RESTORE, SC_MAXIMIZE, hbmFrameMenu[PMMENU_MAXBUTTON]); 1273 1315 } 1274 1316 else … … 1276 1318 //SC_MINIMIZE -> SC_RESTORE 1277 1319 dprintf(("%x -> SC_MINIMIZE -> SC_RESTORE", win32wnd->getWindowHandle())); 1278 FrameReplaceMenuItem(WinWindowFromID(hwnd, FID_MINMAX), 0, SC_MINIMIZE, SC_RESTORE, hbmFrameMenu[ 2]);1320 FrameReplaceMenuItem(WinWindowFromID(hwnd, FID_MINMAX), 0, SC_MINIMIZE, SC_RESTORE, hbmFrameMenu[PMMENU_RESTOREBUTTON]); 1279 1321 } 1280 1322 else … … 1282 1324 //SC_MAXIMIZE -> SC_RESTORE 1283 1325 dprintf(("%x -> SC_MAXIMIZE -> SC_RESTORE", win32wnd->getWindowHandle())); 1284 FrameReplaceMenuItem(WinWindowFromID(hwnd, FID_MINMAX), MIT_END, SC_MAXIMIZE, SC_RESTORE, hbmFrameMenu[ 2]);1326 FrameReplaceMenuItem(WinWindowFromID(hwnd, FID_MINMAX), MIT_END, SC_MAXIMIZE, SC_RESTORE, hbmFrameMenu[PMMENU_RESTOREBUTTON]); 1285 1327 } 1286 1328 }
Note:
See TracChangeset
for help on using the changeset viewer.