Changeset 2381 for trunk/src/user32/new/win32wbase.cpp
- Timestamp:
- Jan 9, 2000, 3:14:25 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/new/win32wbase.cpp
r2377 r2381 1 /* $Id: win32wbase.cpp,v 1.2 5 2000-01-08 16:47:48cbratschi Exp $ */1 /* $Id: win32wbase.cpp,v 1.26 2000-01-09 14:14:24 cbratschi Exp $ */ 2 2 /* 3 3 * Win32 Window Base Class for OS/2 … … 44 44 #include "winmouse.h" 45 45 #include <win\hook.h> 46 #include <shellapi.h> 46 47 #define INCL_TIMERWIN32 47 48 #include "timer.h" 49 50 #define SC_ABOUTWINE (SC_SCREENSAVE+1) 51 #define SC_PUTMARK (SC_SCREENSAVE+2) 48 52 49 53 #define HAS_DLGFRAME(style,exStyle) \ … … 53 57 #define HAS_THICKFRAME(style,exStyle) \ 54 58 (((style) & WS_THICKFRAME) && \ 55 !((exStyle) & WS_EX_DLGMODALFRAME)) 59 !((exStyle) & WS_EX_DLGMODALFRAME) && \ 60 !((style) & WS_CHILD)) 56 61 57 62 #define HAS_THINFRAME(style) \ … … 183 188 OS2Hwnd = 0; 184 189 OS2HwndFrame = 0; 185 OS2HwndMenu = 0; 190 hMenu = 0; 191 hSysMenu = 0; 186 192 Win32Hwnd = 0; 187 193 … … 223 229 horzScrollInfo = NULL; 224 230 vertScrollInfo = NULL; 225 hwndHorzScroll = 0;226 hwndVertScroll = 0;227 231 228 232 ownDC = 0; … … 644 648 645 649 OSLibWinSetOwner(OS2Hwnd, OS2HwndFrame); 646 647 //FrameGetScrollBarHandles(this,dwStyle & WS_HSCROLL,dwStyle & WS_VSCROLL);648 //subclassScrollBars(dwStyle & WS_HSCROLL,dwStyle & WS_VSCROLL);649 650 650 651 fakeWinBase.hwndThis = OS2Hwnd; … … 1223 1224 //****************************************************************************** 1224 1225 //****************************************************************************** 1225 VOID Win32BaseWindow::subclassScrollBars(BOOL subHorz,BOOL subVert)1226 {1227 SCROLL_SubclassScrollBars(subHorz ? hwndHorzScroll:0,subVert ? hwndVertScroll:0);1228 }1229 //******************************************************************************1230 //******************************************************************************1231 BOOL Win32BaseWindow::showScrollBars(BOOL changeHorz,BOOL changeVert,BOOL fShow)1232 {1233 BOOL rc = TRUE;1234 DWORD flags = 0;1235 1236 if (fShow)1237 {1238 BOOL createHorz = FALSE,createVert = FALSE;1239 BOOL showHorz = FALSE,showVert = FALSE;1240 1241 if (changeHorz)1242 {1243 if (!hwndHorzScroll)1244 createHorz = TRUE;1245 else1246 showHorz = TRUE;1247 }1248 1249 if (changeVert)1250 {1251 if (!hwndVertScroll)1252 createVert = TRUE;1253 else1254 showVert = TRUE;1255 }1256 1257 if (createHorz || createVert)1258 {1259 if (createHorz && !horzScrollInfo)1260 {1261 horzScrollInfo = (SCROLLBAR_INFO*)malloc(sizeof(SCROLLBAR_INFO));1262 horzScrollInfo->MinVal = horzScrollInfo->CurVal = horzScrollInfo->Page = 0;1263 horzScrollInfo->MaxVal = 100;1264 horzScrollInfo->flags = ESB_ENABLE_BOTH;1265 }1266 1267 if (createVert && !vertScrollInfo)1268 {1269 vertScrollInfo = (SCROLLBAR_INFO*)malloc(sizeof(SCROLLBAR_INFO));1270 vertScrollInfo->MinVal = vertScrollInfo->CurVal = vertScrollInfo->Page = 0;1271 vertScrollInfo->MaxVal = 100;1272 vertScrollInfo->flags = ESB_ENABLE_BOTH;1273 }1274 1275 rc = FrameCreateScrollBars(this,createHorz,createVert,FALSE,&flags);1276 1277 if (!rc) return FALSE;1278 if (createHorz) dwStyle |= WS_HSCROLL;1279 if (createVert) dwStyle |= WS_VSCROLL;1280 }1281 1282 if (showVert || showHorz)1283 {1284 DWORD newFlags;1285 1286 rc = FrameShowScrollBars(this,showHorz,showVert,fShow,FALSE,&newFlags);1287 flags |= newFlags;1288 if (rc)1289 {1290 if (showHorz) dwStyle |= WS_HSCROLL;1291 if (showVert) dwStyle |= WS_VSCROLL;1292 }1293 }1294 1295 if (flags) FrameUpdateFrame(this,flags);1296 } else1297 {1298 rc = FrameShowScrollBars(this,changeHorz && hwndHorzScroll,changeVert && hwndVertScroll,fShow,TRUE);1299 1300 if (rc)1301 {1302 if (changeHorz) dwStyle &= ~WS_HSCROLL;1303 if (changeVert) dwStyle &= ~WS_VSCROLL;1304 }1305 }1306 1307 return rc;1308 }1309 //******************************************************************************1310 //******************************************************************************1311 1226 LONG Win32BaseWindow::HandleNCActivate(WPARAM wParam) 1312 1227 { … … 1429 1344 //****************************************************************************** 1430 1345 //****************************************************************************** 1346 VOID Win32BaseWindow::TrackScrollBar(WPARAM wParam,POINT pt) 1347 { 1348 INT scrollbar; 1349 MSG msg; 1350 1351 if ((wParam & 0xfff0) == SC_HSCROLL) 1352 { 1353 if ((wParam & 0x0f) != HTHSCROLL) return; 1354 scrollbar = SB_HORZ; 1355 } else /* SC_VSCROLL */ 1356 { 1357 if ((wParam & 0x0f) != HTVSCROLL) return; 1358 scrollbar = SB_VERT; 1359 } 1360 1361 pt.x -= rectWindow.left; 1362 pt.y -= rectWindow.top; 1363 SCROLL_HandleScrollEvent(Win32Hwnd,0,MAKELONG(pt.x,pt.y),scrollbar,WM_LBUTTONDOWN); 1364 if (GetCapture() != Win32Hwnd) return; 1365 do 1366 { 1367 GetMessageA(&msg,Win32Hwnd,0,0); 1368 switch(msg.message) 1369 { 1370 case WM_LBUTTONUP: 1371 case WM_MOUSEMOVE: 1372 pt.x = msg.pt.x-rectWindow.left; 1373 pt.y = msg.pt.y-rectWindow.top; 1374 msg.lParam = MAKELONG(pt.x,pt.y); 1375 case WM_SYSTIMER: 1376 SCROLL_HandleScrollEvent(Win32Hwnd,msg.wParam,msg.lParam,scrollbar,msg.message); 1377 break; 1378 1379 default: 1380 TranslateMessage(&msg); 1381 DispatchMessageA(&msg); 1382 break; 1383 } 1384 if (!IsWindow()) 1385 { 1386 ReleaseCapture(); 1387 break; 1388 } 1389 } while (msg.message != WM_LBUTTONUP); 1390 } 1391 //****************************************************************************** 1392 //****************************************************************************** 1431 1393 LONG Win32BaseWindow::HandleNCLButtonDown(WPARAM wParam,LPARAM lParam) 1432 1394 { … … 1824 1786 if(hIcon == 0) 1825 1787 if (!(dwStyle & DS_MODALFRAME)) 1826 hIcon = LoadImageA(0, MAKEINTRESOURCEA(OIC_ WINEICON), IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR);1788 hIcon = LoadImageA(0, MAKEINTRESOURCEA(OIC_ODINICON), IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR); 1827 1789 1828 1790 if (hIcon) … … 1986 1948 r.bottom--; 1987 1949 1988 FillRect( hdc, &r, GetSysColorBrush(active ? COLOR_ACTIVECAPTION : COLOR_INACTIVECAPTION) ); 1950 //CB: todo: 1951 //COLOR_GRADIENTACTIVECAPTION 1952 //COLOR_GRADIENTINACTIVECAPTION 1953 1954 FillRect(hdc,&r,GetSysColorBrush(active ? COLOR_ACTIVECAPTION:COLOR_INACTIVECAPTION)); 1989 1955 1990 1956 if (!hbitmapClose) … … 2135 2101 2136 2102 /* Draw the scroll-bars */ 2137 #if 0 //CB: todo2138 2103 if (dwStyle & WS_VSCROLL) 2139 SCROLL_DrawScrollBar( hwnd,hdc,SB_VERT,TRUE,TRUE);2140 if ( wndPtr->dwStyle & WS_HSCROLL)2141 SCROLL_DrawScrollBar( hwnd,hdc,SB_HORZ,TRUE,TRUE);2142 #endif 2104 SCROLL_DrawScrollBar(Win32Hwnd,hdc,SB_VERT,TRUE,TRUE); 2105 if (dwStyle & WS_HSCROLL) 2106 SCROLL_DrawScrollBar(Win32Hwnd,hdc,SB_HORZ,TRUE,TRUE); 2107 2143 2108 /* Draw the "size-box" */ 2144 2109 if ((dwStyle & WS_VSCROLL) && (dwStyle & WS_HSCROLL)) … … 2247 2212 * TODO: Not done (see #if 0) 2248 2213 */ 2249 LONG Win32BaseWindow::HandleSysCommand(WPARAM wParam, 2214 LONG Win32BaseWindow::HandleSysCommand(WPARAM wParam,POINT *pt32) 2250 2215 { 2251 2216 UINT uCommand = wParam & 0xFFF0; 2252 2217 2218 /* //CB: don't need this, perhaps recycle for menus 2253 2219 if ((getStyle() & WS_CHILD) && (uCommand != SC_KEYMENU)) 2254 2220 ScreenToClient(getParent()->getWindowHandle(), pt32 ); 2255 2221 */ 2256 2222 switch (uCommand) 2257 2223 { … … 2316 2282 2317 2283 case SC_CLOSE: 2318 return SendInternalMessageA(WM_CLOSE, 0, 0); 2319 2320 #if 0 2284 return SendInternalMessageA(WM_CLOSE,0,0); 2285 2321 2286 case SC_VSCROLL: 2322 2287 case SC_HSCROLL: 2323 NC_TrackScrollBar( hwnd, wParam, pt32);2288 TrackScrollBar(wParam,*pt32); 2324 2289 break; 2325 2290 #if 0 2326 2291 case SC_MOUSEMENU: 2327 2292 MENU_TrackMouseMenuBar( wndPtr, wParam & 0x000F, pt32 ); … … 2331 2296 MENU_TrackKbdMenuBar( wndPtr , wParam , pt.x ); 2332 2297 break; 2333 2298 #endif 2334 2299 case SC_TASKLIST: 2335 WinExec( "taskman.exe", SW_SHOWNORMAL);2300 WinExec("taskman.exe",SW_SHOWNORMAL); 2336 2301 break; 2337 2302 2338 2303 case SC_SCREENSAVE: 2339 2304 if (wParam == SC_ABOUTWINE) 2340 ShellAboutA( hwnd, "Odin", ODIN_RELEASE_INFO,0);2305 ShellAboutA(Win32Hwnd,"Odin","Odin alpha release compiled with IBM VAC++",0); 2341 2306 else 2342 2307 if (wParam == SC_PUTMARK) 2343 2308 dprintf(("Mark requested by user\n")); 2344 2309 break; 2345 #endif 2310 2346 2311 case SC_HOTKEY: 2347 2312 case SC_ARRANGE: … … 2719 2684 point.x = LOWORD(lParam); 2720 2685 point.y = HIWORD(lParam); 2721 return HandleSysCommand(wParam, 2686 return HandleSysCommand(wParam,&point); 2722 2687 } 2723 2688 … … 3093 3058 window = parentwindow; 3094 3059 } 3095 }3096 //******************************************************************************3097 //******************************************************************************3098 BOOL Win32BaseWindow::SetMenu(HMENU hMenu)3099 {3100 3101 dprintf(("SetMenu %x", hMenu));3102 OS2HwndMenu = OSLibWinSetMenu(OS2HwndFrame, hMenu);3103 if(OS2HwndMenu == 0) {3104 dprintf(("Win32BaseWindow::SetMenu OS2HwndMenu == 0"));3105 return FALSE;3106 }3107 return TRUE;3108 3060 } 3109 3061 //******************************************************************************
Note:
See TracChangeset
for help on using the changeset viewer.