Changeset 1159 for trunk/src


Ignore:
Timestamp:
Oct 7, 1999, 11:28:02 AM (26 years ago)
Author:
sandervl
Message:

EB's fixes + scrollbar changes

Location:
trunk/src/user32
Files:
8 edited

Legend:

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

    r1118 r1159  
    1 /* $Id: oslibwin.cpp,v 1.12 1999-10-04 09:56:00 sandervl Exp $ */
     1/* $Id: oslibwin.cpp,v 1.13 1999-10-07 09:28:00 sandervl Exp $ */
    22/*
    33 * Window API wrappers for OS/2
     
    693693//******************************************************************************
    694694//******************************************************************************
    695 BOOL OSLibWinShowScrollBar(HWND hwndParent, int scrollBar, BOOL fShow)
    696 {
    697  HWND hwndScroll;
    698 
    699    if(scrollBar == OSLIB_VSCROLL) {
    700         hwndScroll = WinWindowFromID(hwndParent, FID_VERTSCROLL);
     695BOOL OSLibWinShowScrollBar(HWND hwndParent, HWND hwndScroll, int scrollBar, BOOL fShow)
     696{
     697   if(hwndScroll == NULL) {
     698        dprintf(("OSLibWinShowScrollBar: scrollbar %d (parent %x) not found!", scrollBar, hwndParent));
     699        return FALSE;
    701700   }
    702    else hwndScroll = WinWindowFromID(hwndParent, FID_HORZSCROLL);
    703 
    704    if(hwndScroll == NULL)
    705         return FALSE;
    706 
    707    if(fShow != WinIsWindowVisible(hwndScroll)) {
    708         WinShowWindow(hwndScroll, fShow);
     701
     702   if(fShow != WinIsWindowVisible(hwndScroll))
     703   {
     704         WinSetParent(hwndScroll, fShow ? hwndParent : HWND_OBJECT, FALSE);
     705         WinSendMsg(hwndParent, WM_UPDATEFRAME,
     706                    MPFROMLONG( ( scrollBar == OSLIB_VSCROLL ) ? FCF_VERTSCROLL
     707                                                               : FCF_HORZSCROLL),
     708                    MPVOID );
     709
     710         WinShowWindow(hwndScroll, fShow);
    709711   }
    710712   return TRUE;   
     
    712714//******************************************************************************
    713715//******************************************************************************
    714 ULONG OSLibWinGetScrollPos(HWND hwndParent, int scrollBar)
    715 {
    716  HWND hwndScroll;
    717 
     716HWND OSLibWinQueryScrollBarHandle(HWND hwndParent, int scrollBar)
     717{
    718718   if(scrollBar == OSLIB_VSCROLL) {
    719         hwndScroll = WinWindowFromID(hwndParent, FID_VERTSCROLL);
     719        return WinWindowFromID(hwndParent, FID_VERTSCROLL);
    720720   }
    721    else hwndScroll = WinWindowFromID(hwndParent, FID_HORZSCROLL);
    722 
     721   else return WinWindowFromID(hwndParent, FID_HORZSCROLL);
     722}
     723//******************************************************************************
     724//******************************************************************************
     725ULONG OSLibWinGetScrollPos(HWND hwndParent, HWND hwndScroll)
     726{
    723727   if(hwndScroll == NULL)
    724728        return 0;
     
    728732//******************************************************************************
    729733//******************************************************************************
    730 ULONG OSLibWinSetScrollPos(HWND hwndParent, int scrollBar, int pos, int fRedraw)
    731 {
    732  HWND  hwndScroll;
     734ULONG OSLibWinSetScrollPos(HWND hwndParent, HWND hwndScroll, int pos, int fRedraw)
     735{
    733736 ULONG oldPos;
    734 
    735    if(scrollBar == OSLIB_VSCROLL) {
    736         hwndScroll = WinWindowFromID(hwndParent, FID_VERTSCROLL);
    737    }
    738    else hwndScroll = WinWindowFromID(hwndParent, FID_HORZSCROLL);
    739737
    740738   if(hwndScroll == NULL)
     
    750748//******************************************************************************
    751749//******************************************************************************
    752 BOOL OSLibWinSetScrollRange(HWND hwndParent, int scrollBar, int minpos,
     750BOOL OSLibWinSetScrollRange(HWND hwndParent, HWND hwndScroll, int minpos,
    753751                            int maxpos, int fRedraw)
    754752{
    755  HWND hwndScroll;
    756 
    757    if(scrollBar == OSLIB_VSCROLL) {
    758         hwndScroll = WinWindowFromID(hwndParent, FID_VERTSCROLL);
    759    }
    760    else hwndScroll = WinWindowFromID(hwndParent, FID_HORZSCROLL);
    761 
    762753   if(hwndScroll == NULL)
    763754        return 0;
     
    769760//******************************************************************************
    770761//******************************************************************************
    771 BOOL OSLibWinSetScrollPageSize(HWND hwndParent, int scrollBar, int pagesize,
     762BOOL OSLibWinSetScrollPageSize(HWND hwndParent, HWND hwndScroll, int pagesize,
    772763                               int totalsize, int fRedraw)
    773764{
    774  HWND hwndScroll;
    775 
    776    if(scrollBar == OSLIB_VSCROLL) {
    777         hwndScroll = WinWindowFromID(hwndParent, FID_VERTSCROLL);
    778    }
    779    else hwndScroll = WinWindowFromID(hwndParent, FID_HORZSCROLL);
    780 
    781765   if(hwndScroll == NULL)
    782766        return 0;
     
    889873//******************************************************************************
    890874//******************************************************************************
     875BOOL OSLibSetWindowID(HWND hwnd, ULONG value)
     876{
     877  dprintf(("OSLibSetWindowID hwnd:%x ID:%x", hwnd, value));
     878  return WinSetWindowULong(hwnd, QWS_ID, value);
     879}
     880//******************************************************************************
     881//******************************************************************************
  • trunk/src/user32/oslibwin.h

    r1118 r1159  
    1 /* $Id: oslibwin.h,v 1.8 1999-10-04 09:56:00 sandervl Exp $ */
     1/* $Id: oslibwin.h,v 1.9 1999-10-07 09:28:01 sandervl Exp $ */
    22/*
    33 * Window API wrappers for OS/2
     
    4444BOOL  OSLibWinSetWindowULong(HWND hwnd, ULONG offset, ULONG value);
    4545ULONG OSLibWinGetWindowULong(HWND hwnd, ULONG offset);
     46BOOL  OSLibSetWindowID(HWND hwnd, ULONG value);
    4647
    4748BOOL  OSLibPostMessage(HWND hwnd, ULONG msg, ULONG wParam, ULONG lParam);
     
    248249#define OSLIB_VSCROLL   1
    249250BOOL  OSLibWinEnableScrollBar(HWND hwndParent, int scrollBar, BOOL fEnable);
    250 BOOL  OSLibWinShowScrollBar(HWND hwndParent, int scrollBar, BOOL fShow);
    251 ULONG OSLibWinGetScrollPos(HWND hwndParent, int scrollBar);
    252 ULONG OSLibWinSetScrollPos(HWND hwndParent, int scrollBar, int pos, int fRedraw);
    253 BOOL  OSLibWinSetScrollRange(HWND hwndParent, int scrollBar, int minpos,
     251BOOL  OSLibWinShowScrollBar(HWND hwndParent, HWND hwndScroll, int scrollBar, BOOL fShow);
     252HWND  OSLibWinQueryScrollBarHandle(HWND hwndParent, int scrollBar);
     253ULONG OSLibWinGetScrollPos(HWND hwndParent, HWND hwndScroll);
     254ULONG OSLibWinSetScrollPos(HWND hwndParent, HWND hwndScroll, int pos, int fRedraw);
     255BOOL  OSLibWinSetScrollRange(HWND hwndParent, HWND hwndScroll, int minpos,
    254256                             int maxpos, int fRedraw);
    255 BOOL  OSLibWinSetScrollPageSize(HWND hwndParent, int scrollBar, int pagesize,
     257BOOL  OSLibWinSetScrollPageSize(HWND hwndParent, HWND hwndScroll, int pagesize,
    256258                                int totalsize, int fRedraw);
    257259
  • trunk/src/user32/pmwindow.cpp

    r1154 r1159  
    1 /* $Id: pmwindow.cpp,v 1.15 1999-10-06 10:36:39 dengert Exp $ */
     1/* $Id: pmwindow.cpp,v 1.16 1999-10-07 09:28:01 sandervl Exp $ */
    22/*
    33 * Win32 Window Managment Code for OS/2
     
    776776     PSZ   wintext;
    777777
    778         if(wndpars->fsStatus & (WPM_CCHTEXT | WPM_TEXT)) {
     778        if(wndpars->fsStatus & (WPM_CCHTEXT | WPM_TEXT))
     779        {
    779780            if(wndpars->fsStatus & WPM_CCHTEXT)
    780781                wndpars->cchText = win32wnd->MsgGetTextLength();
    781782            if(wndpars->fsStatus & WPM_TEXT)
    782783                wndpars->pszText = win32wnd->MsgGetText();
     784
     785            wndpars->fsStatus = 0;
     786            wndpars->cbCtlData = 0;
     787            wndpars->cbPresParams = 0;
     788            RestoreOS2TIB();
    783789            return (MRESULT)TRUE;
    784790        }
  • trunk/src/user32/scroll.cpp

    r1091 r1159  
    1 /* $Id: scroll.cpp,v 1.4 1999-09-29 08:27:15 sandervl Exp $ */
     1/* $Id: scroll.cpp,v 1.5 1999-10-07 09:28:01 sandervl Exp $ */
    22/*
    33 * Scrollbar control
     
    15541554
    15551555        if(nBar == SB_HORZ || nBar == SB_BOTH)
    1556             rc = OSLibWinShowScrollBar(window->getOS2FrameWindowHandle(), OSLIB_HSCROLL, fShow);
     1556            rc = OSLibWinShowScrollBar(window->getOS2FrameWindowHandle(),
     1557                                       window->getHorzScrollHandle(),
     1558                                       OSLIB_HSCROLL, fShow);
    15571559
    15581560        if(nBar == SB_VERT || ( rc == TRUE && nBar == SB_BOTH))
    1559             rc = OSLibWinShowScrollBar(window->getOS2FrameWindowHandle(), OSLIB_VSCROLL, fShow);
     1561            rc = OSLibWinShowScrollBar(window->getOS2FrameWindowHandle(),
     1562                                       window->getVertScrollHandle(),
     1563                                       OSLIB_VSCROLL, fShow);
    15601564
    15611565        return rc;
  • trunk/src/user32/win32wbase.cpp

    r1148 r1159  
    1 /* $Id: win32wbase.cpp,v 1.25 1999-10-06 07:56:37 sandervl Exp $ */
     1/* $Id: win32wbase.cpp,v 1.26 1999-10-07 09:28:01 sandervl Exp $ */
    22/*
    33 * Win32 Window Base Class for OS/2
     
    126126  horzScrollInfo     = NULL;
    127127  vertScrollInfo     = NULL;
    128 
     128  hwndHorzScroll     = 0;
     129  hwndVertScroll     = 0;
    129130}
    130131//******************************************************************************
     
    160161        horzScrollInfo = NULL;
    161162  }
     163  //TODO: Destroy windows if they're not associated with our window anymore (showwindow false)?
     164//  hwndHorzScroll
     165//  hwndVertScroll
     166
    162167}
    163168//******************************************************************************
     
    475480#endif
    476481
     482  if (cs->style & WS_HSCROLL)
     483  {
     484        hwndHorzScroll = OSLibWinQueryScrollBarHandle(OS2HwndFrame, OSLIB_HSCROLL);
     485  }
     486
     487  if (cs->style & WS_VSCROLL) {
     488        hwndVertScroll = OSLibWinQueryScrollBarHandle(OS2HwndFrame, OSLIB_VSCROLL);
     489  }
     490
    477491  fakeWinBase.hwndThis     = OS2Hwnd;
    478492  fakeWinBase.pWindowClass = windowClass;
     
    491505        }
    492506  }
    493   else  windowId = (UINT)cs->hMenu;
     507  else
     508  {
     509        setWindowId((DWORD)cs->hMenu);
     510  }
    494511
    495512  //Set icon from class
     
    12581275    case SB_HORZ:
    12591276        if(horzScrollInfo) {
    1260             horzScrollInfo->CurVal = OSLibWinGetScrollPos(OS2HwndFrame, OSLIB_HSCROLL);
     1277            horzScrollInfo->CurVal = OSLibWinGetScrollPos(OS2HwndFrame, hwndHorzScroll);
    12611278            return horzScrollInfo;
    12621279        }
     
    12641281    case SB_VERT:
    12651282        if(vertScrollInfo) {
    1266             vertScrollInfo->CurVal = OSLibWinGetScrollPos(OS2HwndFrame, OSLIB_VSCROLL);
     1283            vertScrollInfo->CurVal = OSLibWinGetScrollPos(OS2HwndFrame, hwndVertScroll);
    12671284            return vertScrollInfo;
    12681285        }
     
    12771294{
    12781295  SCROLLBAR_INFO *infoPtr;
     1296  HWND            hwndScroll;
    12791297  ULONG           scrollType;
    12801298  int             new_flags;
     
    12861304        }
    12871305        infoPtr = horzScrollInfo;
     1306        hwndScroll = hwndHorzScroll;
    12881307        scrollType = OSLIB_HSCROLL;
    12891308        break;
     
    12931312        }
    12941313        infoPtr = vertScrollInfo;
     1314        hwndScroll = hwndVertScroll;
    12951315        scrollType = OSLIB_VSCROLL;
    12961316        break;
     
    13091329        {
    13101330            infoPtr->Page = info->nPage;
    1311             OSLibWinSetScrollPageSize(OS2HwndFrame, scrollType, info->nPage, infoPtr->MaxVal, fRedraw);
     1331            OSLibWinSetScrollPageSize(OS2HwndFrame, hwndScroll, info->nPage, infoPtr->MaxVal, fRedraw);
    13121332        }
    13131333    }
     
    13191339        {
    13201340            infoPtr->CurVal = info->nPos;
    1321             OSLibWinSetScrollPos(OS2HwndFrame, scrollType, info->nPos, fRedraw);
     1341            OSLibWinSetScrollPos(OS2HwndFrame, hwndScroll, info->nPos, fRedraw);
    13221342        }
    13231343    }
     
    13411361                infoPtr->MaxVal = info->nMax;
    13421362
    1343                 OSLibWinSetScrollRange(OS2HwndFrame, scrollType, info->nMin, info->nMax, fRedraw);
     1363                OSLibWinSetScrollRange(OS2HwndFrame, hwndScroll, info->nMin, info->nMax, fRedraw);
    13441364            }
    13451365        }
     
    23812401        case GWL_HWNDPARENT:
    23822402                return SetParent((HWND)value);
    2383 
    23842403        case GWL_ID:
    23852404                oldval = getWindowId();
     
    24602479//******************************************************************************
    24612480//******************************************************************************
     2481void Win32BaseWindow::setWindowId(DWORD id)
     2482{
     2483   windowId = id;
     2484   OSLibSetWindowID(OS2HwndFrame, id);
     2485}
     2486//******************************************************************************
     2487//******************************************************************************
    24622488Win32BaseWindow *Win32BaseWindow::GetWindowFromHandle(HWND hwnd)
    24632489{
  • trunk/src/user32/win32wbase.h

    r1133 r1159  
    1 /* $Id: win32wbase.h,v 1.13 1999-10-04 20:53:46 sandervl Exp $ */
     1/* $Id: win32wbase.h,v 1.14 1999-10-07 09:28:02 sandervl Exp $ */
    22/*
    33 * Win32 Window Base Class for OS/2
     
    114114         void   setWindowProc(WNDPROC newproc)  { win32wndproc = newproc; };
    115115        DWORD   getWindowId()                   { return windowId; };
    116          void   setWindowId(DWORD id)           { windowId = id; };
     116         void   setWindowId(DWORD id);
    117117         ULONG  getWindowHeight()               { return rectClient.bottom - rectClient.top; };
    118118         ULONG  getWindowWidth()                { return rectClient.right - rectClient.left; };
     
    179179 SCROLLBAR_INFO *getScrollInfo(int nBar);
    180180       LONG      setScrollInfo(int nBar, SCROLLINFO *info, int fRedraw);
     181       HWND      getVertScrollHandle()        { return hwndVertScroll; };
     182       HWND      getHorzScrollHandle()        { return hwndHorzScroll; };
    181183
    182184       LRESULT  SendMessageA(ULONG msg, WPARAM wParam, LPARAM lParam);
     
    252254SCROLLBAR_INFO *vertScrollInfo;
    253255SCROLLBAR_INFO *horzScrollInfo;
     256        HWND    hwndHorzScroll; //os/2 handle
     257        HWND    hwndVertScroll; //os/2 handle
    254258
    255259Win32WndClass  *windowClass;
  • trunk/src/user32/win32wmdichild.cpp

    r1093 r1159  
    1 /* $Id: win32wmdichild.cpp,v 1.2 1999-09-29 09:16:32 sandervl Exp $ */
     1/* $Id: win32wmdichild.cpp,v 1.3 1999-10-07 09:28:02 sandervl Exp $ */
    22/*
    33 * Win32 MDI Child Window Class for OS/2
     
    326326    }
    327327
    328     hwnd = ::CreateWindowA(cs->szClass, cs->szTitle, style,
    329                          cs->x, cs->y, cs->cx, cs->cy, client->getWindowHandle(),
    330                          (HMENU)wIDmenu, cs->hOwner, cs );
     328    if(!client->IsUnicode())
     329        hwnd = ::CreateWindowA(cs->szClass, cs->szTitle, style,
     330                               cs->x, cs->y, cs->cx, cs->cy, client->getWindowHandle(),
     331                               (HMENU)wIDmenu, cs->hOwner, cs );
     332    else
     333        hwnd = ::CreateWindowW((LPWSTR)cs->szClass, (LPWSTR)cs->szTitle, style,
     334                               cs->x, cs->y, cs->cx, cs->cy, client->getWindowHandle(),
     335                               (HMENU)wIDmenu, cs->hOwner, cs );
    331336
    332337    /* MDI windows are WS_CHILD so they won't be activated by CreateWindow */
  • trunk/src/user32/window.cpp

    r1063 r1159  
    1 /* $Id: window.cpp,v 1.10 1999-09-26 14:44:58 sandervl Exp $ */
     1/* $Id: window.cpp,v 1.11 1999-10-07 09:28:02 sandervl Exp $ */
    22/*
    33 * Win32 window apis for OS/2
     
    174174    //TODO: According to the docs className can be a 16 bits atom
    175175    //      Wine seems to assume it's a string though...
    176     if(!stricmp(className, MDICLIENTCLASSNAMEA)) {
     176    if(!strcmpi(className, MDICLIENTCLASSNAMEA)) {
    177177        window = (Win32BaseWindow *) new Win32MDIClientWindow(&cs, classAtom, FALSE);
    178178    }
     
    238238    //TODO: According to the docs className can be a 16 bits atom
    239239    //      Wine seems to assume it's a string though...
    240     if(!lstrcmpW(className, (LPWSTR)MDICLIENTCLASSNAMEW)) {
     240    if(!lstrcmpiW(className, (LPWSTR)MDICLIENTCLASSNAMEW)) {
    241241        window = (Win32BaseWindow *) new Win32MDIClientWindow(&cs, classAtom, TRUE);
    242242    }
     
    784784 BOOL rc;
    785785
     786#if 1
    786787    hwnd = Win32BaseWindow::Win32ToOS2Handle(hwnd);
    787788    rc = OSLibWinQueryWindowRect(hwnd, pRect);
    788789    dprintf(("USER32:  GetClientRect of %X returned (%d,%d) (%d,%d)\n", hwnd, pRect->left, pRect->top, pRect->right, pRect->bottom));
    789790    return rc;
     791#else
     792   Win32BaseWindow *window;
     793
     794    window = Win32BaseWindow::GetWindowFromHandle(hwnd);
     795    if(!window) {
     796        dprintf(("GetClientRect, window %x not found", hwnd));
     797        SetLastError(ERROR_INVALID_WINDOW_HANDLE);
     798        return 0;
     799    }
     800    *pRect = *window->getClientRect();
     801    dprintf(("GetClientRect of %X returned (%d,%d) (%d,%d)\n", hwnd, pRect->left, pRect->top, pRect->right, pRect->bottom));
     802    return TRUE;
     803#endif
    790804}
    791805//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.