enum wxFrameManagerOption
{
- wxAUI_MGR_ALLOW_FLOATING = 1 << 0,
- wxAUI_MGR_ALLOW_ACTIVE_PANE = 1 << 1,
- 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_ALLOW_FLOATING = 1 << 0,
+ wxAUI_MGR_ALLOW_ACTIVE_PANE = 1 << 1,
+ wxAUI_MGR_TRANSPARENT_DRAG = 1 << 2,
+ wxAUI_MGR_TRANSPARENT_HINT = 1 << 3,
+ wxAUI_MGR_VENETIAN_BLINDS_HINT = 1 << 4,
+ wxAUI_MGR_RECTANGLE_HINT = 1 << 5,
+ wxAUI_MGR_HINT_FADE = 1 << 6,
+ wxAUI_MGR_NO_VENETIAN_BLINDS_FADE = 1 << 7,
wxAUI_MGR_DEFAULT = wxAUI_MGR_ALLOW_FLOATING |
wxAUI_MGR_TRANSPARENT_HINT |
- wxAUI_MGR_TRANSPARENT_HINT_FADE |
- wxAUI_MGR_DISABLE_VENETIAN_BLINDS_FADE
+ wxAUI_MGR_HINT_FADE |
+ wxAUI_MGR_NO_VENETIAN_BLINDS_FADE
};
+
enum wxPaneDockArtSetting
{
wxAUI_ART_SASH_SIZE = 0,
enum wxPaneButtonState
{
- wxAUI_BUTTON_STATE_NORMAL = 0,
- wxAUI_BUTTON_STATE_HOVER = 1,
- wxAUI_BUTTON_STATE_PRESSED = 2
+ wxAUI_BUTTON_STATE_NORMAL = 0,
+ wxAUI_BUTTON_STATE_HOVER = 1 << 1,
+ wxAUI_BUTTON_STATE_PRESSED = 1 << 2,
+ wxAUI_BUTTON_STATE_DISABLED = 1 << 3,
+ wxAUI_BUTTON_STATE_HIDDEN = 1 << 4
+};
+
+enum wxAuiButtonId
+{
+ wxAUI_BUTTON_CLOSE = 101,
+ wxAUI_BUTTON_MAXIMIZE = 102,
+ wxAUI_BUTTON_MINIMIZE = 103,
+ wxAUI_BUTTON_PIN = 104,
+ wxAUI_BUTTON_OPTIONS = 105,
+ wxAUI_BUTTON_LEFT = 106,
+ wxAUI_BUTTON_RIGHT = 107,
+ wxAUI_BUTTON_UP = 108,
+ wxAUI_BUTTON_DOWN = 109,
+ wxAUI_BUTTON_CUSTOM1 = 201,
+ wxAUI_BUTTON_CUSTOM2 = 202,
+ wxAUI_BUTTON_CUSTOM3 = 203
};
enum wxPaneInsertLevel
+
// forwards and array declarations
class wxDockUIPart;
class wxPaneButton;
WX_DECLARE_USER_EXPORTED_OBJARRAY(wxDockUIPart, wxDockUIPartArray, WXDLLIMPEXP_AUI);
WX_DECLARE_USER_EXPORTED_OBJARRAY(wxPaneButton, wxPaneButtonArray, WXDLLIMPEXP_AUI);
WX_DECLARE_USER_EXPORTED_OBJARRAY(wxPaneInfo, wxPaneInfoArray, WXDLLIMPEXP_AUI);
-WX_DEFINE_ARRAY_PTR(wxPaneInfo*, wxPaneInfoPtrArray);
-WX_DEFINE_ARRAY_PTR(wxDockInfo*, wxDockInfoPtrArray);
+WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxPaneInfo*, wxPaneInfoPtrArray, class WXDLLIMPEXP_AUI);
+WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxDockInfo*, wxDockInfoPtrArray, class WXDLLIMPEXP_AUI);
#endif // SWIG
extern WXDLLIMPEXP_AUI wxDockInfo wxNullDockInfo;
bool IsRightDockable() const { return HasFlag(optionRightDockable); }
bool IsFloatable() const { return HasFlag(optionFloatable); }
bool IsMovable() const { return HasFlag(optionMovable); }
+ bool IsDestroyOnClose() const { return HasFlag(optionDestroyOnClose); }
bool HasCaption() const { return HasFlag(optionCaption); }
bool HasGripper() const { return HasFlag(optionGripper); }
bool HasBorder() const { return HasFlag(optionPaneBorder); }
-
+class WXDLLIMPEXP_AUI wxFloatingPane;
class WXDLLIMPEXP_AUI wxFrameManager : public wxEvtHandler
{
int insert_level = wxAUI_INSERT_PANE);
bool DetachPane(wxWindow* window);
+
+ void ClosePane(wxPaneInfo& pane_info);
wxString SavePaneInfo(wxPaneInfo& pane);
void LoadPaneInfo(wxString pane_part, wxPaneInfo &pane);
public:
+ virtual wxFloatingPane* CreateFloatingFrame(wxWindow* parent, const wxPaneInfo& p);
void DrawHintRect(wxWindow* pane_window,
- const wxPoint& pt,
- const wxPoint& offset);
+ const wxPoint& pt,
+ const wxPoint& offset);
virtual void ShowHint(const wxRect& rect);
virtual void HideHint();
protected:
-
+ void UpdateHintWindowConfig();
void DoFrameLayout();
wxDockUIPart* GetPanePart(wxWindow* pane);
int GetDockPixelOffset(wxPaneInfo& test);
void OnFloatingPaneMoveStart(wxWindow* window);
- void OnFloatingPaneMoving(wxWindow* window);
- void OnFloatingPaneMoved(wxWindow* window);
+ void OnFloatingPaneMoving(wxWindow* window, wxDirection dir );
+ void OnFloatingPaneMoved(wxWindow* window, wxDirection dir);
void OnFloatingPaneActivated(wxWindow* window);
void OnFloatingPaneClosed(wxWindow* window, wxCloseEvent& evt);
void OnFloatingPaneResized(wxWindow* window, const wxSize& size);
wxDockUIPart* m_action_part; // ptr to the part the action happened to
wxWindow* m_action_window; // action frame or window (NULL if none)
wxRect m_action_hintrect; // hint rectangle for the action
+ bool m_skipping;
+ wxRect m_last_rect;
wxDockUIPart* 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)