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
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;
return *this;
}
#endif // SWIG
-
+
+ // Write the safe parts of a newly loaded PaneInfo structure "source" into "this"
+ // used on loading perspectives etc.
+ void SafeSet(wxPaneInfo source)
+ {
+ // note source is not passed by reference so we can overwrite, to keep the
+ // unsafe bits of "dest"
+ source.window = window;
+ source.frame = frame;
+ source.buttons = buttons;
+ // now assign
+ *this = source;
+ }
+
bool IsOk() const { return (window != NULL) ? true : false; }
bool IsFixed() const { return !HasFlag(optionResizable); }
bool IsResizable() const { return HasFlag(optionResizable); }
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)
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,
bool DetachPane(wxWindow* window);
+ wxString SavePaneInfo(wxPaneInfo& pane);
+ void LoadPaneInfo(wxString pane_part, wxPaneInfo &pane);
+
wxString SavePerspective();
bool LoadPerspective(const wxString& perspective,
void Update();
+
+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
protected:
- void DrawHintRect(wxWindow* pane_window,
- const wxPoint& pt,
- const wxPoint& offset);
+
void DoFrameLayout();
void LayoutAddPane(wxSizer* container,
wxDockUIPartArray& uiparts,
bool spacer_only = false);
+ virtual bool ProcessDockResult(wxPaneInfo& target,
+ const wxPaneInfo& new_pos);
+
bool DoDrop(wxDockInfoArray& docks,
wxPaneInfoArray& panes,
wxPaneInfo& drop,
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);
void GetPanePositionsAndSizes(wxDockInfo& dock,
wxArrayInt& positions,
wxArrayInt& sizes);
- virtual void ShowHint(const wxRect& rect);
- virtual void HideHint();
+
public:
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)
- 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()