Improve appearance for themes that don't allow background colour change

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33845 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart 2005-04-23 13:22:30 +00:00
parent a44f14cf0c
commit 602f0c99b5

View File

@ -2255,6 +2255,7 @@ void wxGenericTreeCtrl::PaintItem(wxGenericTreeItem *item, wxDC& dc)
}
int total_h = GetLineHeight(item);
bool hasCustomBackground = false;
if ( item->IsSelected() )
{
@ -2277,7 +2278,10 @@ void wxGenericTreeCtrl::PaintItem(wxGenericTreeItem *item, wxDC& dc)
{
wxColour colBg;
if ( attr && attr->HasBackgroundColour() )
{
hasCustomBackground = true;
colBg = attr->GetBackgroundColour();
}
else
colBg = m_backgroundColour;
dc.SetBrush(wxBrush(colBg, wxSOLID));
@ -2303,7 +2307,10 @@ void wxGenericTreeCtrl::PaintItem(wxGenericTreeItem *item, wxDC& dc)
dc.DrawRectangle( item->GetX() + image_w - 2, item->GetY()+offset,
item->GetWidth() - image_w + 2, total_h-offset );
}
else
// On GTK+ 2, drawing a 'normal' background is wrong for themes that
// don't allow backgrounds to be customized. Not drawing the background,
// except for custom item backgrounds, works for both kinds of theme.
else if (hasCustomBackground)
{
dc.DrawRectangle( item->GetX()-2, item->GetY()+offset,
item->GetWidth()+2, total_h-offset );