From: Włodzimierz Skiba Date: Tue, 23 May 2006 14:11:55 +0000 (+0000) Subject: Improved wxDCPen/BrushChangers. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/0164f8ebfd7bbf1b0a96cb67641cd607c022ae9f Improved wxDCPen/BrushChangers. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39289 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/dc.h b/include/wx/dc.h index e824590966..84cd83b9b4 100644 --- a/include/wx/dc.h +++ b/include/wx/dc.h @@ -876,7 +876,10 @@ private: class WXDLLEXPORT wxDCPenChanger { public: - wxDCPenChanger(wxDC& dc) : m_dc(dc), m_penOld() { } + wxDCPenChanger(wxDC& dc, const wxPen& pen) : m_dc(dc), m_penOld(dc.GetPen()) + { + m_dc.SetPen(pen); + } ~wxDCPenChanger() { @@ -884,13 +887,6 @@ public: m_dc.SetPen(m_penOld); } - void Set(const wxPen& pen) - { - if ( !m_penOld.Ok() ) - m_penOld = m_dc.GetPen(); - m_dc.SetPen(pen); - } - private: wxDC& m_dc; @@ -907,7 +903,10 @@ private: class WXDLLEXPORT wxDCBrushChanger { public: - wxDCBrushChanger(wxDC& dc) : m_dc(dc), m_brushOld() { } + wxDCBrushChanger(wxDC& dc, const wxBrush& brush) : m_dc(dc), m_brushOld(dc.GetBrush()) + { + m_dc.SetBrush(brush); + } ~wxDCBrushChanger() { @@ -915,13 +914,6 @@ public: m_dc.SetBrush(m_brushOld); } - void Set(const wxBrush& brush) - { - if ( !m_brushOld.Ok() ) - m_brushOld = m_dc.GetBrush(); - m_dc.SetBrush(brush); - } - private: wxDC& m_dc; diff --git a/src/generic/renderg.cpp b/src/generic/renderg.cpp index b1b8fc76c4..0a4a4391d5 100644 --- a/src/generic/renderg.cpp +++ b/src/generic/renderg.cpp @@ -232,12 +232,8 @@ wxRendererGeneric::DrawTreeItemButton(wxWindow * WXUNUSED(win), int flags) { // store settings - wxDCPenChanger penChanger(dc); - wxDCBrushChanger brushChanger(dc); - - // white background - penChanger.Set(*wxGREY_PEN); - brushChanger.Set(*wxWHITE_BRUSH); + wxDCPenChanger penChanger(dc, *wxGREY_PEN); + wxDCBrushChanger brushChanger(dc, *wxWHITE_BRUSH); dc.DrawRectangle(rect);