]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mac/carbon/window.h
Applied patch [ 1181975 ] [wxMSW] Removes all flicker from wxNotebook
[wxWidgets.git] / include / wx / mac / carbon / window.h
index 3d5fa0d1529cad7ff08c2a7518c1b808d1f8edf6..e8ed1c6e1bff70f348779450291252ac1a4d27a2 100644 (file)
@@ -205,9 +205,13 @@ public:
     virtual void        MacSetBackgroundBrush( const wxBrush &brush ) ;
     const wxBrush&      MacGetBackgroundBrush() const { return m_macBackgroundBrush ; }
     
     virtual void        MacSetBackgroundBrush( const wxBrush &brush ) ;
     const wxBrush&      MacGetBackgroundBrush() const { return m_macBackgroundBrush ; }
     
+    // return the rectangle that would be visible of this control, regardless whether controls are hidden
+    // only taking into account clipping by parent windows
+    const wxRect&       MacGetClippedClientRect() const ;
+    const wxRect&       MacGetClippedRect() const ;
+    const wxRect&       MacGetClippedRectWithOuterStructure() const ;
     // returns the visible region of this control in window ie non-client coordinates
     // returns the visible region of this control in window ie non-client coordinates
-    
-    wxRegion            MacGetVisibleRegion( bool includeOuterStructures = false ) ;
+    const wxRegion&     MacGetVisibleRegion( bool includeOuterStructures = false ) ;
     // returns true if children have to clipped to the content area (eg scrolled window)
     bool                       MacClipChildren() const { return m_clipChildren ; }
     void                MacSetClipChildren( bool clip ) { m_clipChildren = clip ; }
     // returns true if children have to clipped to the content area (eg scrolled window)
     bool                       MacClipChildren() const { return m_clipChildren ; }
     void                MacSetClipChildren( bool clip ) { m_clipChildren = clip ; }
@@ -264,6 +268,15 @@ protected:
 #if wxMAC_USE_CORE_GRAPHICS
     void *              m_cgContextRef ;
 #endif
 #if wxMAC_USE_CORE_GRAPHICS
     void *              m_cgContextRef ;
 #endif
+    // cache the clipped rectangles within the window hierarchy
+    void                MacUpdateClippedRects() const ;
+    mutable bool        m_cachedClippedRectValid ;
+    mutable wxRect      m_cachedClippedRectWithOuterStructure ;
+    mutable wxRect      m_cachedClippedRect ;
+    mutable wxRect      m_cachedClippedClientRect ;
+    mutable wxRegion    m_cachedClippedRegionWithOuterStructure ;
+    mutable wxRegion    m_cachedClippedRegion ;
+    mutable wxRegion    m_cachedClippedClientRegion ;
     // true if is is not a native control but a wxWindow control
        bool                            m_macIsUserPane ;
     wxBrush             m_macBackgroundBrush ;
     // true if is is not a native control but a wxWindow control
        bool                            m_macIsUserPane ;
     wxBrush             m_macBackgroundBrush ;
@@ -280,6 +293,8 @@ protected:
     // it becomes the target window of a scrolled window it has to...
     bool                m_clipChildren ;
     
     // it becomes the target window of a scrolled window it has to...
     bool                m_clipChildren ;
     
+    virtual bool        MacIsChildOfClientArea( const wxWindow* child ) const ;
+    
     void                MacCreateScrollBars( long style ) ;
     void                MacRepositionScrollBars() ;
     void                MacUpdateControlFont() ;
     void                MacCreateScrollBars( long style ) ;
     void                MacRepositionScrollBars() ;
     void                MacUpdateControlFont() ;