From: Vadim Zeitlin Date: Tue, 8 Jul 2003 23:14:02 +0000 (+0000) Subject: added support for wxALWAYS_SHOW_SB (finally closes patch 410865 -- first still opened...) X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/a647d42abcf7461dbd3abb88df3262e4bb495f73?ds=inline added support for wxALWAYS_SHOW_SB (finally closes patch 410865 -- first still opened...) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21787 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/changes.txt b/docs/changes.txt index d9a560b63b..859cdd49e1 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -140,30 +140,24 @@ wxMSW: - wxCaret::SetSize() doesn't hide the caret any longer as it used to - wxCheckListBox::Check() doesn't send CHECKLISTBOX_TOGGLE event any more - fixed bug with wxTR_EDIT_LABELS not working with wxTR_MULTIPLE -- fixes for compilation with OpenWatcom compiler +- fixes for compilation with OpenWatcom and DigitalMars compilers - fixed wxStaticText best size calculation (was wrong by '&' width) - fixed calling wxFrame::Maximize(FALSE) before the window is shown -= added wxNotebook::HitTest() (Otto Wyss) -- all libraries built with makefile.g95 have a _min or _cyg suffix - (for MinGW and Cygwin) -- When using DLL, wxLocalFSHandler was not being exported - added WXEXPORTDLL -- A wxEvtHandler object was not removed from wxPendingEvents on deletion. - wxPendingEventsLocker was being deleted in App before all wxEvtHandler - objects have been destroyed resulting in stale handler/lock - ptrs; fixed +- added wxNotebook::HitTest() (Otto Wyss) +- libraries built with makefile.g95 have a _min or _cyg suffix (MinGW/Cygwin) +- when using DLL, wxLocalFSHandler was not being exported +- fixed problem with wxEvtHandler object not removed from wxPendingEvents - Windows XP manifest is now included in wx.rc; it is no longer neccessary to ship .exe.manifest file with applications to support XP themes - wxLocale::Init no longer reports error if trying to set Unicode-only locale or if user's default locale is Unicode-only -- Improved border handling so it no longer shows a thin and - sunken border under XP +- improved border handling under Windows XP - partial fix for wxNotebook pages looking bad under XP: wxUSE_UXTHEME enables XP theme engine code, and wxUSE_UXTHEME_AUTO tells wxWindows to use the theme tab colour for control backgrounds. - Proper XP theme support is planned for 2.6 -- disable wxNB_RIGHT, wxNB_LEFT, wxNB_BOTTOM notebook styles - if the version of CommCtl doesn't support it (XP) +- disable wxNB_RIGHT, wxNB_LEFT, wxNB_BOTTOM notebook styles under Windows XP - fixed release mode build with VC 7.x (Martin Ecker) +- added support for wxALWAYS_SHOW_SB style wxMotif: diff --git a/docs/latex/wx/window.tex b/docs/latex/wx/window.tex index 5ed98dce2b..666ffa1dcd 100644 --- a/docs/latex/wx/window.tex +++ b/docs/latex/wx/window.tex @@ -35,8 +35,6 @@ for this style. } \twocolitem{\windowstyle{wxSTATIC\_BORDER}}{Displays a border suitable for a static control. Windows only. } \twocolitem{\windowstyle{wxTRANSPARENT\_WINDOW}}{The window is transparent, that is, it will not receive paint events. Windows only.} -\twocolitem{\windowstyle{wxNO\_3D}}{Prevents the children of this window taking on 3D styles, even though -the application-wide policy is for 3D controls. Windows only.} \twocolitem{\windowstyle{wxTAB\_TRAVERSAL}}{Use this to enable tab traversal for non-dialog windows.} \twocolitem{\windowstyle{wxWANTS\_CHARS}}{Use this to indicate that the window wants to get all char events - even for keys like TAB or ENTER which are @@ -48,6 +46,11 @@ new window area manually if you use this style. Currently only has an effect for Windows.} \twocolitem{\windowstyle{wxVSCROLL}}{Use this style to enable a vertical scrollbar.} \twocolitem{\windowstyle{wxHSCROLL}}{Use this style to enable a horizontal scrollbar.} +\twocolitem{\windowstyle{wxALWAYS\_SHOW\_SB}{If a window has scrollbars, +disable them instead of hiding them when they are not needed (i.e. when the +size of the window is big enough to not require the scrollbars to navigate it). +This style is currently only implemented for wxMSW and wxUniversal and does +nothing on the other platforms.} \twocolitem{\windowstyle{wxCLIP\_CHILDREN}}{Use this style to eliminate flicker caused by the background being repainted, then children being painted over them. Windows only.} \end{twocollist} diff --git a/src/msw/window.cpp b/src/msw/window.cpp index 5341aa8fd5..57ebce9a76 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -788,6 +788,11 @@ void wxWindowMSW::SetScrollPos(int orient, int pos, bool refresh) info.nMin = 0; info.nPos = pos; info.fMask = SIF_POS; + if ( HasFlag(wxALWAYS_SHOW_SB) ) + { + // disable scrollbar instead of removing it then + info.fMask |= SIF_DISABLENOSCROLL; + } ::SetScrollInfo(hWnd, orient == wxHORIZONTAL ? SB_HORZ : SB_VERT, &info, refresh); @@ -806,6 +811,11 @@ void wxWindowMSW::SetScrollbar(int orient, info.nMax = range - 1; // as both nMax and nMax are inclusive info.nPos = pos; info.fMask = SIF_RANGE | SIF_PAGE | SIF_POS; + if ( HasFlag(wxALWAYS_SHOW_SB) ) + { + // disable scrollbar instead of removing it then + info.fMask |= SIF_DISABLENOSCROLL; + } HWND hWnd = GetHwnd(); if ( hWnd )