]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/renderg.cpp
[ 1509599 ] 'Split pickers page in widgets sample' with more icons and rebaking.
[wxWidgets.git] / src / generic / renderg.cpp
index 2c07be9d820ed1c87bf29455df38d3d1d907fd94..138321f6bfb3fbdcb52bd7f825b8bb34dd9e83d0 100644 (file)
     #pragma hdrstop
 #endif
 
+#include "wx/renderer.h"
+
 #ifndef WX_PRECOMP
     #include "wx/string.h"
+    #include "wx/dc.h"
+    #include "wx/settings.h"
+    #include "wx/gdicmn.h"
 #endif //WX_PRECOMP
 
-#include "wx/gdicmn.h"
-#include "wx/dc.h"
-
-#include "wx/settings.h"
 #include "wx/splitter.h"
 #include "wx/dcmirror.h"
 #include "wx/module.h"
-#include "wx/renderer.h"
 
 // ----------------------------------------------------------------------------
 // wxRendererGeneric: our wxRendererNative implementation
@@ -78,10 +78,10 @@ public:
                                const wxRect& rect,
                                int flags = 0);
 
-    virtual void DrawCheckButton(wxWindow *win,
-                                 wxDC& dc,
-                                 const wxRect& rect,
-                                 int flags = 0);
+    virtual void DrawCheckBox(wxWindow *win,
+                              wxDC& dc,
+                              const wxRect& rect,
+                              int flags = 0);
 
     virtual void DrawPushButton(wxWindow *win,
                                 wxDC& dc,
@@ -92,7 +92,7 @@ public:
                                        wxDC& dc,
                                        const wxRect& rect,
                                        int flags = 0);
-                                       
+
     virtual wxSplitterRenderParams GetSplitterParams(const wxWindow *win);
 
     virtual wxRendererVersion GetVersion() const
@@ -230,9 +230,10 @@ wxRendererGeneric::DrawTreeItemButton(wxWindow * WXUNUSED(win),
                                       const wxRect& rect,
                                       int flags)
 {
-    // white background
-    dc.SetPen(*wxGREY_PEN);
-    dc.SetBrush(*wxWHITE_BRUSH);
+    // store settings
+    wxDCPenChanger penChanger(dc, *wxGREY_PEN);
+    wxDCBrushChanger brushChanger(dc, *wxWHITE_BRUSH);
+
     dc.DrawRectangle(rect);
 
     // black lines
@@ -401,11 +402,11 @@ wxRendererGeneric::DrawDropArrow(wxWindow *win,
     dc.DrawPolygon(WXSIZEOF(pt), pt, rect.x, rect.y);
 }
 
-void 
-wxRendererGeneric::DrawCheckButton(wxWindow *WXUNUSED(win),
-                                   wxDC& dc,
-                                   const wxRect& rect,
-                                   int flags)
+void
+wxRendererGeneric::DrawCheckBox(wxWindow *WXUNUSED(win),
+                                wxDC& dc,
+                                const wxRect& rect,
+                                int flags)
 {
     dc.SetPen(*(flags & wxCONTROL_DISABLED ? wxGREY_PEN : wxBLACK_PEN));
     dc.SetBrush( *wxTRANSPARENT_BRUSH );
@@ -433,49 +434,33 @@ wxRendererGeneric::DrawPushButton(wxWindow *win,
     dc.DrawRectangle(rect);
 }
 
-void 
-wxRendererGeneric::DrawItemSelectionRect(wxWindow *win,
-                                       wxDC& dc,
-                                       const wxRect& rect,
-                                       int flags )
+void
+wxRendererGeneric::DrawItemSelectionRect(wxWindow * WXUNUSED(win),
+                                         wxDC& dc,
+                                         const wxRect& rect,
+                                         int flags)
 {
-    if (flags & wxCONTROL_SELECTED)
+    wxBrush brush;
+    if ( flags & wxCONTROL_SELECTED )
     {
-        if (flags & wxCONTROL_FOCUSED)
+        if ( flags & wxCONTROL_FOCUSED )
         {
-            wxBrush brush( 
-                            wxSystemSettings::GetColour
-                            (
-                                wxSYS_COLOUR_HIGHLIGHT
-                            ),
-                            wxSOLID
-                        );
-            dc.SetBrush( brush );
+            brush = wxBrush(wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT));
         }
-        else
+        else // !focused
         {
-            wxBrush brush( 
-                            wxSystemSettings::GetColour
-                            (
-                                wxSYS_COLOUR_BTNSHADOW
-                            ),
-                            wxSOLID
-                        );
-            dc.SetBrush( brush );
+            brush = wxBrush(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNSHADOW));
         }
     }
-    else
+    else // !selected
     {
-        dc.SetBrush( *wxTRANSPARENT_BRUSH );
+        brush = *wxTRANSPARENT_BRUSH;
     }
-    
-    
-    if (flags & wxCONTROL_CURRENT)
-        dc.SetPen( *wxBLACK_PEN );
-    else
-        dc.SetPen( *wxTRANSPARENT_PEN );
-        
-    dc.DrawRectangle( rect );    
+
+    dc.SetBrush(brush);
+    dc.SetPen(flags & wxCONTROL_CURRENT ? *wxBLACK_PEN : *wxTRANSPARENT_PEN);
+
+    dc.DrawRectangle( rect );
 }