X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/eca15c0d5497309e402d4bb91f8e479b4fb70fa9..9a71e770e1dd7049e762d95e3b4c8876d1258a0c:/include/wx/bookctrl.h diff --git a/include/wx/bookctrl.h b/include/wx/bookctrl.h index 347dc6ba0c..5d09ad2d9a 100644 --- a/include/wx/bookctrl.h +++ b/include/wx/bookctrl.h @@ -118,6 +118,22 @@ public: // calculate the size of the control from the size of its page virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const = 0; + // get/set size of area between book control area and page area + inline unsigned int GetInternalBorder() const + { + return m_internalBorder; + } + void SetInternalBorder(unsigned int internalBorder) + { + 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 // ---------- @@ -192,12 +208,11 @@ protected: // helper: get the next page wrapping if we reached the end int GetNextPage(bool forward) const; - // common part of all ctors - void Init(); - // 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; @@ -208,8 +223,30 @@ 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 + void Init(); + + // internal border + unsigned int m_internalBorder; + + DECLARE_ABSTRACT_CLASS(wxBookCtrlBase) DECLARE_NO_COPY_CLASS(wxBookCtrlBase) + DECLARE_EVENT_TABLE() }; // ---------------------------------------------------------------------------- @@ -222,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) @@ -250,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" @@ -264,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