]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/aui/floatpane.h
Refactor wxDocParentFrame and wxDocMDIParentFrame to share common base class.
[wxWidgets.git] / include / wx / aui / floatpane.h
index 9344b52d4c74a9f20576ab1e6174e354b6ef5703..2638d6e3a8f8558616d0bd733972c4395d668896 100644 (file)
 // ----------------------------------------------------------------------------
 
 #include "wx/defs.h"
+#include "wx/weakref.h"
 
 #if wxUSE_AUI
 
-#include "wx/frame.h"
-
-#if defined( __WXMSW__ ) || defined( __WXMAC__ ) ||  defined( __WXGTK__ )
-#include "wx/minifram.h"
-#define wxAuiFloatingPaneBaseClass wxMiniFrame
+#if wxUSE_MINIFRAME
+    #include "wx/minifram.h"
+    #define wxAuiFloatingFrameBaseClass wxMiniFrame
 #else
-#define wxAuiFloatingPaneBaseClass wxFrame
+    #include "wx/frame.h"
+    #define wxAuiFloatingFrameBaseClass wxFrame
 #endif
 
-class WXDLLIMPEXP_AUI wxAuiFloatingPane : public wxAuiFloatingPaneBaseClass
+class WXDLLIMPEXP_AUI wxAuiFloatingFrame : public wxAuiFloatingFrameBaseClass
 {
 public:
-    wxAuiFloatingPane(wxWindow* parent,
+    wxAuiFloatingFrame(wxWindow* parent,
                    wxAuiManager* owner_mgr,
                    const wxAuiPaneInfo& pane,
                    wxWindowID id = wxID_ANY,
                    long style = wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION |
-                                wxFRAME_NO_TASKBAR | wxFRAME_FLOAT_ON_PARENT | 
+                                wxFRAME_NO_TASKBAR | wxFRAME_FLOAT_ON_PARENT |
                                 wxCLIP_CHILDREN
                    );
-    virtual ~wxAuiFloatingPane();
+    virtual ~wxAuiFloatingFrame();
     void SetPaneWindow(const wxAuiPaneInfo& pane);
-    
+    wxAuiManager* GetOwnerManager() const;
+
 protected:
     virtual void OnMoveStart();
     virtual void OnMoving(const wxRect& window_rect, wxDirection dir);
     virtual void OnMoveFinished();
-    
+
 private:
     void OnSize(wxSizeEvent& event);
     void OnClose(wxCloseEvent& event);
@@ -55,6 +56,7 @@ private:
     void OnIdle(wxIdleEvent& event);
     void OnActivate(wxActivateEvent& event);
     static bool isMouseDown();
+
 private:
     wxWindow* m_pane_window;    // pane window being managed
     bool m_solid_drag;          // true if system uses solid window drag
@@ -65,12 +67,12 @@ private:
     wxSize m_last_size;
     wxDirection m_lastDirection;
 
-    wxAuiManager* m_owner_mgr;
+    wxWeakRef<wxAuiManager> m_owner_mgr;
     wxAuiManager m_mgr;
 
 #ifndef SWIG
     DECLARE_EVENT_TABLE()
-    DECLARE_CLASS(wxAuiFloatingPaneBaseClass)
+    DECLARE_CLASS(wxAuiFloatingFrame)
 #endif // SWIG
 };