Changeset 319 for trunk/src/user32/new/win32wnd.cpp
- Timestamp:
- Jul 17, 1999, 11:17:58 AM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/new/win32wnd.cpp
r314 r319 1 /* $Id: win32wnd.cpp,v 1. 4 1999-07-16 11:32:09sandervl Exp $ */1 /* $Id: win32wnd.cpp,v 1.5 1999-07-17 09:17:58 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Code for OS/2 … … 68 68 magic = WIN32PM_MAGIC; 69 69 OS2Hwnd = 0; 70 OS2HwndFrame = 0; 70 71 OS2HwndMenu = 0; 71 72 Win32Hwnd = 0; … … 92 93 hwndLinkAfter = HWND_BOTTOM; 93 94 flags = 0; 95 isIcon = FALSE; 94 96 owner = NULL; 95 97 windowClass = 0; … … 329 331 cs->x, cs->y, cs->cx, cs->cy, 330 332 (owner) ? owner->getOS2WindowHandle() : 0, 331 (hwndLinkAfter == HWND_BOTTOM) ? TRUE : FALSE );333 (hwndLinkAfter == HWND_BOTTOM) ? TRUE : FALSE, &OS2HwndFrame); 332 334 333 335 if(OS2Hwnd == 0) { … … 665 667 ULONG Win32Window::MsgDestroy() 666 668 { 667 return SendMessageA(WM_DESTROY, 0, 0); 669 ULONG rc; 670 671 rc = SendMessageA(WM_DESTROY, 0, 0); 672 delete this; 673 return rc; 668 674 } 669 675 //****************************************************************************** … … 687 693 } 688 694 //****************************************************************************** 695 //TODO: Send WM_NCCALCSIZE message here and correct size if necessary 689 696 //****************************************************************************** 690 697 ULONG Win32Window::MsgSize(ULONG width, ULONG height, BOOL fMinimize, BOOL fMaximize) … … 911 918 if(HMHandleTranslateToOS2(hMenu, (PULONG)&menutemplate) == NO_ERROR) 912 919 { 913 OS2HwndMenu = OSLibWinCreateMenu(OS2Hwnd , menutemplate);920 OS2HwndMenu = OSLibWinCreateMenu(OS2HwndFrame, menutemplate); 914 921 if(OS2HwndMenu == 0) { 915 922 dprintf(("Win32Window::SetMenu OS2HwndMenu == 0")); … … 924 931 BOOL Win32Window::ShowWindow(ULONG nCmdShow) 925 932 { 926 return O32_ShowWindow(OS2Hwnd, nCmdShow); 933 ULONG showstate = 0; 934 935 switch(nCmdShow) 936 { 937 case SW_SHOW: 938 case SW_SHOWDEFAULT: //todo 939 showstate = SWPOS_SHOW; 940 break; 941 case SW_HIDE: 942 showstate = SWPOS_HIDE; 943 break; 944 case SW_MINIMIZE: 945 showstate = SWPOS_MINIMIZE; 946 break; 947 case SW_SHOWMAXIMIZED: 948 showstate = SWPOS_MAXIMIZE | SWPOS_SHOW; 949 break; 950 case SW_SHOWMINIMIZED: 951 showstate = SWPOS_MINIMIZE | SWPOS_SHOW; 952 break; 953 case SW_SHOWMINNOACTIVE: //TODO 954 showstate = SWPOS_MINIMIZE | SWPOS_SHOW; 955 break; 956 case SW_SHOWNA: //TODO 957 showstate = SWPOS_SHOW; 958 break; 959 case SW_SHOWNOACTIVATE: //TODO 960 showstate = SWPOS_SHOW; 961 break; 962 case SW_SHOWNORMAL: 963 showstate = SWPOS_RESTORE; 964 break; 965 } 966 return OSLibWinShowWindow(OS2HwndFrame, showstate); 927 967 } 928 968 //****************************************************************************** … … 931 971 { 932 972 Win32Window *window; 973 ULONG setstate = 0; 933 974 934 975 switch(hwndInsertAfter) { … … 950 991 951 992 } 952 return O32_SetWindowPos(OS2Hwnd, hwndInsertAfter, x, y, cx, cy, fuFlags); 953 } 993 setstate = SWPOS_MOVE | SWPOS_SIZE | SWPOS_ACTIVATE | SWPOS_ZORDER; 994 if(fuFlags & SWP_DRAWFRAME) 995 setstate |= 0; //TODO 996 if(fuFlags & SWP_FRAMECHANGED) 997 setstate |= 0; //TODO 998 if(fuFlags & SWP_HIDEWINDOW) 999 setstate &= ~SWPOS_ZORDER; 1000 if(fuFlags & SWP_NOACTIVATE) 1001 setstate &= ~SWPOS_ACTIVATE; 1002 if(fuFlags & SWP_NOCOPYBITS) 1003 setstate |= 0; //TODO 1004 if(fuFlags & SWP_NOMOVE) 1005 setstate &= ~SWPOS_MOVE; 1006 if(fuFlags & SWP_NOSIZE) 1007 setstate &= ~SWPOS_SIZE; 1008 if(fuFlags & SWP_NOREDRAW) 1009 setstate |= SWPOS_NOREDRAW; 1010 if(fuFlags & SWP_NOZORDER) 1011 setstate &= ~SWPOS_ZORDER; 1012 if(fuFlags & SWP_SHOWWINDOW) 1013 setstate |= SWPOS_SHOW; 1014 1015 return OSLibWinSetWindowPos(OS2HwndFrame, hwndInsertAfter, x, y, cx, cy, setstate); 1016 } 1017 //****************************************************************************** 1018 //Also destroys all the child windows (destroy parent, destroy children) 954 1019 //****************************************************************************** 955 1020 BOOL Win32Window::DestroyWindow() 956 1021 { 957 return TRUE;1022 return OSLibWinDestroyWindow(OS2HwndFrame); 958 1023 } 959 1024 //****************************************************************************** … … 1015 1080 HWND topchild; 1016 1081 1017 topchild = OSLibWinQueryTopMostChildWindow(OS2Hwnd );1082 topchild = OSLibWinQueryTopMostChildWindow(OS2HwndFrame); 1018 1083 if(topchild) 1019 { //TODO1084 { 1020 1085 return topchild; 1021 1086 } … … 1023 1088 } 1024 1089 //****************************************************************************** 1025 //TODO 1090 //Don't call WinUpdateWindow as that one also updates the child windows 1091 //Also need to send WM_PAINT directly to the window procedure, which doesn't 1092 //always happen with WinUpdateWindow (could be posted if thread doesn't own window) 1026 1093 //****************************************************************************** 1027 1094 BOOL Win32Window::UpdateWindow() 1028 1095 { 1096 RECTL rect; 1097 1098 if(OSLibWinQueryUpdateRect(OS2Hwnd, (PVOID)&rect)) 1099 {//update region not empty 1100 SendMessageA((isIcon) ? WM_PAINTICON : WM_PAINT, 0, 0); 1101 } 1029 1102 return TRUE; 1030 1103 } 1031 1104 //****************************************************************************** 1032 //TODO1033 1105 //****************************************************************************** 1034 1106 BOOL Win32Window::IsIconic() 1035 1107 { 1036 return FALSE;1108 return OSLibWinIsIconic(OS2HwndFrame); 1037 1109 } 1038 1110 //****************************************************************************** … … 1144 1216 Win32Window *window; 1145 1217 1146 if(HIWORD(hwnd) != 0x6800) 1218 if(HIWORD(hwnd) != 0x6800) { 1147 1219 return NULL; 1220 } 1148 1221 1149 1222 if(HMHandleTranslateToOS2(LOWORD(hwnd), (PULONG)&window) == NO_ERROR) {
Note:
See TracChangeset
for help on using the changeset viewer.