]> git.saurik.com Git - wxWidgets.git/commitdiff
support for freeze and thaw under cocoa
authorStefan Csomor <csomor@advancedconcepts.ch>
Thu, 8 Nov 2012 15:46:23 +0000 (15:46 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Thu, 8 Nov 2012 15:46:23 +0000 (15:46 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72924 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/osx/cocoa/private.h
include/wx/osx/core/private.h
src/osx/carbon/window.cpp
src/osx/cocoa/window.mm
src/osx/window_osx.cpp

index d24e39a1edf15276e7cd3c2786a458df3f7587d4..b8e0f19ddc28784cdd1ccfd4e124a58bba4f7b1b 100644 (file)
@@ -89,6 +89,8 @@ public :
     virtual void        SetNeedsDisplay( const wxRect* where = NULL );
     virtual bool        GetNeedsDisplay() const;
 
     virtual void        SetNeedsDisplay( const wxRect* where = NULL );
     virtual bool        GetNeedsDisplay() const;
 
+    virtual void        SetDrawingEnabled(bool enabled);
+
     virtual bool        CanFocus() const;
     // return true if successful
     virtual bool        SetFocus();
     virtual bool        CanFocus() const;
     // return true if successful
     virtual bool        SetFocus();
index 9961aaab05fa62d52c8a6ec5fe411e3d0c3241f3..517ddf61e620ae495852be4dd972272dd37efb7e 100644 (file)
@@ -282,6 +282,8 @@ public :
 
     virtual bool        NeedsFrame() const;
     virtual void        SetNeedsFrame( bool needs );
 
     virtual bool        NeedsFrame() const;
     virtual void        SetNeedsFrame( bool needs );
+    
+    virtual void        SetDrawingEnabled(bool enabled);
 
     virtual bool        CanFocus() const = 0;
     // return true if successful
 
     virtual bool        CanFocus() const = 0;
     // return true if successful
index 2b9bb62a73f49107d68533aa80e3400c2c3072c2..94c95ef5cf40b204c58166b9259d71da3d633f7e 100644 (file)
@@ -1404,7 +1404,15 @@ void wxMacControl::Enable( bool enable )
 
 void wxMacControl::SetDrawingEnabled( bool enable )
 {
 
 void wxMacControl::SetDrawingEnabled( bool enable )
 {
-    HIViewSetDrawingEnabled( m_controlRef , enable );
+    if ( enable )
+    {
+        HIViewSetDrawingEnabled( m_controlRef , true );
+        HIViewSetNeedsDisplay( m_controlRef, true);
+    }
+    else
+    {
+        HIViewSetDrawingEnabled( m_controlRef , false );
+    }
 }
 
 void wxMacControl::GetRectInWindowCoords( Rect *r )
 }
 
 void wxMacControl::GetRectInWindowCoords( Rect *r )
index 7b30bf644f5702e45cdef6a60f61f795b2045ba8..3cf01f4de0a0bd19f7adfcb418db1bd9610167bd 100644 (file)
@@ -2586,6 +2586,18 @@ void wxWidgetCocoaImpl::SetFlipped(bool flipped)
     m_isFlipped = flipped;
 }
 
     m_isFlipped = flipped;
 }
 
+void wxWidgetCocoaImpl::SetDrawingEnabled(bool enabled)
+{
+    if ( enabled )
+    {
+        [[m_osxView window] enableFlushWindow];
+        [m_osxView setNeedsDisplay:YES];
+    }
+    else
+    {
+        [[m_osxView window] disableFlushWindow];
+    }
+}
 //
 // Factory methods
 //
 //
 // Factory methods
 //
index bb67d1afb379c7c92383b85fa413a643d38d63de..6fe7e14929b71efe8f54c99a40fb0331c13bedb0 100644 (file)
@@ -1362,27 +1362,23 @@ void wxWindowMac::Refresh(bool WXUNUSED(eraseBack), const wxRect *rect)
 
     if ( !IsShownOnScreen() )
         return ;
 
     if ( !IsShownOnScreen() )
         return ;
+    
+    if ( IsFrozen() )
+        return;
 
     GetPeer()->SetNeedsDisplay( rect ) ;
 }
 
 void wxWindowMac::DoFreeze()
 {
 
     GetPeer()->SetNeedsDisplay( rect ) ;
 }
 
 void wxWindowMac::DoFreeze()
 {
-#if wxOSX_USE_CARBON
     if ( GetPeer() && GetPeer()->IsOk() )
         GetPeer()->SetDrawingEnabled( false ) ;
     if ( GetPeer() && GetPeer()->IsOk() )
         GetPeer()->SetDrawingEnabled( false ) ;
-#endif
 }
 
 void wxWindowMac::DoThaw()
 {
 }
 
 void wxWindowMac::DoThaw()
 {
-#if wxOSX_USE_CARBON
     if ( GetPeer() && GetPeer()->IsOk() )
     if ( GetPeer() && GetPeer()->IsOk() )
-    {
         GetPeer()->SetDrawingEnabled( true ) ;
         GetPeer()->SetDrawingEnabled( true ) ;
-        GetPeer()->InvalidateWithChildren() ;
-    }
-#endif
 }
 
 wxWindow *wxGetActiveWindow()
 }
 
 wxWindow *wxGetActiveWindow()
@@ -2854,3 +2850,7 @@ bool wxWidgetImpl::NeedsFrame() const
 {
     return m_needsFrame;
 }
 {
     return m_needsFrame;
 }
+
+void wxWidgetImpl::SetDrawingEnabled(bool WXUNUSED(enabled))
+{
+}
\ No newline at end of file