]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/aui/framemanager.h
[ 1518434 ] wxSize::Scale with wxScale and wxPoint operators documented
[wxWidgets.git] / include / wx / aui / framemanager.h
index b10226213168d73ef1f0bf05eb2af6b2a476f9ec..23a277e70544480493d7c7f9073bd4ec31f773b0 100644 (file)
@@ -44,10 +44,16 @@ enum wxFrameManagerOption
     wxAUI_MGR_TRANSPARENT_DRAG      = 1 << 2,
     wxAUI_MGR_TRANSPARENT_HINT      = 1 << 3,
     wxAUI_MGR_TRANSPARENT_HINT_FADE = 1 << 4,
+    // The venetian blind effect is ONLY used when the wxAUI_MGR_TRANSPARENT_HINT has been used, but
+    // at runtime we determine we cannot use transparency (because, for instance, the OS does not support it).
+    // setting this flag drops back in such circumstances (only) to the behaviour without wxAUI_MGR_TRANSPARENT_HINT
+    wxAUI_MGR_DISABLE_VENETIAN_BLINDS = 1 << 5,
+    wxAUI_MGR_DISABLE_VENETIAN_BLINDS_FADE = 1 << 6,
 
     wxAUI_MGR_DEFAULT = wxAUI_MGR_ALLOW_FLOATING |
                         wxAUI_MGR_TRANSPARENT_HINT |
-                        wxAUI_MGR_TRANSPARENT_HINT_FADE
+                        wxAUI_MGR_TRANSPARENT_HINT_FADE |
+                        wxAUI_MGR_DISABLE_VENETIAN_BLINDS_FADE
 };
 
 enum wxPaneDockArtSetting
@@ -340,7 +346,7 @@ public:
     wxString caption;     // caption displayed on the window
 
     wxWindow* window;     // window that is in this pane
-    wxWindow* frame;      // floating frame window that holds the pane
+    wxFrame* frame;       // floating frame window that holds the pane
     unsigned int state;   // a combination of wxPaneState values
 
     int dock_direction;   // dock direction (top, bottom, left, right, center)
@@ -371,7 +377,7 @@ friend class wxFloatingPane;
 
 public:
 
-    wxFrameManager(wxFrame* frame = NULL,
+    wxFrameManager(wxWindow* managed_wnd = NULL,
                    unsigned int flags = wxAUI_MGR_DEFAULT);
     virtual ~wxFrameManager();
     void UnInit();
@@ -379,8 +385,8 @@ public:
     void SetFlags(unsigned int flags);
     unsigned int GetFlags() const;
 
-    void SetFrame(wxWindow* frame);
-    wxWindow* GetFrame() const;
+    void SetManagedWindow(wxWindow* managed_wnd);
+    wxWindow* GetManagedWindow() const;
 
 #ifdef SWIG
     %disownarg( wxDockArt* art_provider );
@@ -394,6 +400,10 @@ public:
 
     bool AddPane(wxWindow* window,
                  const wxPaneInfo& pane_info);
+                 
+    bool AddPane(wxWindow* window,
+                 const wxPaneInfo& pane_info,
+                 const wxPoint& drop_pos);
 
     bool AddPane(wxWindow* window,
                  int direction = wxLEFT,
@@ -412,12 +422,27 @@ public:
 
     void Update();
 
-protected:
+
+public:
 
     void DrawHintRect(wxWindow* pane_window,
                        const wxPoint& pt,
                        const wxPoint& offset);
+    virtual void ShowHint(const wxRect& rect);
+    virtual void HideHint();
 
+public:
+
+    // deprecated -- please use SetManagedWindow() and
+    // and GetManagedWindow() instead
+    
+    wxDEPRECATED( void SetFrame(wxFrame* frame) );
+    wxDEPRECATED( wxFrame* GetFrame() const );
+    
+protected:
+
+
+    
     void DoFrameLayout();
 
     void LayoutAddPane(wxSizer* container,
@@ -436,6 +461,9 @@ protected:
                        wxDockUIPartArray& uiparts,
                        bool spacer_only = false);
 
+    virtual bool ProcessDockResult(wxPaneInfo& target,
+                                   const wxPaneInfo& new_pos);
+
     bool DoDrop(wxDockInfoArray& docks,
                 wxPaneInfoArray& panes,
                 wxPaneInfo& drop,
@@ -461,23 +489,27 @@ protected:
     void GetPanePositionsAndSizes(wxDockInfo& dock,
                               wxArrayInt& positions,
                               wxArrayInt& sizes);
-    virtual void ShowHint(const wxRect& rect);
-    virtual void HideHint();
+
+
+public:
+
+    // public events (which can be invoked externally)
+    void OnRender(wxFrameManagerEvent& evt);
+    void OnPaneButton(wxFrameManagerEvent& evt);
 
 protected:
 
-    // events
-    void OnPaint(wxPaintEvent& event);
-    void OnEraseBackground(wxEraseEvent& event);
-    void OnSize(wxSizeEvent& event);
-    void OnSetCursor(wxSetCursorEvent& event);
-    void OnLeftDown(wxMouseEvent& event);
-    void OnLeftUp(wxMouseEvent& event);
-    void OnMotion(wxMouseEvent& event);
-    void OnLeaveWindow(wxMouseEvent& event);
-    void OnPaneButton(wxFrameManagerEvent& event);
-    void OnChildFocus(wxChildFocusEvent& event);
-    void OnHintFadeTimer(wxTimerEvent& event);
+    // protected events
+    void OnPaint(wxPaintEvent& evt);
+    void OnEraseBackground(wxEraseEvent& evt);
+    void OnSize(wxSizeEvent& evt);
+    void OnSetCursor(wxSetCursorEvent& evt);
+    void OnLeftDown(wxMouseEvent& evt);
+    void OnLeftUp(wxMouseEvent& evt);
+    void OnMotion(wxMouseEvent& evt);
+    void OnLeaveWindow(wxMouseEvent& evt);
+    void OnChildFocus(wxChildFocusEvent& evt);
+    void OnHintFadeTimer(wxTimerEvent& evt);
 
 protected:
 
@@ -511,9 +543,10 @@ protected:
     wxRect m_last_hint;          // last hint rectangle
     wxPoint m_last_mouse_move;   // last mouse move position (see OnMotion)
 
-    wxWindow* m_hint_wnd;        // transparent hint window (for now, only msw)
-    wxTimer m_hint_fadetimer;    // transparent fade timer (for now, only msw)
-    int m_hint_fadeamt;          // transparent fade amount (for now, only msw)
+    wxFrame* m_hint_wnd;         // transparent hint window, if supported by platform
+    wxTimer m_hint_fadetimer;    // transparent fade timer
+    wxByte m_hint_fadeamt;       // transparent fade amount
+    wxByte m_hint_fademax;       // maximum value of hint fade
 
 #ifndef SWIG
     DECLARE_EVENT_TABLE()
@@ -533,6 +566,7 @@ public:
         button = 0;
         veto_flag = false;
         canveto_flag = true;
+        dc = NULL;
     }
 #ifndef SWIG
     wxFrameManagerEvent(const wxFrameManagerEvent& c) : wxEvent(c)
@@ -541,14 +575,18 @@ public:
         button = c.button;
         veto_flag = c.veto_flag;
         canveto_flag = c.canveto_flag;
+        dc = c.dc;
     }
 #endif
     wxEvent *Clone() const { return new wxFrameManagerEvent(*this); }
 
     void SetPane(wxPaneInfo* p) { pane = p; }
     void SetButton(int b) { button = b; }
+    void SetDC(wxDC* pdc) { dc = pdc; }
     wxPaneInfo* GetPane() { return pane; }
     int GetButton() { return button; }
+    wxDC* GetDC() { return dc; }
     
     void Veto(bool veto = true) { veto_flag = veto; }
     bool GetVeto() const { return veto_flag; }
@@ -560,6 +598,7 @@ public:
     int button;
     bool veto_flag;
     bool canveto_flag;
+    wxDC* dc;
 
 #ifndef SWIG
 private:
@@ -676,6 +715,7 @@ public:
 BEGIN_DECLARE_EVENT_TYPES()
     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_AUI_PANEBUTTON, 0)
     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_AUI_PANECLOSE, 0)
+    DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_AUI_RENDER, 0)
 END_DECLARE_EVENT_TYPES()
 
 typedef void (wxEvtHandler::*wxFrameManagerEventFunction)(wxFrameManagerEvent&);
@@ -687,15 +727,19 @@ typedef void (wxEvtHandler::*wxFrameManagerEventFunction)(wxFrameManagerEvent&);
    wx__DECLARE_EVT0(wxEVT_AUI_PANEBUTTON, wxFrameManagerEventHandler(func))
 #define EVT_AUI_PANECLOSE(func) \
    wx__DECLARE_EVT0(wxEVT_AUI_PANECLOSE, wxFrameManagerEventHandler(func))
+#define EVT_AUI_RENDER(func) \
+   wx__DECLARE_EVT0(wxEVT_AUI_RENDER, wxFrameManagerEventHandler(func))
 
 #else
 
 %constant wxEventType wxEVT_AUI_PANEBUTTON;
 %constant wxEventType wxEVT_AUI_PANECLOSE;
+%constant wxEventType wxEVT_AUI_RENDER;
 
 %pythoncode {
     EVT_AUI_PANEBUTTON = wx.PyEventBinder( wxEVT_AUI_PANEBUTTON )
     EVT_AUI_PANECLOSE = wx.PyEventBinder( wxEVT_AUI_PANECLOSE )
+    EVT_AUI_RENDER = wx.PyEventBinder( wxEVT_AUI_RENDER )
 }
 #endif // SWIG