]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/osx/nonownedwnd.h
guarding agains NULL
[wxWidgets.git] / include / wx / osx / nonownedwnd.h
index 3eb1b2e1f0f96b68cbdeff7ca4b4751b29a1c6ab..a972612b2bb7dea4148c81e103d3b52b2d0175d1 100644 (file)
@@ -14,6 +14,8 @@
 
 #include "wx/window.h"
 
 
 #include "wx/window.h"
 
+#include "wx/graphics.h"
+
 #if wxUSE_SYSTEM_OPTIONS
     #define wxMAC_WINDOW_PLAIN_TRANSITION wxT("mac.window-plain-transition")
 #endif
 #if wxUSE_SYSTEM_OPTIONS
     #define wxMAC_WINDOW_PLAIN_TRANSITION wxT("mac.window-plain-transition")
 #endif
@@ -30,7 +32,7 @@
 
 class wxNonOwnedWindowImpl;
 
 
 class wxNonOwnedWindowImpl;
 
-class WXDLLIMPEXP_CORE wxNonOwnedWindow : public wxWindow
+class WXDLLIMPEXP_CORE wxNonOwnedWindow : public wxNonOwnedWindowBase
 {
 public:
     // constructors and such
 {
 public:
     // constructors and such
@@ -79,8 +81,11 @@ public:
     // implementation from now on
     // --------------------------
 
     // implementation from now on
     // --------------------------
 
-    virtual bool DoSetShape(const wxRegion& region);
+    // These accessors are Mac-specific and don't exist in other ports.
     const wxRegion& GetShape() const { return m_shape; }
     const wxRegion& GetShape() const { return m_shape; }
+#if wxUSE_GRAPHICS_CONTEXT
+    const wxGraphicsPath& GetShapePath() { return m_shapePath; }
+#endif // wxUSE_GRAPHICS_CONTEXT
 
     // activation hooks only necessary for MDI Implementation
     static void MacDelayedDeactivation(long timestamp);
 
     // activation hooks only necessary for MDI Implementation
     static void MacDelayedDeactivation(long timestamp);
@@ -109,6 +114,8 @@ public:
     virtual void HandleResized( double timestampsec );
     virtual void HandleMoved( double timestampsec );
     virtual void HandleResizing( double timestampsec, wxRect* rect );
     virtual void HandleResized( double timestampsec );
     virtual void HandleMoved( double timestampsec );
     virtual void HandleResizing( double timestampsec, wxRect* rect );
+    
+    void WindowWasPainted();
 
     virtual bool Destroy();
 
 
     virtual bool Destroy();
 
@@ -125,6 +132,12 @@ protected:
                                    wxShowEffect effect,
                                    unsigned timeout);
 
                                    wxShowEffect effect,
                                    unsigned timeout);
 
+    virtual bool DoClearShape();
+    virtual bool DoSetRegionShape(const wxRegion& region);
+#if wxUSE_GRAPHICS_CONTEXT
+    virtual bool DoSetPathShape(const wxGraphicsPath& path);
+#endif // wxUSE_GRAPHICS_CONTEXT
+
     virtual void WillBeDestroyed();
 
     wxNonOwnedWindowImpl* m_nowpeer ;
     virtual void WillBeDestroyed();
 
     wxNonOwnedWindowImpl* m_nowpeer ;
@@ -134,7 +147,12 @@ protected:
     static wxNonOwnedWindow *s_macDeactivateWindow;
 
 private :
     static wxNonOwnedWindow *s_macDeactivateWindow;
 
 private :
+    static clock_t s_lastFlush;
+    
     wxRegion m_shape;
     wxRegion m_shape;
+#if wxUSE_GRAPHICS_CONTEXT
+    wxGraphicsPath m_shapePath;
+#endif // wxUSE_GRAPHICS_CONTEXT
 };
 
 // list of all frames and modeless dialogs
 };
 
 // list of all frames and modeless dialogs