- Timestamp:
- Aug 14, 2002, 12:37:45 PM (23 years ago)
- Location:
- trunk/src/user32
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/Makefile
r8542 r9001 1 # $Id: Makefile,v 1.10 3 2002-06-02 10:07:56sandervl Exp $1 # $Id: Makefile,v 1.104 2002-08-14 10:37:43 sandervl Exp $ 2 2 3 3 # … … 24 24 # 25 25 !ifndef WMAKE 26 CDEFINES = $(CDEFINES) -DINVERT -DCLIENTFRAME -DCUSTOM_TRACKFRAME26 CDEFINES = $(CDEFINES) -DINVERT -DCLIENTFRAME 27 27 !else 28 CDEFINES += -DINVERT -DCLIENTFRAME -DCUSTOM_TRACKFRAME28 CDEFINES += -DINVERT -DCLIENTFRAME 29 29 !endif 30 30 -
trunk/src/user32/pmwindow.cpp
r8997 r9001 1 /* $Id: pmwindow.cpp,v 1.18 5 2002-08-13 20:17:23 sandervl Exp $ */1 /* $Id: pmwindow.cpp,v 1.186 2002-08-14 10:37:43 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Managment Code for OS/2 … … 1855 1855 dprintf(("PMFRAME: WM_TRACKFRAME %x %x %x", win32wnd->getWindowHandle(), mp1, mp2)); 1856 1856 if(fOS2Look) {//sent by titlebar control 1857 #ifdef CUSTOM_TRACKFRAME1858 1857 Frame_SysCommandSizeMove(win32wnd, SC_MOVE_W+HTCAPTION_W); 1859 #else1860 FrameTrackFrame(win32wnd, TF_MOVE);1861 #endif1862 1858 } 1863 1859 rc = 0; … … 1926 1922 WinSetWindowUShort(hwnd, QWS_FLAGS, ulFrameFlags); 1927 1923 } 1928 #ifndef CUSTOM_TRACKFRAME1929 //******************************************************************************1930 //TODO: Quickly moving a window two times doesn't force a repaint (1st time)1931 //1932 //1933 BOOL (APIENTRY *WinTrackWindow)(HWND hwndTrack, PTRACKINFO pti) = NULL;1934 //1935 //******************************************************************************1936 VOID FrameTrackFrame(Win32BaseWindow *win32wnd,DWORD flags)1937 {1938 TRACKINFO track;1939 RECTL rcl;1940 PRECT pWindowRect, pClientRect;1941 HWND hwndTracking;1942 LONG parentHeight, parentWidth;1943 static BOOL fInit = FALSE;1944 APIRET rc;1945 BOOL ret;1946 HWND hwnd = win32wnd->getWindowHandle();1947 1948 if(!fInit) {1949 HMODULE hModule;1950 char buf[CCHMAXPATH];1951 rc = DosLoadModule(buf, sizeof(buf), "PMMERGE", &hModule);1952 rc = DosQueryProcAddr(hModule, 5466, NULL, (PFN *)&WinTrackWindow);1953 if(rc) WinTrackWindow = NULL;1954 fInit = TRUE;1955 }1956 dprintf(("FrameTrackFrame: %x %x", hwnd, flags));1957 track.cxBorder = 4;1958 track.cyBorder = 4; /* 4 pel wide lines used for rectangle */1959 track.cxGrid = 1;1960 track.cyGrid = 1; /* smooth tracking with mouse */1961 track.cxKeyboard = 8;1962 track.cyKeyboard = 8; /* faster tracking using cursor keys */1963 1964 pWindowRect = win32wnd->getWindowRect();1965 if(win32wnd->getParent()) {1966 parentHeight = win32wnd->getParent()->getClientHeight();1967 parentWidth = win32wnd->getParent()->getClientWidth();1968 hwndTracking = win32wnd->getParent()->getOS2WindowHandle();1969 }1970 else {1971 parentHeight = OSLibQueryScreenHeight();1972 parentWidth = OSLibQueryScreenWidth();1973 hwndTracking = HWND_DESKTOP;1974 }1975 1976 mapWin32ToOS2Rect(parentHeight, pWindowRect, (PRECTLOS2)&track.rclTrack);1977 rcl = track.rclTrack;1978 WinQueryWindowRect(hwndTracking, &track.rclBoundary);1979 1980 track.ptlMinTrackSize.x = 10;1981 track.ptlMinTrackSize.y = 10; /* set smallest allowed size of rectangle */1982 track.ptlMaxTrackSize.x = parentWidth;1983 track.ptlMaxTrackSize.y = parentHeight; /* set largest allowed size of rectangle */1984 1985 win32wnd->AdjustTrackInfo((PPOINT)&track.ptlMinTrackSize, (PPOINT)&track.ptlMaxTrackSize);1986 1987 track.fs = flags;1988 1989 BOOL fDynamicDrag = WinQuerySysValue(HWND_DESKTOP, SVOS_DYNAMICDRAG);1990 1991 //TODO: send WM_QUERYDRAGICON to fetch icon (not really necessary)1992 1993 SendMessageA( hwnd, WM_ENTERSIZEMOVE_W, 0, 0);1994 1995 SEL sel = RestoreOS2FS();1996 if(fDynamicDrag && WinTrackWindow) {1997 ret = WinTrackWindow(win32wnd->getOS2FrameWindowHandle(), &track);1998 }1999 else ret = WinTrackRect(hwndTracking, NULL, &track);2000 SetFS(sel);2001 2002 //TODO:2003 // if (HOOK_CallHooksA( WH_CBT_W, HCBT_MOVESIZE_W, (WPARAM)hwnd, (LPARAM)&sizingRect )) moved = FALSE;2004 2005 SendMessageA( hwnd, WM_EXITSIZEMOVE_W, 0, 0 );2006 SendMessageA( hwnd, WM_SETVISIBLE_W, !IsIconic(hwnd), 0L);2007 2008 if(ret) {2009 /* if successful copy final position back */2010 if(!WinEqualRect(0, &rcl, &track.rclTrack)) {2011 dprintf(("FrameTrackFrame: new (os/2) window rect: (%d,%d)(%d,%d)", track.rclTrack.xLeft, track.rclTrack.yBottom, track.rclTrack.xRight - track.rclTrack.xLeft, track.rclTrack.yTop - track.rclTrack.yBottom));2012 if(flags == TF_MOVE) {2013 WinSetWindowPos(win32wnd->getOS2FrameWindowHandle(),2014 0, track.rclTrack.xLeft, track.rclTrack.yBottom,2015 0, 0, SWP_MOVE);2016 }2017 else {2018 WinSetWindowPos(win32wnd->getOS2FrameWindowHandle(),2019 0, track.rclTrack.xLeft, track.rclTrack.yBottom,2020 track.rclTrack.xRight - track.rclTrack.xLeft,2021 track.rclTrack.yTop - track.rclTrack.yBottom,2022 SWP_SIZE|SWP_MOVE);2023 }2024 }2025 return;2026 }2027 return;2028 }2029 #endif2030 1924 //****************************************************************************** 2031 1925 //****************************************************************************** -
trunk/src/user32/win32wbase.cpp
r8999 r9001 1 /* $Id: win32wbase.cpp,v 1.33 4 2002-08-13 20:39:51sandervl Exp $ */1 /* $Id: win32wbase.cpp,v 1.335 2002-08-14 10:37:44 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Base Class for OS/2 … … 2752 2752 // sent. VPC enables the owner when it receives that message, 2753 2753 // but by then it's too late. 2754 // (MFC created modeless dialog) 2755 //TODO: This might be the wrong place to do it. EndDialog is called, 2756 // so perhaps it should be done there. (although Wine only 2757 // enables the owner if the dialog is modal) 2754 2758 ::EnableWindow(owner->getWindowHandle(), 1); 2755 2759 } -
trunk/src/user32/win32wbasenonclient.cpp
r8988 r9001 1 /* $Id: win32wbasenonclient.cpp,v 1.4 1 2002-08-12 15:05:43sandervl Exp $ */1 /* $Id: win32wbasenonclient.cpp,v 1.42 2002-08-14 10:37:45 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Base Class for OS/2 (non-client methods) … … 695 695 //Returns position of system menu in screen coordinates 696 696 //****************************************************************************** 697 BOOL Win32BaseWindow::GetSysPopupPos(RECT* rect)697 BOOL Win32BaseWindow::GetSysPopupPos(RECT* lpRect) 698 698 { 699 699 if(hSysMenu) 700 700 { 701 701 if(dwStyle & WS_MINIMIZE) { 702 *rect = rectWindow;702 GetWindowRect(getWindowHandle(), lpRect); 703 703 } 704 704 else 705 705 { 706 GetInsideRect( rect);707 OffsetRect( rect, rectWindow.left, rectWindow.top);706 GetInsideRect(lpRect); 707 OffsetRect(lpRect, rectWindow.left, rectWindow.top); 708 708 if(getStyle() & WS_CHILD) 709 ClientToScreen(getParent()->getWindowHandle(), (POINT *) rect);710 711 rect->right = rect->left + GetSystemMetrics(SM_CYCAPTION) - 1;712 rect->bottom = rect->top + GetSystemMetrics(SM_CYCAPTION) - 1;709 ClientToScreen(getParent()->getWindowHandle(), (POINT *)lpRect); 710 711 lpRect->right = lpRect->left + GetSystemMetrics(SM_CYCAPTION) - 1; 712 lpRect->bottom = lpRect->top + GetSystemMetrics(SM_CYCAPTION) - 1; 713 713 } 714 714 return TRUE; … … 1271 1271 break; 1272 1272 1273 case HTSYSMENU: 1274 if (fOS2Look && (dwStyle & WS_SYSMENU)) 1275 { 1276 SendMessageA( getWindowHandle(), WM_SYSCOMMAND,SC_MOUSEMENU+HTSYSMENU,lParam); 1277 } 1278 break; 1279 1273 1280 default: 1274 1281 break; … … 1291 1298 case SC_SIZE: 1292 1299 { 1293 #ifdef CUSTOM_TRACKFRAME1294 1300 Frame_SysCommandSizeMove(this, wParam); 1295 #else1296 DWORD flags;1297 1298 if (dwStyle & WS_MAXIMIZE) break;1299 1300 switch ((wParam & 0xF)+2)1301 {1302 case HTLEFT:1303 flags = TFOS_LEFT;1304 break;1305 1306 case HTRIGHT:1307 flags = TFOS_RIGHT;1308 break;1309 1310 case HTTOP:1311 flags = TFOS_TOP;1312 break;1313 1314 case HTTOPLEFT:1315 flags = TFOS_TOP | TFOS_LEFT;1316 break;1317 1318 case HTTOPRIGHT:1319 flags = TFOS_TOP | TFOS_RIGHT;1320 break;1321 1322 case HTBOTTOM:1323 flags = TFOS_BOTTOM;1324 break;1325 1326 case HTBOTTOMLEFT:1327 flags = TFOS_BOTTOM | TFOS_LEFT;1328 break;1329 1330 case HTBOTTOMRIGHT:1331 flags = TFOS_BOTTOM | TFOS_RIGHT;1332 break;1333 1334 default:1335 flags = TFOS_BOTTOM | TFOS_RIGHT;1336 break;1337 }1338 if (flags) FrameTrackFrame(this,flags);1339 #endif1340 1301 break; 1341 1302 } 1342 1303 1343 1304 case SC_MOVE: 1344 #ifdef CUSTOM_TRACKFRAME1345 1305 Frame_SysCommandSizeMove(this, wParam); 1346 #else1347 if (dwStyle & WS_MAXIMIZE) break;1348 FrameTrackFrame(this,TFOS_MOVE);1349 #endif1350 1306 break; 1351 1307 -
trunk/src/user32/wintrack.cpp
r8038 r9001 37 37 #define RECT_EQUAL(a,b) (memcmp(a, b, sizeof(RECT)) == 0) 38 38 39 #ifdef CUSTOM_TRACKFRAME40 39 41 40 /*********************************************************************** … … 758 757 /* Single click brings up the system menu when iconized */ 759 758 760 if( !moved )759 if( !moved && !fOS2Look) 761 760 { 762 761 if(style & WS_SYSMENU ) … … 768 767 } 769 768 770 #endif //#ifdef CUSTOM_TRACKFRAME
Note:
See TracChangeset
for help on using the changeset viewer.