Use DrawItemSelectionRect on GTK2 and OS X. Also, use white text when drawing focused under Mac.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43509 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Kevin Ollivier
2006-11-19 07:32:54 +00:00
parent 8bc0c17afc
commit dbace455c0

View File

@@ -3021,24 +3021,34 @@ void wxTreeListMainWindow::PaintItem (wxTreeListItem *item, wxDC& dc) {
#endif // !__WXMAC__
dc.SetTextForeground (colTextHilight);
}else if (item->IsSelected()) {
#if defined(__WXGTK2__) || defined(__WXMAC__)
int flags = wxCONTROL_SELECTED;
if (m_hasFocus)
{
flags |= wxCONTROL_FOCUSED;
#ifdef __WXMAC__
dc.SetTextForeground( *wxWHITE );
#endif
}
wxRendererNative::GetDefault().DrawItemSelectionRect( m_owner, dc, wxRect( 0, item->GetY() + off_h, total_w, total_h - off_h ), flags);
#else
if (!m_isDragging && m_hasFocus) {
dc.SetBrush (*m_hilightBrush);
#ifndef __WXMAC__ // don't draw rect outline if we already have the background color
dc.SetPen (*wxBLACK_PEN);
#endif // !__WXMAC__
}else{
dc.SetBrush (*m_hilightUnfocusedBrush);
#ifndef __WXMAC__ // don't draw rect outline if we already have the background color
dc.SetPen (*wxTRANSPARENT_PEN);
#endif // !__WXMAC__
}
dc.SetTextForeground (colTextHilight);
#endif // defined(__WXGTK2__) || defined(__WXMAC__)
}else if (item == m_curItem) {
dc.SetPen (m_hasFocus? *wxBLACK_PEN: *wxTRANSPARENT_PEN);
}else{
dc.SetTextForeground (colText);
}
#if !defined(__WXGTK2__) && !defined(__WXMAC__)
dc.DrawRectangle (0, item->GetY() + off_h, total_w, total_h - off_h);
#endif
}else{
dc.SetTextForeground (colText);
}
@@ -3099,24 +3109,34 @@ void wxTreeListMainWindow::PaintItem (wxTreeListItem *item, wxDC& dc) {
#endif // !__WXMAC__
dc.SetTextForeground (colTextHilight);
}else if (item->IsSelected()) {
#if defined(__WXGTK2__) || defined(__WXMAC__)
int flags = wxCONTROL_SELECTED;
if (m_hasFocus)
{
flags |= wxCONTROL_FOCUSED;
#ifdef __WXMAC__
dc.SetTextForeground( *wxWHITE );
#endif
}
wxRendererNative::GetDefault().DrawItemSelectionRect( m_owner, dc, wxRect( 0, item->GetY() + off_h, total_w, total_h - off_h ), flags);
#else
if (!m_isDragging && m_hasFocus) {
dc.SetBrush (*m_hilightBrush);
#ifndef __WXMAC__ // don't draw rect outline if we already have the background color
dc.SetPen (*wxBLACK_PEN);
#endif // !__WXMAC__
}else{
dc.SetBrush (*m_hilightUnfocusedBrush);
#ifndef __WXMAC__ // don't draw rect outline if we already have the background color
dc.SetPen (*wxTRANSPARENT_PEN);
#endif // !__WXMAC__
dc.SetPen (*wxTRANSPARENT_PEN);
}
dc.SetTextForeground (colTextHilight);
#endif // defined(__WXGTK2__) || defined(__WXMAC__)
}else if (item == m_curItem) {
dc.SetPen (m_hasFocus? *wxBLACK_PEN: *wxTRANSPARENT_PEN);
}else{
dc.SetTextForeground (colText);
}
#if !defined(__WXGTK2__) && !defined(__WXMAC__)
dc.DrawRectangle (text_x, item->GetY() + off_h, text_w, total_h - off_h);
#endif
}else{
dc.SetTextForeground (colText);
}