X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8949ba7d7450bbecea6b496551f00f01b632c3d6..d0f063020e6fb1b1a660952d0844071e0df24324:/include/wx/aui/framemanager.h diff --git a/include/wx/aui/framemanager.h b/include/wx/aui/framemanager.h index 11f3b2508f..79c0aa2d50 100644 --- a/include/wx/aui/framemanager.h +++ b/include/wx/aui/framemanager.h @@ -47,6 +47,7 @@ enum wxAuiManagerOption wxAUI_MGR_RECTANGLE_HINT = 1 << 5, wxAUI_MGR_HINT_FADE = 1 << 6, wxAUI_MGR_NO_VENETIAN_BLINDS_FADE = 1 << 7, + wxAUI_MGR_LIVE_RESIZE = 1 << 8, wxAUI_MGR_DEFAULT = wxAUI_MGR_ALLOW_FLOATING | wxAUI_MGR_TRANSPARENT_HINT | @@ -121,7 +122,6 @@ enum wxAuiPaneInsertLevel // forwards and array declarations -class WXDLLIMPEXP_FWD_AUI wxAuiFloatingFrame; class wxAuiDockUIPart; class wxAuiPaneButton; class wxAuiPaneInfo; @@ -134,7 +134,6 @@ WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiDockInfo, wxAuiDockInfoArray, WXDLLIMPEXP WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiDockUIPart, wxAuiDockUIPartArray, WXDLLIMPEXP_AUI); WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiPaneButton, wxAuiPaneButtonArray, WXDLLIMPEXP_AUI); WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiPaneInfo, wxAuiPaneInfoArray, WXDLLIMPEXP_AUI); -WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxAuiFloatingFrame*, wxAuiFloatingFramePtrArray, class WXDLLIMPEXP_AUI); WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxAuiPaneInfo*, wxAuiPaneInfoPtrArray, class WXDLLIMPEXP_AUI); WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxAuiDockInfo*, wxAuiDockInfoPtrArray, class WXDLLIMPEXP_AUI); #endif // SWIG @@ -333,7 +332,7 @@ public: return *this; } - wxAuiPaneInfo& SetFlag(unsigned int flag, bool option_state) + wxAuiPaneInfo& SetFlag(int flag, bool option_state) { if (option_state) state |= flag; @@ -342,7 +341,7 @@ public: return *this; } - bool HasFlag(unsigned int flag) const + bool HasFlag(int flag) const { return (state & flag) != 0; } @@ -421,6 +420,8 @@ public: +class WXDLLIMPEXP_FWD_AUI wxAuiFloatingFrame; + class WXDLLIMPEXP_AUI wxAuiManager : public wxEvtHandler { friend class wxAuiFloatingFrame; @@ -501,6 +502,8 @@ public: virtual void ShowHint(const wxRect& rect); virtual void HideHint(); + void OnHintActivate(wxActivateEvent& event); + public: // deprecated -- please use SetManagedWindow() and @@ -511,12 +514,6 @@ public: protected: - // Sometimes floating frames are deleted after wxAuiManager, so we need - // to clear m_owner_mgr in the floating frame to avoid a crash. To do so, - // we register frames with wxAuiManager so it can keep track. - void RegisterFloatingFrame(wxAuiFloatingFrame* frame); - void UnregisterFloatingFrame(wxAuiFloatingFrame* frame); - void UpdateHintWindowConfig(); void DoFrameLayout(); @@ -564,6 +561,8 @@ protected: wxArrayInt& positions, wxArrayInt& sizes); + /// Ends a resize action, or for live update, resizes the sash + bool DoEndResizeAction(wxMouseEvent& event); public: @@ -581,6 +580,7 @@ protected: void OnLeftDown(wxMouseEvent& evt); void OnLeftUp(wxMouseEvent& evt); void OnMotion(wxMouseEvent& evt); + void OnCaptureLost(wxMouseCaptureLostEvent& evt); void OnLeaveWindow(wxMouseEvent& evt); void OnChildFocus(wxChildFocusEvent& evt); void OnHintFadeTimer(wxTimerEvent& evt); @@ -607,7 +607,6 @@ protected: wxAuiPaneInfoArray m_panes; // array of panes structures wxAuiDockInfoArray m_docks; // array of docks structures wxAuiDockUIPartArray m_uiparts; // array of UI parts (captions, buttons, etc) - wxAuiFloatingFramePtrArray m_floating_frames; // array of floating frames int m_action; // current mouse action wxPoint m_action_start; // position where the action click started @@ -619,6 +618,7 @@ protected: wxAuiDockUIPart* m_hover_button;// button uipart being hovered over wxRect m_last_hint; // last hint rectangle wxPoint m_last_mouse_move; // last mouse move position (see OnMotion) + int m_currentDragItem; bool m_skipping; bool m_has_maximized; @@ -805,17 +805,17 @@ public: #ifndef SWIG -extern WXDLLIMPEXP_AUI const wxEventType wxEVT_AUI_PANE_BUTTON; -extern WXDLLIMPEXP_AUI const wxEventType wxEVT_AUI_PANE_CLOSE; -extern WXDLLIMPEXP_AUI const wxEventType wxEVT_AUI_PANE_MAXIMIZE; -extern WXDLLIMPEXP_AUI const wxEventType wxEVT_AUI_PANE_RESTORE; -extern WXDLLIMPEXP_AUI const wxEventType wxEVT_AUI_RENDER; -extern WXDLLIMPEXP_AUI const wxEventType wxEVT_AUI_FIND_MANAGER; +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUI_PANE_BUTTON, wxAuiManagerEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUI_PANE_CLOSE, wxAuiManagerEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUI_PANE_MAXIMIZE, wxAuiManagerEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUI_PANE_RESTORE, wxAuiManagerEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUI_RENDER, wxAuiManagerEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUI_FIND_MANAGER, wxAuiManagerEvent ); typedef void (wxEvtHandler::*wxAuiManagerEventFunction)(wxAuiManagerEvent&); #define wxAuiManagerEventHandler(func) \ - (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxAuiManagerEventFunction, &func) + wxEVENT_HANDLER_CAST(wxAuiManagerEventFunction, func) #define EVT_AUI_PANE_BUTTON(func) \ wx__DECLARE_EVT0(wxEVT_AUI_PANE_BUTTON, wxAuiManagerEventHandler(func))