X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/afce4c035fffa13edcb0241d84dbae93ae3ee1e3..91a64dfd31f2b144260556755a2d52ecbbb0a85f:/include/wx/generic/laywin.h diff --git a/include/wx/generic/laywin.h b/include/wx/generic/laywin.h index 6fcbc5c300..7f8b13cb39 100644 --- a/include/wx/generic/laywin.h +++ b/include/wx/generic/laywin.h @@ -19,17 +19,23 @@ #pragma interface "laywin.h" #endif -#include "wx/sashwin.h" +#if wxUSE_SASH + #include "wx/sashwin.h" +#endif // wxUSE_SASH -const wxEventType wxEVT_QUERY_LAYOUT_INFO = wxEVT_FIRST + 1500; -const wxEventType wxEVT_CALCULATE_LAYOUT = wxEVT_FIRST + 1501; +BEGIN_DECLARE_EVENT_TYPES() + DECLARE_EVENT_TYPE(wxEVT_QUERY_LAYOUT_INFO, 1500) + DECLARE_EVENT_TYPE(wxEVT_CALCULATE_LAYOUT, 1501) +END_DECLARE_EVENT_TYPES() -enum wxLayoutOrientation { +enum wxLayoutOrientation +{ wxLAYOUT_HORIZONTAL, wxLAYOUT_VERTICAL }; -enum wxLayoutAlignment { +enum wxLayoutAlignment +{ wxLAYOUT_NONE, wxLAYOUT_TOP, wxLAYOUT_LEFT, @@ -85,6 +91,8 @@ public: void SetAlignment(wxLayoutAlignment align) { m_alignment = align; } wxLayoutAlignment GetAlignment() const { return m_alignment; } + virtual wxEvent *Clone() const { return new wxQueryLayoutInfoEvent(*this); } + protected: int m_flags; int m_requestedLength; @@ -96,7 +104,8 @@ protected: typedef void (wxEvtHandler::*wxQueryLayoutInfoEventFunction)(wxQueryLayoutInfoEvent&); -#define EVT_QUERY_LAYOUT_INFO(func) { wxEVT_QUERY_LAYOUT_INFO, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxQueryLayoutInfoEventFunction) & func, NULL }, +#define EVT_QUERY_LAYOUT_INFO(func) \ + DECLARE_EVENT_TABLE_ENTRY( wxEVT_QUERY_LAYOUT_INFO, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxQueryLayoutInfoEventFunction) & func, NULL ), /* * This event is used to take a bite out of the available client area. @@ -112,13 +121,17 @@ public: m_flags = 0; m_id = id; } -// Read by the app - inline void SetFlags(int flags) { m_flags = flags; } - inline int GetFlags() const { return m_flags; } -// Set by the app - inline void SetRect(const wxRect& rect) { m_rect = rect; } - inline wxRect GetRect() const { return m_rect; } + // Read by the app + void SetFlags(int flags) { m_flags = flags; } + int GetFlags() const { return m_flags; } + + // Set by the app + void SetRect(const wxRect& rect) { m_rect = rect; } + wxRect GetRect() const { return m_rect; } + + virtual wxEvent *Clone() const { return new wxCalculateLayoutEvent(*this); } + protected: int m_flags; wxRect m_rect; @@ -126,7 +139,10 @@ protected: typedef void (wxEvtHandler::*wxCalculateLayoutEventFunction)(wxCalculateLayoutEvent&); -#define EVT_CALCULATE_LAYOUT(func) { wxEVT_CALCULATE_LAYOUT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCalculateLayoutEventFunction) & func, NULL }, +#define EVT_CALCULATE_LAYOUT(func) \ + DECLARE_EVENT_TABLE_ENTRY( wxEVT_CALCULATE_LAYOUT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCalculateLayoutEventFunction) & func, NULL ), + +#if wxUSE_SASH // This is window that can remember alignment/orientation, does its own layout, // and can provide sashes too. Useful for implementing docked windows with sashes in @@ -135,7 +151,18 @@ class WXDLLEXPORT wxSashLayoutWindow: public wxSashWindow { DECLARE_CLASS(wxSashLayoutWindow) public: + wxSashLayoutWindow() + { + Init(); + } + wxSashLayoutWindow(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "layoutWindow") + { + Create(parent, id, pos, size, style, name); + } + + bool Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "layoutWindow"); // Accessors @@ -155,7 +182,10 @@ public: // Called by layout algorithm to retrieve information about the window. void OnQueryLayoutInfo(wxQueryLayoutInfoEvent& event); -protected: + +private: + void Init(); + wxLayoutAlignment m_alignment; wxLayoutOrientation m_orientation; wxSize m_defaultSize; @@ -163,6 +193,8 @@ protected: DECLARE_EVENT_TABLE() }; +#endif // wxUSE_SASH + class WXDLLEXPORT wxMDIParentFrame; class WXDLLEXPORT wxFrame; @@ -172,17 +204,16 @@ class WXDLLEXPORT wxLayoutAlgorithm: public wxObject public: wxLayoutAlgorithm() {} +#if wxUSE_MDI_ARCHITECTURE // The MDI client window is sized to whatever's left over. bool LayoutMDIFrame(wxMDIParentFrame* frame, wxRect* rect = (wxRect*) NULL); +#endif // wxUSE_MDI_ARCHITECTURE // mainWindow is sized to whatever's left over. This function for backward // compatibility; use LayoutWindow. - bool LayoutFrame(wxFrame* frame, wxWindow* mainWindow = (wxWindow*) NULL) - { - return LayoutWindow(frame, mainWindow); - } + bool LayoutFrame(wxFrame* frame, wxWindow* mainWindow = (wxWindow*) NULL); - // mainWindow is sized to whatever's left over. This function for backward + // mainWindow is sized to whatever's left over. bool LayoutWindow(wxWindow* frame, wxWindow* mainWindow = (wxWindow*) NULL); };