Ignore:
Timestamp:
Apr 15, 2001, 7:05:29 PM (24 years ago)
Author:
sandervl
Message:

SetWindowLong fix for GWL_STYLE & childchildren/siblings

File:
1 edited

Legend:

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

    r5482 r5512  
    1 /* $Id: oslibwin.cpp,v 1.90 2001-04-05 09:31:27 sandervl Exp $ */
     1/* $Id: oslibwin.cpp,v 1.91 2001-04-15 17:05:29 sandervl Exp $ */
    22/*
    33 * Window API wrappers for OS/2
     
    9393}
    9494//******************************************************************************
     95//Note: Also check OSLibSetWindowStyle when changing this!!
    9596//******************************************************************************
    9697BOOL OSLibWinConvertStyle(ULONG dwStyle, ULONG dwExStyle, ULONG *OSWinStyle)
     
    99100
    100101  /* Window styles */
     102#if 0
     103  //Done explicitely in CreateWindowExA
    101104  if(dwStyle & WS_MINIMIZE_W)
    102105        *OSWinStyle |= WS_MINIMIZED;
    103 //Done explicitely in CreateWindowExA
    104 #if 0
    105106  if(dwStyle & WS_VISIBLE_W)
    106107        *OSWinStyle |= WS_VISIBLE;
     
    112113  if(dwStyle & WS_CLIPCHILDREN_W)
    113114        *OSWinStyle |= WS_CLIPCHILDREN;
     115#if 0
    114116  if(dwStyle & WS_MAXIMIZE_W)
    115117        *OSWinStyle |= WS_MAXIMIZED;
     
    118120  if(dwStyle & WS_TABSTOP_W)
    119121        *OSWinStyle |= WS_TABSTOP;
     122#endif
    120123
    121124  return TRUE;
     
    713716//******************************************************************************
    714717//******************************************************************************
    715 void OSLibSetWindowStyle(HWND hwnd, ULONG dwStyle, ULONG dwExStyle, BOOL saveBits)
    716 {
    717   ULONG dwWinStyle;
    718 
    719   OSLibWinConvertStyle(dwStyle, dwExStyle, &dwWinStyle);
    720 
    721   dwWinStyle = dwWinStyle & ~(WS_TABSTOP | WS_GROUP | WS_CLIPCHILDREN);
    722   if(saveBits) dwWinStyle |= WS_SAVEBITS;
    723   if(dwStyle & WS_VISIBLE_W)
    724         dwWinStyle |= WS_VISIBLE;
    725 
    726   WinSetWindowULong(hwnd, QWL_STYLE,
    727                     (WinQueryWindowULong(hwnd, QWL_STYLE) & ~0xffff0000) |
    728                      dwWinStyle);
     718void OSLibSetWindowStyle(HWND hwnd, ULONG dwStyle, ULONG dwExStyle)
     719{
     720  ULONG dwWinStyle = WinQueryWindowULong(hwnd, QWL_STYLE);
     721  ULONG dwOldWinStyle = dwWinStyle;
     722
     723  if(dwStyle & WS_DISABLED_W) {
     724        dwWinStyle |= WS_DISABLED;
     725  }
     726  else  dwWinStyle &= ~WS_DISABLED;
     727
     728  if(dwStyle & WS_CLIPSIBLINGS_W) {
     729        dwWinStyle |= WS_CLIPSIBLINGS;
     730  }
     731  else  dwWinStyle &= ~WS_CLIPSIBLINGS;
     732
     733  if(dwStyle & WS_CLIPCHILDREN_W) {
     734        dwWinStyle |= WS_CLIPCHILDREN;
     735  }
     736  else  dwWinStyle &= ~WS_CLIPCHILDREN;
     737
     738  if(dwWinStyle != dwOldWinStyle) {
     739      WinSetWindowULong(hwnd, QWL_STYLE, dwWinStyle);
     740  }
    729741}
    730742//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.