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:
Vadim Zeitlin
2005-06-09 20:18:29 +00:00
parent 9f7e1cff95
commit f6becba596
2 changed files with 9 additions and 19 deletions

View File

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

View File

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