]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dc.h
moved wxNotebook::HitTest() to the base book control class; implemented it for wxList...
[wxWidgets.git] / include / wx / dc.h
index af5ebf450131ac6b574dae56652d8d06c00cc7ef..84cd83b9b40203c05e52861784819e8f089bb1d9 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        dc.h
+// Name:        wx/dc.h
 // Purpose:     wxDC class
 // Author:      Vadim Zeitlin
 // Modified by:
@@ -161,20 +161,20 @@ public:
     // fill the area specified by rect with a radial gradient, starting from
     // initialColour in the centre of the cercle and fading to destColour.
     void GradientFillConcentric(const wxRect& rect,
-                                const wxColour& initialColour, 
+                                const wxColour& initialColour,
                                 const wxColour& destColour)
         { GradientFillConcentric(rect, initialColour, destColour,
                                  wxPoint(rect.GetWidth() / 2,
                                          rect.GetHeight() / 2)); }
 
     void GradientFillConcentric(const wxRect& rect,
-                                const wxColour& initialColour, 
+                                const wxColour& initialColour,
                                 const wxColour& destColour,
                                 const wxPoint& circleCenter);
 
     // fill the area specified by rect with a linear gradient
     void GradientFillLinear(const wxRect& rect,
-                            const wxColour& initialColour, 
+                            const wxColour& initialColour,
                             const wxColour& destColour,
                             wxDirection nDirection = wxEAST)
         { DoGradientFillLinear(rect, initialColour, destColour, nDirection); }
@@ -659,7 +659,7 @@ protected:
                                       const wxColour& initialColour,
                                       const wxColour& destColour,
                                       wxDirection nDirection = wxEAST);
-    
+
     virtual bool DoGetPixel(wxCoord x, wxCoord y, wxColour *col) const = 0;
 
     virtual void DoDrawPoint(wxCoord x, wxCoord y) = 0;
@@ -868,6 +868,60 @@ private:
     DECLARE_NO_COPY_CLASS(wxDCTextColourChanger)
 };
 
+// ----------------------------------------------------------------------------
+// helper class: you can use it to temporarily change the DC pen and
+// restore it automatically when the object goes out of scope
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxDCPenChanger
+{
+public:
+    wxDCPenChanger(wxDC& dc, const wxPen& pen) : m_dc(dc), m_penOld(dc.GetPen())
+    {
+        m_dc.SetPen(pen);
+    }
+
+    ~wxDCPenChanger()
+    {
+        if ( m_penOld.Ok() )
+            m_dc.SetPen(m_penOld);
+    }
+
+private:
+    wxDC& m_dc;
+
+    wxPen m_penOld;
+
+    DECLARE_NO_COPY_CLASS(wxDCPenChanger)
+};
+
+// ----------------------------------------------------------------------------
+// helper class: you can use it to temporarily change the DC brush and
+// restore it automatically when the object goes out of scope
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxDCBrushChanger
+{
+public:
+    wxDCBrushChanger(wxDC& dc, const wxBrush& brush) : m_dc(dc), m_brushOld(dc.GetBrush())
+    {
+        m_dc.SetBrush(brush);
+    }
+
+    ~wxDCBrushChanger()
+    {
+        if ( m_brushOld.Ok() )
+            m_dc.SetBrush(m_brushOld);
+    }
+
+private:
+    wxDC& m_dc;
+
+    wxBrush m_brushOld;
+
+    DECLARE_NO_COPY_CLASS(wxDCBrushChanger)
+};
+
 // ----------------------------------------------------------------------------
 // another small helper class: sets the clipping region in its ctor and
 // destroys it in the dtor