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
This commit is contained in:
Vadim Zeitlin 2003-07-08 23:14:02 +00:00
parent 35821d8fe0
commit a647d42abc
3 changed files with 23 additions and 16 deletions

View File

@ -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:

View File

@ -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}

View File

@ -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 )