]> git.saurik.com Git - wxWidgets.git/commitdiff
Use DrawItemSelectionRect on GTK2 and OS X. Also, use white text when drawing focused...
authorKevin Ollivier <kevino@theolliviers.com>
Sun, 19 Nov 2006 07:32:54 +0000 (07:32 +0000)
committerKevin Ollivier <kevino@theolliviers.com>
Sun, 19 Nov 2006 07:32:54 +0000 (07:32 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43509 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/contrib/gizmos/wxCode/src/treelistctrl.cpp

index a483db947a90c55cfedb63e5da3db44ab5e6f4d6..6cded83c615137ae04c201ef5328e6e5dd0cb421 100644 (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);
             }