wxMacWindowClipper( const wxWindow* win ) ;
~wxMacWindowClipper() ;
private:
+ GrafPtr m_newPort ;
RgnHandle m_formerClip ;
RgnHandle m_newClip ;
} ;
+class WXDLLEXPORT wxMacWindowStateSaver : public wxMacWindowClipper
+{
+ DECLARE_NO_COPY_CLASS(wxMacWindowStateSaver)
+
+public:
+ wxMacWindowStateSaver( const wxWindow* win ) ;
+ ~wxMacWindowStateSaver() ;
+private:
+ GrafPtr m_newPort ;
+ ThemeDrawingState m_themeDrawingState ;
+} ;
+
/*
class wxMacDrawingHelper
{
wxMacWindowClipper::wxMacWindowClipper( const wxWindow* win ) :
wxMacPortSaver( (GrafPtr) GetWindowPort((WindowRef) win->MacGetTopLevelWindowRef()) )
{
+ m_newPort =(GrafPtr) GetWindowPort((WindowRef) win->MacGetTopLevelWindowRef()) ;
m_formerClip = NewRgn() ;
m_newClip = NewRgn() ;
GetClip( m_formerClip ) ;
wxMacWindowClipper::~wxMacWindowClipper()
{
+ SetPort( m_newPort ) ;
SetClip( m_formerClip ) ;
DisposeRgn( m_newClip ) ;
DisposeRgn( m_formerClip ) ;
}
+wxMacWindowStateSaver::wxMacWindowStateSaver( const wxWindow* win ) :
+ wxMacWindowClipper( win )
+{
+ // the port is already set at this point
+ m_newPort =(GrafPtr) GetWindowPort((WindowRef) win->MacGetTopLevelWindowRef()) ;
+ GetThemeDrawingState( &m_themeDrawingState ) ;
+}
+
+wxMacWindowStateSaver::~wxMacWindowStateSaver()
+{
+ SetPort( m_newPort ) ;
+ SetThemeDrawingState( m_themeDrawingState , true ) ;
+}
+
//-----------------------------------------------------------------------------
// Local functions
//-----------------------------------------------------------------------------