X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/159e6235b2bd2c9e991e9380622c9cdc21b0ead6..467e04791c0d5914dc8ed8e535af607f7fc1dfe1:/include/wx/bookctrl.h diff --git a/include/wx/bookctrl.h b/include/wx/bookctrl.h index dcfb8ae81b..5d09ad2d9a 100644 --- a/include/wx/bookctrl.h +++ b/include/wx/bookctrl.h @@ -128,6 +128,13 @@ public: m_internalBorder = internalBorder; } + // returns true if we have wxCHB_TOP or wxCHB_BOTTOM style + bool IsVertical() const { return HasFlag(wxBK_BOTTOM | wxBK_TOP); } + + // set/get option to shrink to fit current page + void SetFitToCurrentPage(bool fit) { m_fitToCurrentPage = fit; } + bool GetFitToCurrentPage() const { return m_fitToCurrentPage; } + // operations // ---------- @@ -204,6 +211,9 @@ protected: // Always rely on GetBestSize, which will look at all the pages virtual void SetInitialBestSize(const wxSize& WXUNUSED(size)) { } + // Lay out controls + void DoSize(); + // the array of all pages of this control wxArrayPages m_pages; @@ -213,6 +223,19 @@ protected: // true if we must delete m_imageList bool m_ownsImageList; + // get the page area + wxRect GetPageRect() const; + + // event handlers + virtual wxSize GetControllerSize() const; + void OnSize(wxSizeEvent& event); + + // controller buddy if available, NULL otherwise (usually for native book controls like wxNotebook) + wxControl *m_bookctrl; + + // Whether to shrink to fit current page + bool m_fitToCurrentPage; + private: // common part of all ctors @@ -221,7 +244,9 @@ private: // internal border unsigned int m_internalBorder; + DECLARE_ABSTRACT_CLASS(wxBookCtrlBase) DECLARE_NO_COPY_CLASS(wxBookCtrlBase) + DECLARE_EVENT_TABLE() }; // ---------------------------------------------------------------------------- @@ -234,10 +259,17 @@ public: wxBookCtrlBaseEvent(wxEventType commandType = wxEVT_NULL, int winid = 0, int nSel = -1, int nOldSel = -1) : wxNotifyEvent(commandType, winid) - { - m_nSel = nSel; - m_nOldSel = nOldSel; - } + { + m_nSel = nSel; + m_nOldSel = nOldSel; + } + + wxBookCtrlBaseEvent(const wxBookCtrlBaseEvent& event) + : wxNotifyEvent(event) + { + m_nSel = event.m_nSel; + m_nOldSel = event.m_nOldSel; + } // accessors // the currently selected page (-1 if none) @@ -262,11 +294,6 @@ private: #define wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGING wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING #define EVT_BOOKCTRL_PAGE_CHANGED(id, fn) EVT_NOTEBOOK_PAGE_CHANGED(id, fn) #define EVT_BOOKCTRL_PAGE_CHANGING(id, fn) EVT_NOTEBOOK_PAGE_CHANGING(id, fn) - #define wxBC_TOP wxNB_TOP - #define wxBC_BOTTOM wxNB_BOTTOM - #define wxBC_LEFT wxNB_LEFT - #define wxBC_RIGHT wxNB_RIGHT - #define wxBC_DEFAULT wxNB_DEFAULT #else // dedicated to Smartphones #include "wx/choicebk.h" @@ -276,11 +303,14 @@ private: #define wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGING wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING #define EVT_BOOKCTRL_PAGE_CHANGED(id, fn) EVT_CHOICEBOOK_PAGE_CHANGED(id, fn) #define EVT_BOOKCTRL_PAGE_CHANGING(id, fn) EVT_CHOICEBOOK_PAGE_CHANGING(id, fn) - #define wxBC_TOP wxCHB_TOP - #define wxBC_BOTTOM wxCHB_BOTTOM - #define wxBC_LEFT wxCHB_LEFT - #define wxBC_RIGHT wxCHB_RIGHT - #define wxBC_DEFAULT wxCHB_DEFAULT +#endif + +#if WXWIN_COMPATIBILITY_2_6 + #define wxBC_TOP wxBK_TOP + #define wxBC_BOTTOM wxBK_BOTTOM + #define wxBC_LEFT wxBK_LEFT + #define wxBC_RIGHT wxBK_RIGHT + #define wxBC_DEFAULT wxBK_DEFAULT #endif #endif // wxUSE_BOOKCTRL