Changeset 9001 for trunk/src


Ignore:
Timestamp:
Aug 14, 2002, 12:37:45 PM (23 years ago)
Author:
sandervl
Message:

CUSTOM_TRACKFRAME code is the default now. removed old code;RMB on system menu icon pops up system menu (OS/2 look); GetSysPopupPos fix

Location:
trunk/src/user32
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/Makefile

    r8542 r9001  
    1 # $Id: Makefile,v 1.103 2002-06-02 10:07:56 sandervl Exp $
     1# $Id: Makefile,v 1.104 2002-08-14 10:37:43 sandervl Exp $
    22
    33#
     
    2424#
    2525!ifndef WMAKE
    26 CDEFINES  = $(CDEFINES) -DINVERT -DCLIENTFRAME -DCUSTOM_TRACKFRAME
     26CDEFINES  = $(CDEFINES) -DINVERT -DCLIENTFRAME
    2727!else
    28 CDEFINES += -DINVERT -DCLIENTFRAME -DCUSTOM_TRACKFRAME
     28CDEFINES += -DINVERT -DCLIENTFRAME
    2929!endif
    3030
  • trunk/src/user32/pmwindow.cpp

    r8997 r9001  
    1 /* $Id: pmwindow.cpp,v 1.185 2002-08-13 20:17:23 sandervl Exp $ */
     1/* $Id: pmwindow.cpp,v 1.186 2002-08-14 10:37:43 sandervl Exp $ */
    22/*
    33 * Win32 Window Managment Code for OS/2
     
    18551855        dprintf(("PMFRAME: WM_TRACKFRAME %x %x %x", win32wnd->getWindowHandle(), mp1, mp2));
    18561856        if(fOS2Look) {//sent by titlebar control
    1857 #ifdef CUSTOM_TRACKFRAME
    18581857            Frame_SysCommandSizeMove(win32wnd, SC_MOVE_W+HTCAPTION_W);
    1859 #else
    1860             FrameTrackFrame(win32wnd, TF_MOVE);
    1861 #endif
    18621858        }
    18631859        rc = 0;
     
    19261922    WinSetWindowUShort(hwnd, QWS_FLAGS, ulFrameFlags);
    19271923}
    1928 #ifndef CUSTOM_TRACKFRAME
    1929 //******************************************************************************
    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 #endif
    20301924//******************************************************************************
    20311925//******************************************************************************
  • trunk/src/user32/win32wbase.cpp

    r8999 r9001  
    1 /* $Id: win32wbase.cpp,v 1.334 2002-08-13 20:39:51 sandervl Exp $ */
     1/* $Id: win32wbase.cpp,v 1.335 2002-08-14 10:37:44 sandervl Exp $ */
    22/*
    33 * Win32 Window Base Class for OS/2
     
    27522752        //     sent. VPC enables the owner when it receives that message,
    27532753        //     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)
    27542758        ::EnableWindow(owner->getWindowHandle(), 1);
    27552759    }
  • trunk/src/user32/win32wbasenonclient.cpp

    r8988 r9001  
    1 /* $Id: win32wbasenonclient.cpp,v 1.41 2002-08-12 15:05:43 sandervl Exp $ */
     1/* $Id: win32wbasenonclient.cpp,v 1.42 2002-08-14 10:37:45 sandervl Exp $ */
    22/*
    33 * Win32 Window Base Class for OS/2 (non-client methods)
     
    695695//Returns position of system menu in screen coordinates
    696696//******************************************************************************
    697 BOOL Win32BaseWindow::GetSysPopupPos(RECT* rect)
     697BOOL Win32BaseWindow::GetSysPopupPos(RECT* lpRect)
    698698{
    699699    if(hSysMenu)
    700700    {
    701701        if(dwStyle & WS_MINIMIZE) {
    702             *rect = rectWindow;
     702            GetWindowRect(getWindowHandle(), lpRect);
    703703        }
    704704        else
    705705        {
    706             GetInsideRect(rect );
    707             OffsetRect( rect, rectWindow.left, rectWindow.top);
     706            GetInsideRect(lpRect);
     707            OffsetRect(lpRect, rectWindow.left, rectWindow.top);
    708708            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;
    713713        }
    714714        return TRUE;
     
    12711271      break;
    12721272
     1273    case HTSYSMENU:
     1274      if (fOS2Look && (dwStyle & WS_SYSMENU))
     1275      {
     1276        SendMessageA( getWindowHandle(), WM_SYSCOMMAND,SC_MOUSEMENU+HTSYSMENU,lParam);
     1277      }
     1278      break;
     1279
    12731280    default:
    12741281      break;
     
    12911298    case SC_SIZE:
    12921299    {
    1293 #ifdef CUSTOM_TRACKFRAME
    12941300      Frame_SysCommandSizeMove(this, wParam);
    1295 #else
    1296       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 #endif
    13401301      break;
    13411302    }
    13421303
    13431304    case SC_MOVE:
    1344 #ifdef CUSTOM_TRACKFRAME
    13451305        Frame_SysCommandSizeMove(this, wParam);
    1346 #else
    1347         if (dwStyle & WS_MAXIMIZE) break;
    1348         FrameTrackFrame(this,TFOS_MOVE);
    1349 #endif
    13501306        break;
    13511307
  • trunk/src/user32/wintrack.cpp

    r8038 r9001  
    3737#define RECT_EQUAL(a,b) (memcmp(a, b, sizeof(RECT)) == 0)
    3838
    39 #ifdef CUSTOM_TRACKFRAME
    4039
    4140/***********************************************************************
     
    758757        /* Single click brings up the system menu when iconized */
    759758
    760         if( !moved )
     759        if( !moved && !fOS2Look)
    761760        {
    762761            if(style & WS_SYSMENU )
     
    768767}
    769768
    770 #endif //#ifdef CUSTOM_TRACKFRAME
Note: See TracChangeset for help on using the changeset viewer.