- Timestamp:
- Nov 27, 2002, 2:56:27 PM (23 years ago)
- Location:
- trunk/src/user32
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/loadres.cpp
r8112 r9437 1 /* $Id: loadres.cpp,v 1. 39 2002-03-22 12:51:17sandervl Exp $ */1 /* $Id: loadres.cpp,v 1.40 2002-11-27 13:56:26 sandervl Exp $ */ 2 2 3 3 /* … … 166 166 int size; 167 167 168 //if in OS/2 mode, then we must replace the standard button bitmaps 169 //(min, max, restore, close) 170 #ifdef NEW_WGSS 171 if(fOS2Look && (hinst == hInstanceUser32 || !hinst)) { 172 switch((ULONG)lpszName) { 173 case OBM_CLOSE: 174 return CopyImage(hBmpCloseButton, IMAGE_BITMAP, 0, 0, 0); 175 case OBM_CLOSED: 176 return CopyImage(hBmpCloseButtonDown, IMAGE_BITMAP, 0, 0, 0); 177 case OBM_RESTORE: 178 return CopyImage(hBmpRestoreButton, IMAGE_BITMAP, 0, 0, 0); 179 case OBM_RESTORED: 180 return CopyImage(hBmpRestoreButtonDown, IMAGE_BITMAP, 0, 0, 0); 181 case OBM_REDUCE: 182 return CopyImage(hBmpMinButton, IMAGE_BITMAP, 0, 0, 0); 183 case OBM_REDUCED: 184 return CopyImage(hBmpMinButtonDown, IMAGE_BITMAP, 0, 0, 0); 185 case OBM_ZOOM: 186 return CopyImage(hBmpMaxButton, IMAGE_BITMAP, 0, 0, 0); 187 case OBM_ZOOMD: 188 return CopyImage(hBmpMaxButtonDown, IMAGE_BITMAP, 0, 0, 0); 189 } 190 } 191 #endif 168 192 if (!(fuLoad & LR_LOADFROMFILE)) 169 193 { … … 304 328 } 305 329 330 #ifdef __WIN32OS2__ 331 BITMAPINFO* pInfo; 332 HBITMAP oldbmp; 333 HDC hdc; 334 int colortablesize, bmpsize, headersize; 335 char *pBitmapData; 336 337 colortablesize = 0; 338 339 if(bm.bmBitsPixel <= 8) { 340 colortablesize = sizeof(RGBQUAD)*(1<<bm.bmBitsPixel); 341 } 342 bmpsize = DIB_GetDIBImageBytes(bm.bmWidth, bm.bmHeight, bm.bmBitsPixel); 343 headersize = sizeof(BITMAPINFO)+colortablesize+3*sizeof(DWORD); //+ extra space for > 8bpp images 344 345 pInfo = (BITMAPINFO *)malloc(headersize+bmpsize); 346 if(pInfo == NULL) { 347 DebugInt3(); 348 return 0; 349 } 350 pBitmapData = (char*)((char *)pInfo + headersize); 351 memset(pInfo, 0, headersize+bmpsize); 352 353 hdc = CreateCompatibleDC(0); 354 355 pInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); 356 pInfo->bmiHeader.biPlanes = bm.bmPlanes; 357 pInfo->bmiHeader.biBitCount = bm.bmBitsPixel; 358 pInfo->bmiHeader.biWidth = bm.bmWidth; 359 pInfo->bmiHeader.biHeight = bm.bmHeight; 360 361 GetDIBits(hdc, hBitmap, 0, bm.bmHeight, pBitmapData, pInfo, DIB_RGB_COLORS); 362 363 res = CreateDIBitmap(hdc, &pInfo->bmiHeader, CBM_INIT, pBitmapData, 364 pInfo, DIB_RGB_COLORS ); 365 366 DeleteDC(hdc); 367 free(pInfo); 368 #else 306 369 bm.bmBits = NULL; 307 370 res = CreateBitmapIndirect(&bm); … … 315 378 HeapFree( GetProcessHeap(), 0, buf ); 316 379 } 380 #endif 317 381 return res; 318 382 } -
trunk/src/user32/mdi.c
r7342 r9437 89 89 90 90 #ifdef __WIN32OS2__ 91 #include "pmwindow.h" 91 92 #include <heapstring.h> 92 93 #define WIN_GetFullHandle(a) a … … 1051 1052 return 0; 1052 1053 1054 #ifdef __WIN32OS2__ 1055 if(fOS2Look) 1056 {//different order for OS2 GUI mode 1057 AppendMenuA(menu,MF_HELP | MF_BITMAP, 1058 SC_CLOSE, (LPSTR)(DWORD)HBMMENU_MBAR_CLOSE ); 1059 AppendMenuA(menu,MF_HELP | MF_BITMAP, 1060 SC_MINIMIZE, (LPSTR)(DWORD)HBMMENU_MBAR_MINIMIZE ) ; 1061 AppendMenuA(menu,MF_HELP | MF_BITMAP, 1062 SC_RESTORE, (LPSTR)(DWORD)HBMMENU_MBAR_RESTORE ); 1063 } 1064 else { 1065 #endif 1053 1066 AppendMenuA(menu,MF_HELP | MF_BITMAP, 1054 1067 SC_MINIMIZE, (LPSTR)(DWORD)HBMMENU_MBAR_MINIMIZE ) ; 1055 1068 AppendMenuA(menu,MF_HELP | MF_BITMAP, 1056 1069 SC_RESTORE, (LPSTR)(DWORD)HBMMENU_MBAR_RESTORE ); 1057 1070 #ifdef __WIN32OS2__ 1071 } 1072 #endif 1058 1073 /* In Win 95 look, the system menu is replaced by the child icon */ 1059 1074 … … 1105 1120 1106 1121 /* The close button is only present in Win 95 look */ 1107 #ifndef __WIN32OS2__ 1122 #ifdef __WIN32OS2__ 1123 if(!fOS2Look) 1124 #else 1108 1125 if(TWEAK_WineLook > WIN31_LOOK) 1109 { 1110 #endif 1126 #endif 1127 { 1111 1128 AppendMenuA(menu,MF_HELP | MF_BITMAP, 1112 1129 SC_CLOSE, (LPSTR)(DWORD)HBMMENU_MBAR_CLOSE ); 1113 #ifndef __WIN32OS2__ 1114 } 1115 #endif 1130 } 1116 1131 1117 1132 EnableMenuItem(hSysPopup, SC_SIZE, MF_BYCOMMAND | MF_GRAYED); -
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 } -
trunk/src/user32/pmwindow.h
r8735 r9437 1 /* $Id: pmwindow.h,v 1.1 7 2002-06-20 14:18:15sandervl Exp $ */1 /* $Id: pmwindow.h,v 1.18 2002-11-27 13:56:27 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Managment Code for OS/2 … … 31 31 extern BOOL fDragDropActive; 32 32 33 //Win32 bitmap handles of the OS/2 min, max and restore buttons 34 extern HBITMAP hBmpMinButton, hBmpMinButtonDown; 35 extern HBITMAP hBmpMaxButton, hBmpMaxButtonDown; 36 extern HBITMAP hBmpRestoreButton, hBmpRestoreButtonDown; 37 extern HBITMAP hBmpCloseButton, hBmpCloseButtonDown; 38 33 39 #define TFOS_LEFT 0x0001 34 40 #define TFOS_TOP 0x0002 … … 38 44 #define TFOS_MOVE 0x000F 39 45 46 #ifdef __cplusplus 40 47 VOID FrameTrackFrame(Win32BaseWindow *win32wnd,DWORD flags); 41 48 void Frame_SysCommandSizeMove(Win32BaseWindow *win32wnd, WPARAM wParam); 49 #endif 42 50 43 51 #endif
Note:
See TracChangeset
for help on using the changeset viewer.