always set flat toolbar style, even under XP with themes: this is necessary or separators aren't shown at all
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34618 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -57,6 +57,7 @@ wxMSW:
|
||||
- Fixed ownerdrawn multiline buttons.
|
||||
- wxCheckListBox item background fixed.
|
||||
- Fixed some wxRegKey bugs.
|
||||
- Separators are now correctly shown in the toolbars under Windows XP
|
||||
|
||||
wxWinCE:
|
||||
|
||||
|
@@ -242,31 +242,20 @@ bool wxToolBar::Create(wxWindow *parent,
|
||||
SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE));
|
||||
SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
|
||||
|
||||
// workaround for flat toolbar on Windows XP classic style
|
||||
// workaround for flat toolbar on Windows XP classic style: we have to set
|
||||
// the style after creating the control, doing it at creation time doesn't
|
||||
// work
|
||||
#if wxUSE_UXTHEME
|
||||
if ( style & wxTB_FLAT )
|
||||
{
|
||||
// Testing for an active theme appears to be unnecessary (see comments in patch 1204217).
|
||||
// Disabling the test brings back separator lines.
|
||||
// However, the separators can look ugly and distracting, especially between controls,
|
||||
// so I'm restoring the test and removing the separators again - JACS
|
||||
#if 1
|
||||
wxUxThemeEngine *p = wxUxThemeEngine::Get();
|
||||
if ( !p || !p->IsThemeActive() )
|
||||
#endif
|
||||
LRESULT style = ::SendMessage(GetHwnd(), TB_GETSTYLE, 0, 0L);
|
||||
|
||||
if ( !(style & TBSTYLE_FLAT) )
|
||||
{
|
||||
DWORD dwToolbarStyle;
|
||||
|
||||
dwToolbarStyle = (DWORD)::SendMessage(GetHwnd(), TB_GETSTYLE, 0, 0L );
|
||||
|
||||
if ((dwToolbarStyle & TBSTYLE_FLAT) == 0)
|
||||
{
|
||||
dwToolbarStyle |= TBSTYLE_FLAT;
|
||||
::SendMessage(GetHwnd(), TB_SETSTYLE, 0, (LPARAM)dwToolbarStyle );
|
||||
}
|
||||
::SendMessage(GetHwnd(), TB_SETSTYLE, 0, style | TBSTYLE_FLAT);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif // wxUSE_UXTHEME
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user