Ignore:
Timestamp:
Nov 10, 1999, 6:11:31 PM (26 years ago)
Author:
cbratschi
Message:

ShowScrollBar fix

File:
1 edited

Legend:

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

    r1667 r1693  
    1 /* $Id: pmframe.cpp,v 1.21 1999-11-09 17:07:22 cbratschi Exp $ */
     1/* $Id: pmframe.cpp,v 1.22 1999-11-10 17:11:29 cbratschi Exp $ */
    22/*
    33 * Win32 Frame Managment Code for OS/2
     
    591591  return WinQuerySysValue(HWND_DESKTOP,SV_CXSIZEBORDER);
    592592}
     593
     594BOOL FrameCreateScrollBars(Win32BaseWindow *win32wnd,BOOL createHorz,BOOL createVert,BOOL updateFrame,DWORD *flags)
     595{
     596  HWND hwndHScroll = 0,hwndVScroll = 0;
     597  ULONG updateFlags = 0;
     598
     599  if (createHorz)
     600  {
     601    hwndHScroll = WinCreateWindow(win32wnd->getOS2FrameWindowHandle(),WC_SCROLLBAR,"",WS_VISIBLE | WS_PARENTCLIP | WS_SYNCPAINT | SBS_HORZ,0,0,0,0,win32wnd->getOS2FrameWindowHandle(),HWND_TOP,FID_HORZSCROLL,NULL,NULL);
     602    if (hwndHScroll) win32wnd->setHorzScrollHandle(hwndHScroll);
     603    else return FALSE;
     604    updateFlags = FCF_HORZSCROLL;
     605  }
     606
     607  if (createVert)
     608  {
     609    hwndVScroll = WinCreateWindow(win32wnd->getOS2FrameWindowHandle(),WC_SCROLLBAR,"",WS_VISIBLE | WS_PARENTCLIP | WS_SYNCPAINT | SBS_VERT,0,0,0,0,win32wnd->getOS2FrameWindowHandle(),HWND_TOP,FID_VERTSCROLL,NULL,NULL);
     610    if (hwndVScroll) win32wnd->setVertScrollHandle(hwndVScroll); else
     611    {
     612      if (hwndHScroll) WinDestroyWindow(hwndHScroll);
     613
     614      return FALSE;
     615    }
     616    updateFlags |= FCF_VERTSCROLL;
     617  }
     618
     619  win32wnd->subclassScrollBars(hwndHScroll,hwndVScroll);
     620
     621  if (updateFrame && updateFlags) WinSendMsg(win32wnd->getOS2FrameWindowHandle(),WM_UPDATEFRAME,(MPARAM)0,(MPARAM)0);
     622  if (flags) *flags = updateFlags;
     623
     624  return TRUE;
     625}
     626
     627VOID FrameGetScrollBarHandles(Win32BaseWindow *win32wnd,BOOL getHorz,BOOL getVert)
     628{
     629  if (getHorz) win32wnd->setHorzScrollHandle(WinWindowFromID(win32wnd->getOS2FrameWindowHandle(),FID_HORZSCROLL));
     630  if (getVert) win32wnd->setVertScrollHandle(WinWindowFromID(win32wnd->getOS2FrameWindowHandle(),FID_VERTSCROLL));
     631}
     632
     633BOOL FrameShowScrollBars(Win32BaseWindow *win32wnd,BOOL changeHorz,BOOL changeVert,BOOL fShow,BOOL updateFrame,DWORD *flags)
     634{
     635  HWND hwndObj = WinQueryObjectWindow(HWND_DESKTOP);
     636  ULONG updateFlags = 0;
     637
     638  if (changeHorz)
     639  {
     640    HWND hwndCurPar = WinQueryWindow(win32wnd->getHorzScrollHandle(),QW_PARENT);
     641
     642    if ((fShow && hwndCurPar == hwndObj) || (!fShow && hwndCurPar != hwndObj))
     643    {
     644      WinSetParent(win32wnd->getHorzScrollHandle(),fShow ? win32wnd->getOS2FrameWindowHandle():HWND_OBJECT,FALSE);
     645      updateFlags = FCF_HORZSCROLL;
     646    }
     647  }
     648
     649  if (changeVert)
     650  {
     651    HWND hwndCurPar = WinQueryWindow(win32wnd->getVertScrollHandle(),QW_PARENT);
     652
     653    if ((fShow && hwndCurPar == hwndObj) || (!fShow && hwndCurPar != hwndObj))
     654    {
     655      WinSetParent(win32wnd->getVertScrollHandle(),fShow ? win32wnd->getOS2FrameWindowHandle():HWND_OBJECT,FALSE);
     656      updateFlags |= FCF_VERTSCROLL;
     657    }
     658  }
     659
     660  if (updateFrame && updateFlags) WinSendMsg(win32wnd->getOS2FrameWindowHandle(),WM_UPDATEFRAME,(MPARAM)updateFlags,(MPARAM)0);
     661  if (flags) *flags = updateFlags;
     662
     663  return TRUE;
     664}
     665
     666VOID FrameUpdateFrame(Win32BaseWindow *win32wnd,DWORD flags)
     667{
     668  WinSendMsg(win32wnd->getOS2FrameWindowHandle(),WM_UPDATEFRAME,(MPARAM)flags,(MPARAM)0);
     669}
     670
Note: See TracChangeset for help on using the changeset viewer.