- Timestamp:
- Jul 25, 1999, 11:19:22 AM (26 years ago)
- Location:
- trunk/src/user32/new
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/new/defwndproc.cpp
r328 r391 1 /* $Id: defwndproc.cpp,v 1. 2 1999-07-18 14:39:34sandervl Exp $ */1 /* $Id: defwndproc.cpp,v 1.3 1999-07-25 09:19:21 sandervl Exp $ */ 2 2 3 3 /* … … 29 29 case WM_SETREDRAW: //Open32 does not set the visible flag 30 30 if(wParam) 31 31 SetWindowLongA (hwnd, GWL_STYLE, GetWindowLongA (hwnd, GWL_STYLE) | WS_VISIBLE); 32 32 else SetWindowLongA (hwnd, GWL_STYLE, GetWindowLongA (hwnd, GWL_STYLE) & ~WS_VISIBLE); 33 33 … … 76 76 } 77 77 case WM_MOUSEMOVE: 78 79 78 return 0; 79 80 80 case WM_ERASEBKGND: 81 81 case WM_ICONERASEBKGND: 82 83 82 return 0; 83 84 84 case WM_NCLBUTTONDOWN: 85 85 case WM_NCLBUTTONUP: … … 91 91 case WM_NCMBUTTONUP: 92 92 case WM_NCMBUTTONDBLCLK: 93 94 93 return 0; //TODO: Send WM_SYSCOMMAND if required 94 95 95 case WM_NCHITTEST: //TODO: 96 97 96 return 0; 97 98 98 default: 99 99 return 1; -
trunk/src/user32/new/pmwindow.cpp
r342 r391 1 /* $Id: pmwindow.cpp,v 1.1 3 1999-07-20 07:42:36sandervl Exp $ */1 /* $Id: pmwindow.cpp,v 1.14 1999-07-25 09:19:21 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Managment Code for OS/2 … … 29 29 HAB hab = 0; 30 30 31 RECTL desktopRectl = {0}; 32 31 33 MRESULT EXPENTRY Win32WindowProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2); 32 34 … … 76 78 } 77 79 80 WinQueryWindowRect(HWND_DESKTOP, &desktopRectl); 81 dprintf(("InitPM: Desktop (%d,%d)", desktopRectl.xRight, desktopRectl.yTop)); 78 82 return OSLibInitMsgQueue(); 79 83 } /* End of main */ … … 194 198 case WM_WINDOWPOSCHANGED: 195 199 { 196 dprintf(("OS2: WM_WINDOWPOSCHANGED %x", hwnd)); 200 PSWP pswp = (PSWP)mp1; 201 202 dprintf(("OS2: WM_WINDOWPOSCHANGED %x %x (%d,%d) (%d,%d)", hwnd, pswp->fl, pswp->x, pswp->y, pswp->cx, pswp->cy)); 197 203 goto RunDefWndProc; 198 204 } … … 220 226 SWP swp; 221 227 222 dprintf(("OS2: WM_SIZE %x", hwnd));223 228 rc = WinQueryWindowPos(hwnd, &swp); 224 229 if(rc == FALSE) { … … 226 231 break; 227 232 } 233 dprintf(("OS2: WM_SIZE %x %x (%d,%d) (%d,%d)", hwnd, swp.fl, swp.x, swp.y, swp.cx, swp.cy)); 228 234 if(win32wnd->MsgSize(SHORT1FROMMP(mp2), SHORT2FROMMP(mp2), 229 235 (swp.fl & SWP_MINIMIZE) != 0, … … 258 264 HWND hwndFocus = (HWND)mp1; 259 265 260 dprintf(("OS2: WM_SETFOCUS %x ", hwnd));266 dprintf(("OS2: WM_SETFOCUS %x %d", hwnd, mp2)); 261 267 if(WinQueryWindowULong(hwndFocus, OFFSET_WIN32PM_MAGIC) != WIN32PM_MAGIC) { 262 268 //another (non-win32) application's window … … 378 384 379 385 //OS/2 Window coordinates -> Win32 Window coordinates 386 //TODO: What do windows apps that handle this messages return? 380 387 if(!win32wnd->MsgMouseMove(keystate, SHORT1FROMMP(mp1), MapOS2ToWin32Y(win32wnd, SHORT2FROMMP(mp1)))) { 381 388 goto RunDefWndProc; … … 403 410 404 411 case WM_SYSCOMMAND: 405 dprintf(("WM_SYSCOMMAND")); 406 break; 407 412 { 413 ULONG x = 0, y = 0; 414 ULONG win32sc; 415 416 if(SHORT2FROMMP(mp2) == TRUE) {//syscommand caused by mouse action 417 POINTL pointl; 418 WinQueryPointerPos(HWND_DESKTOP, &pointl); 419 x = pointl.x; 420 y = desktopRectl.yTop - y; 421 } 422 switch(SHORT1FROMMP(mp1)) { 423 case SC_MOVE: 424 win32sc = WIN32SC_MOVE; 425 break; 426 case SC_CLOSE: 427 win32sc = WIN32SC_CLOSE; 428 break; 429 case SC_MAXIMIZE: 430 win32sc = WIN32SC_MAXIMIZE; 431 break; 432 case SC_MINIMIZE: 433 win32sc = WIN32SC_MINIMIZE; 434 break; 435 case SC_NEXTFRAME: 436 case SC_NEXTWINDOW: 437 win32sc = WIN32SC_NEXTWINDOW; 438 break; 439 case SC_RESTORE: 440 win32sc = WIN32SC_RESTORE; 441 break; 442 case SC_TASKMANAGER: 443 win32sc = WIN32SC_TASKLIST; 444 break; 445 default: 446 goto RunDefWndProc; 447 } 448 dprintf(("WM_SYSCOMMAND %x %x (%d,%d)", hwnd, win32sc, x, y)); 449 if(win32wnd->MsgSysCommand(win32sc, x, y)) { 450 goto RunDefWndProc; 451 } 452 break; 453 } 408 454 case WM_CHAR: 409 dprintf(("WM_CHAR")); 410 455 { 456 ULONG keyflags = 0, vkey = 0; 457 ULONG fl = SHORT1FROMMP(mp1); 458 459 if(!(fl & KC_CHAR)) { 460 dprintf(("WM_CHAR: no valid character code")); 461 goto RunDefWndProc; 462 } 463 if(fl & KC_VIRTUALKEY) { 464 vkey = SHORT2FROMMP(mp2); 465 } 466 if(fl & KC_KEYUP) { 467 keyflags |= KEY_UP; 468 } 469 if(fl & KC_ALT) { 470 keyflags |= KEY_ALTDOWN; 471 } 472 if(fl & KC_PREVDOWN) { 473 keyflags |= KEY_PREVDOWN; 474 } 475 if(win32wnd->MsgChar(SHORT1FROMMP(mp2), CHAR3FROMMP(mp1), CHAR4FROMMP(mp1), vkey, keyflags)) { 476 goto RunDefWndProc; 477 } 478 break; 479 } 411 480 case WM_INITMENU: 412 481 case WM_MENUSELECT: -
trunk/src/user32/new/user32.cpp
r385 r391 1 /* $Id: user32.cpp,v 1. 9 1999-07-24 14:01:44sandervl Exp $ */1 /* $Id: user32.cpp,v 1.10 1999-07-25 09:19:21 sandervl Exp $ */ 2 2 3 3 /* … … 1073 1073 } 1074 1074 //****************************************************************************** 1075 //****************************************************************************** 1076 BOOL WIN32API GetWindowPlacement( HWND arg1, LPWINDOWPLACEMENT arg2) 1077 { 1078 #ifdef DEBUG 1079 WriteLog("USER32: GetWindowPlacement\n"); 1080 #endif 1081 return O32_GetWindowPlacement(arg1, arg2); 1082 } 1083 //****************************************************************************** 1084 1085 1086 //****************************************************************************** 1087 int WIN32API GetWindowTextLengthW( HWND arg1) 1088 { 1089 #ifdef DEBUG 1090 WriteLog("USER32: GetWindowTextLengthW\n"); 1091 #endif 1092 return O32_GetWindowTextLength(arg1); 1093 } 1094 //****************************************************************************** 1095 //****************************************************************************** 1096 int WIN32API GetWindowTextW(HWND hwnd, LPWSTR lpsz, int cch) 1097 { 1098 char title[128]; 1099 int rc; 1100 1101 rc = O32_GetWindowText(hwnd, title, sizeof(title)); 1102 #ifdef DEBUG 1103 WriteLog("USER32: GetWindowTextW returned %s\n", title); 1104 #endif 1105 if(rc > cch) { 1106 title[cch-1] = 0; 1107 rc = cch; 1108 } 1109 AsciiToUnicode(title, lpsz); 1110 return(rc); 1111 } 1075 1076 1077 //****************************************************************************** 1112 1078 //****************************************************************************** 1113 1079 //****************************************************************************** -
trunk/src/user32/new/win32wnd.cpp
r385 r391 1 /* $Id: win32wnd.cpp,v 1.2 0 1999-07-24 14:01:45sandervl Exp $ */1 /* $Id: win32wnd.cpp,v 1.21 1999-07-25 09:19:22 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Code for OS/2 … … 354 354 dwOSWinStyle, dwOSFrameStyle, (char *)cs->lpszName, 355 355 (owner) ? owner->getOS2WindowHandle() : 0, 356 (hwndLinkAfter == HWND_BOTTOM) ? TRUE : FALSE,356 (hwndLinkAfter == HWND_BOTTOM) ? TRUE : FALSE, 357 357 &OS2HwndFrame); 358 358 … … 397 397 //Set icon from class 398 398 if(windowClass->getIcon()) 399 SetIcon(windowClass->getIcon());399 SetIcon(windowClass->getIcon()); 400 400 401 401 /* Send the WM_CREATE message … … 408 408 { 409 409 SendNCCalcSize(FALSE, &rectWindow, NULL, NULL, 0, &rectClient ); 410 OffsetRect(&rectWindow, maxPos.x - rectWindow.left, 411 maxPos.y - rectWindow.top); 410 OffsetRect(&rectWindow, maxPos.x - rectWindow.left, maxPos.y - rectWindow.top); 412 411 dprintf(("Sending WM_CREATE")); 413 412 if( (SendInternalMessage(WM_CREATE, 0, (LPARAM)cs )) != -1 ) … … 426 425 HOOK_CallHooks16( WH_SHELL, HSHELL_WINDOWCREATED, hwnd, 0 ); 427 426 #endif 428 SetLastError(0);429 return TRUE;427 SetLastError(0); 428 return TRUE; 430 429 } 431 430 } … … 724 723 WORD fwSizeType = 0; 725 724 726 if(fMinimize) {727 fwSizeType = SIZE_MINIMIZED;728 }729 else730 if(fMaximize) {731 fwSizeType = SIZE_MAXIMIZED;732 }733 elsefwSizeType = SIZE_RESTORED;734 735 return SendInternalMessageA(WM_SIZE, fwSizeType, MAKELONG((USHORT)width, (USHORT)height));725 if(fMinimize) { 726 fwSizeType = SIZE_MINIMIZED; 727 } 728 else 729 if(fMaximize) { 730 fwSizeType = SIZE_MAXIMIZED; 731 } 732 else fwSizeType = SIZE_RESTORED; 733 734 return SendInternalMessageA(WM_SIZE, fwSizeType, MAKELONG((USHORT)width, (USHORT)height)); 736 735 } 737 736 //****************************************************************************** … … 739 738 ULONG Win32Window::MsgActivate(BOOL fActivate, HWND hwnd) 740 739 { 741 return SendInternalMessageA(WM_ACTIVATE, (fActivate) ? WA_ACTIVE : WA_INACTIVE, hwnd); 740 return SendInternalMessageA(WM_ACTIVATE, (fActivate) ? WA_ACTIVE : WA_INACTIVE, hwnd); 741 } 742 //****************************************************************************** 743 //****************************************************************************** 744 ULONG Win32Window::MsgSysCommand(ULONG win32sc, ULONG x, ULONG y) 745 { 746 return SendInternalMessageA(WM_SYSCOMMAND, win32sc, MAKELONG((USHORT)x, (USHORT)y)); 747 } 748 //****************************************************************************** 749 //TODO: virtual key translation & extended keyboard bit 750 //****************************************************************************** 751 ULONG Win32Window::MsgChar(ULONG cmd, ULONG repeatcnt, ULONG scancode, ULONG vkey, ULONG keyflags) 752 { 753 ULONG lParam = 0; 754 755 lParam = repeatcnt; 756 lParam |= (scancode << 16); 757 if(keyflags & KEY_ALTDOWN) 758 lParam |= (1<<29); 759 if(keyflags & KEY_PREVDOWN) 760 lParam |= (1<<30); 761 if(keyflags & KEY_UP) 762 lParam |= (1<<31); 763 dprintf(("WM_CHAR: %x %x %08x", OS2Hwnd, cmd, lParam)); 764 return SendInternalMessageA(WM_CHAR, cmd, lParam); 742 765 } 743 766 //****************************************************************************** … … 745 768 ULONG Win32Window::MsgSetFocus(HWND hwnd) 746 769 { 747 return SendInternalMessageA(WM_SETFOCUS, hwnd, 0);770 return SendInternalMessageA(WM_SETFOCUS, hwnd, 0); 748 771 } 749 772 //****************************************************************************** … … 751 774 ULONG Win32Window::MsgKillFocus(HWND hwnd) 752 775 { 753 return SendInternalMessageA(WM_KILLFOCUS, hwnd, 0);776 return SendInternalMessageA(WM_KILLFOCUS, hwnd, 0); 754 777 } 755 778 //****************************************************************************** … … 760 783 ULONG win32ncmsg; 761 784 762 dprintf(("MsgButton to (%d,%d)", x, y));763 switch(msg) {785 dprintf(("MsgButton to (%d,%d)", x, y)); 786 switch(msg) { 764 787 case BUTTON_LEFTDOWN: 765 788 win32msg = WM_LBUTTONDOWN; … … 801 824 dprintf(("Win32Window::Button: invalid msg!!!!")); 802 825 return 1; 803 }804 SendInternalMessageA(win32ncmsg, lastHitTestVal, MAKELONG(x, y)); //TODO:805 return SendInternalMessageA(win32msg, 0, MAKELONG(x, y));826 } 827 SendInternalMessageA(win32ncmsg, lastHitTestVal, MAKELONG(x, y)); //TODO: 828 return SendInternalMessageA(win32msg, 0, MAKELONG(x, y)); 806 829 } 807 830 //****************************************************************************** -
trunk/src/user32/new/win32wnd.h
r345 r391 1 /* $Id: win32wnd.h,v 1.1 7 1999-07-20 15:46:54sandervl Exp $ */1 /* $Id: win32wnd.h,v 1.18 1999-07-25 09:19:22 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Code for OS/2 … … 66 66 ULONG MsgKillFocus(HWND hwnd); 67 67 ULONG MsgCommand(ULONG cmd, ULONG Id, HWND hwnd); 68 ULONG MsgSysCommand(ULONG win32sc, ULONG x, ULONG y); 69 ULONG MsgChar(ULONG cmd, ULONG repeatcnt, ULONG scancode, ULONG vkey, ULONG keyflags); 68 70 ULONG MsgButton(ULONG msg, ULONG x, ULONG y); 69 71 ULONG MsgMouseMove(ULONG keystate, ULONG x, ULONG y); … … 81 83 HWND getWindowHandle() { return Win32Hwnd; }; 82 84 HWND getOS2WindowHandle() { return OS2Hwnd; }; 85 HWND getOS2FrameWindowHandle() { return OS2HwndFrame; }; 83 86 Win32Window *getParent() { return (Win32Window *)ChildWindow::GetParent(); }; 84 87 void setParent(Win32Window *pwindow) { ChildWindow::SetParent((ChildWindow *)pwindow); }; … … 254 257 #define CMD_ACCELERATOR 3 255 258 259 #define WIN32SC_SIZE 0xf000 260 #define WIN32SC_MOVE 0xf010 261 #define WIN32SC_MINIMIZE 0xf020 262 #define WIN32SC_MAXIMIZE 0xf030 263 #define WIN32SC_NEXTWINDOW 0xf040 264 #define WIN32SC_PREVWINDOW 0xf050 265 #define WIN32SC_CLOSE 0xf060 266 #define WIN32SC_VSCROLL 0xf070 267 #define WIN32SC_HSCROLL 0xf080 268 #define WIN32SC_MOUSEMENU 0xf090 269 #define WIN32SC_KEYMENU 0xf100 270 #define WIN32SC_ARRANGE 0xf110 271 #define WIN32SC_RESTORE 0xf120 272 #define WIN32SC_TASKLIST 0xf130 273 #define WIN32SC_SCREENSAVE 0xf140 274 #define WIN32SC_HOTKEY 0xf150 275 276 #define KEY_ALTDOWN 1 277 #define KEY_PREVDOWN 2 278 #define KEY_UP 4 279 256 280 #endif //__cplusplus 257 281 -
trunk/src/user32/new/window.cpp
r385 r391 1 /* $Id: window.cpp,v 1. 9 1999-07-24 14:01:45sandervl Exp $ */1 /* $Id: window.cpp,v 1.10 1999-07-25 09:19:22 sandervl Exp $ */ 2 2 /* 3 3 * Win32 window apis for OS/2 … … 299 299 //****************************************************************************** 300 300 //****************************************************************************** 301 HDC WIN32API GetWindowDC(HWND arg1)302 {303 #ifdef DEBUG304 WriteLog("USER32: GetWindowDC\n");305 #endif306 return O32_GetWindowDC(arg1);307 }308 //******************************************************************************309 //******************************************************************************310 301 BOOL WIN32API EnableWindow( HWND hwnd, BOOL fEnable) 311 302 { … … 374 365 dprintf(("USER32: SetWindowPlacement\n")); 375 366 return O32_SetWindowPlacement(arg1, arg2); 367 } 368 //****************************************************************************** 369 //****************************************************************************** 370 BOOL WIN32API GetWindowPlacement( HWND arg1, LPWINDOWPLACEMENT arg2) 371 { 372 #ifdef DEBUG 373 WriteLog("USER32: GetWindowPlacement\n"); 374 #endif 375 return O32_GetWindowPlacement(arg1, arg2); 376 376 } 377 377 //****************************************************************************** … … 455 455 ptIcon)); 456 456 457 if ( O32_GetWindowPlacement( hwnd, &wndpl ))457 if (GetWindowPlacement( hwnd, &wndpl )) 458 458 { 459 459 if (rectWnd) *rectWnd = wndpl.rcNormalPosition; … … 537 537 dprintf(("GetWindowTextA %x", hwnd)); 538 538 return window->GetWindowTextA(lpsz, cch); 539 } 540 //****************************************************************************** 541 //****************************************************************************** 542 int WIN32API GetWindowTextLengthW( HWND hwnd) 543 { 544 dprintf(("USER32: GetWindowTextLengthW\n")); 545 return GetWindowTextLengthA(hwnd); 546 } 547 //****************************************************************************** 548 //****************************************************************************** 549 int WIN32API GetWindowTextW(HWND hwnd, LPWSTR lpsz, int cch) 550 { 551 char title[128]; 552 int rc; 553 554 rc = O32_GetWindowText(hwnd, title, sizeof(title)); 555 #ifdef DEBUG 556 WriteLog("USER32: GetWindowTextW returned %s\n", title); 557 #endif 558 if(rc > cch) { 559 title[cch-1] = 0; 560 rc = cch; 561 } 562 AsciiToUnicode(title, lpsz); 563 return(rc); 539 564 } 540 565 //****************************************************************************** -
trunk/src/user32/new/wingdi.cpp
r385 r391 1 /* $Id: wingdi.cpp,v 1. 6 1999-07-24 14:01:45sandervl Exp $ */1 /* $Id: wingdi.cpp,v 1.7 1999-07-25 09:19:22 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window graphics apis for OS/2 … … 97 97 //****************************************************************************** 98 98 //****************************************************************************** 99 HDC WIN32API GetWindowDC(HWND hwnd) 100 { 101 Win32Window *window; 102 103 window = Win32Window::GetWindowFromHandle(hwnd); 104 if(!window) { 105 dprintf(("GetWindowDC, window %x not found", hwnd)); 106 return 0; 107 } 108 dprintf(("GetWindowDC %x", hwnd)); 109 #ifdef OPEN32_GDI 110 return O32_GetWindowDC(window->getOS2WindowHandle()); 111 #else 112 return OSLibWinGetPS(window->getOS2FrameWindowHandle()); 113 #endif 114 } 115 //****************************************************************************** 116 //******************************************************************************
Note:
See TracChangeset
for help on using the changeset viewer.