Changeset 1039 for trunk/src


Ignore:
Timestamp:
Sep 25, 1999, 11:27:08 AM (26 years ago)
Author:
dengert
Message:

fixed ClientToScreen adn ScreenToClient

Location:
trunk/src/user32
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/oslibwin.cpp

    r1010 r1039  
    1 /* $Id: oslibwin.cpp,v 1.4 1999-09-22 14:58:23 dengert Exp $ */
     1/* $Id: oslibwin.cpp,v 1.5 1999-09-25 09:27:07 dengert Exp $ */
    22/*
    33 * Window API wrappers for OS/2
     
    656656//******************************************************************************
    657657//******************************************************************************
     658BOOL OSLibWinMapWindowPoints (HWND hwndFrom, HWND hwndTo, OSLIBPOINT *pptl, ULONG num)
     659{
     660   return WinMapWindowPoints (hwndFrom, hwndTo, (PPOINTL)pptl, num);
     661}
     662//******************************************************************************
     663//******************************************************************************
  • trunk/src/user32/oslibwin.h

    r1000 r1039  
    1 /* $Id: oslibwin.h,v 1.3 1999-09-21 17:04:27 dengert Exp $ */
     1/* $Id: oslibwin.h,v 1.4 1999-09-25 09:27:07 dengert Exp $ */
    22/*
    33 * Window API wrappers for OS/2
     
    240240BOOL  OSLibWinEndEnumWindows(HWND hwndEnum);
    241241BOOL  OSLibWinQueryWindowProcess(HWND hwnd, ULONG *pid, ULONG *tid);
     242BOOL  OSLibWinMapWindowPoints (HWND hwndFrom, HWND hwndTo, OSLIBPOINT *pptl, ULONG num);
    242243
    243244#endif //__OSLIBWIN_H__
  • trunk/src/user32/pmwindow.cpp

    r1005 r1039  
    1 /* $Id: pmwindow.cpp,v 1.5 1999-09-22 08:58:35 sandervl Exp $ */
     1/* $Id: pmwindow.cpp,v 1.6 1999-09-25 09:27:07 dengert Exp $ */
    22/*
    33 * Win32 Window Managment Code for OS/2
     
    7777     (PSZ)WIN32_STDCLASS,               /* Window class name            */
    7878     (PFNWP)Win32WindowProc,            /* Address of window procedure  */
    79      CS_SIZEREDRAW | CS_HITTEST,
     79     CS_SIZEREDRAW | CS_HITTEST | CS_MOVENOTIFY,
    8080     NROF_WIN32WNDBYTES)) {
    8181        dprintf(("WinRegisterClass Win32BaseWindow failed"));
     
    269269            win32wnd->setEraseBkgnd (!erased, !erased);
    270270        }
     271        break;
     272    }
     273
     274    case WM_MOVE:
     275    {
     276        if (!win32wnd->isFrameWindow()) break;
     277
     278        HWND      hFrame = win32wnd->getOS2FrameWindowHandle();
     279        SWP       swp, swpo;
     280        WINDOWPOS wp;
     281        ULONG     parentHeight = 0;
     282        RECTL     rcl;
     283
     284        WinQueryWindowRect (hwnd, &rcl);
     285        WinMapWindowPoints (hwnd, hFrame, (PPOINTL)&rcl, 2);
     286        swp.x  = swpo.x  = rcl.xLeft;
     287        swp.y  = swpo.y  = rcl.yBottom;
     288        swp.cx = swpo.cx = rcl.xRight - rcl.xLeft;
     289        swp.cy = swpo.cy = rcl.yTop   - rcl.yBottom;
     290        swp.fl = SWP_MOVE | SWP_NOREDRAW;
     291        swp.hwnd             = hwnd;
     292        swp.hwndInsertBehind = NULLHANDLE;
     293
     294        OSLibMapSWPtoWINDOWPOS(&swp, &wp, &swpo, NULLHANDLE, hFrame);
     295
     296        wp.flags &= ~SWP_NOMOVE_W;
     297        wp.hwnd = win32wnd->getWindowHandle();
     298        win32wnd->setWindowRect(wp.x, wp.y, wp.x + wp.cx, wp.y + wp.cy);
     299        win32wnd->setClientRect(swpo.x, swpo.y, swpo.x + swpo.cx, swpo.y + swpo.cy);
     300        win32wnd->MsgPosChanged((LPARAM)&wp);
    271301        break;
    272302    }
  • trunk/src/user32/user32.cpp

    r1036 r1039  
    1 /* $Id: user32.cpp,v 1.29 1999-09-24 22:45:27 sandervl Exp $ */
     1/* $Id: user32.cpp,v 1.30 1999-09-25 09:27:08 dengert Exp $ */
    22
    33/*
     
    12421242//******************************************************************************
    12431243//******************************************************************************
    1244 BOOL WIN32API ScreenToClient( HWND arg1, LPPOINT  arg2)
     1244BOOL WIN32API ScreenToClient (HWND hwnd, LPPOINT pt)
    12451245{
    12461246#ifdef DEBUG
    12471247    WriteLog("USER32:  ScreenToClient\n");
    12481248#endif
    1249     return O32_ScreenToClient(arg1, arg2);
     1249    Win32BaseWindow *wnd;
     1250    PRECT rcl;
     1251
     1252    if (!hwnd) return (TRUE);
     1253    wnd = Win32BaseWindow::GetWindowFromHandle (hwnd);
     1254    if (!wnd) return (TRUE);
     1255
     1256    rcl   = wnd->getClientRect();
     1257    pt->y = ScreenHeight - pt->y;
     1258    OSLibWinMapWindowPoints (OSLIB_HWND_DESKTOP, wnd->getOS2WindowHandle(), (OSLIBPOINT *)pt, 1);
     1259    pt->y = (rcl->bottom - rcl->top) - pt->y;
     1260    return (TRUE);
    12501261}
    12511262//******************************************************************************
  • trunk/src/user32/win32wbase.cpp

    r1036 r1039  
    1 /* $Id: win32wbase.cpp,v 1.10 1999-09-24 22:45:27 sandervl Exp $ */
     1/* $Id: win32wbase.cpp,v 1.11 1999-09-25 09:27:07 dengert Exp $ */
    22/*
    33 * Win32 Window Base Class for OS/2
     
    12421242        WPARAM     wp   = SIZE_RESTORED;
    12431243
    1244         if (!(wpos->flags & SWP_NOCLIENTMOVE))
     1244        if (!(wpos->flags & SWP_NOMOVE) && !(wpos->flags & SWP_NOCLIENTMOVE))
    12451245            SendMessageA(WM_MOVE, 0, MAKELONG(rectClient.left, rectClient.top));
    12461246
    1247         if (!(wpos->flags & SWP_NOCLIENTSIZE))
     1247        if (!(wpos->flags & SWP_NOSIZE) && !(wpos->flags & SWP_NOCLIENTSIZE))
    12481248        {
    12491249            if (dwStyle & WS_MAXIMIZE) wp = SIZE_MAXIMIZED;
  • trunk/src/user32/window.cpp

    r1036 r1039  
    1 /* $Id: window.cpp,v 1.7 1999-09-24 22:45:28 sandervl Exp $ */
     1/* $Id: window.cpp,v 1.8 1999-09-25 09:27:08 dengert Exp $ */
    22/*
    33 * Win32 window apis for OS/2
    44 *
    55 * Copyright 1999 Sander van Leeuwen
     6 * Copyright 1999 Daniela Engert (dani@ngrt.de)
    67 *
    78 * Parts based on Wine Windows code (windows\win.c)
     
    778779//******************************************************************************
    779780//******************************************************************************
    780 BOOL WIN32API ClientToScreen( HWND arg1, PPOINT  arg2)
    781 {
    782 #ifdef DEBUG
    783 ////    WriteLog("USER32:  ClientToScreen\n");
    784 #endif
    785     return O32_ClientToScreen(arg1, arg2);
     781BOOL WIN32API ClientToScreen (HWND hwnd, PPOINT pt)
     782{
     783#ifdef DEBUG
     784   WriteLog("USER32:  ClientToScreen\n");
     785#endif
     786    Win32BaseWindow *wnd;
     787    PRECT rcl;
     788
     789    if (!hwnd) return (TRUE);
     790    wnd = Win32BaseWindow::GetWindowFromHandle (hwnd);
     791    if (!wnd) return (TRUE);
     792
     793    rcl  = wnd->getClientRect();
     794    pt->y = (rcl->bottom - rcl->top) - pt->y;
     795    OSLibWinMapWindowPoints (wnd->getOS2WindowHandle(), OSLIB_HWND_DESKTOP, (OSLIBPOINT *)pt, 1);
     796    pt->y = ScreenHeight - pt->y;
     797    return (TRUE);
    786798}
    787799//******************************************************************************
     
    11521164//******************************************************************************
    11531165//******************************************************************************
     1166
Note: See TracChangeset for help on using the changeset viewer.