X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/340e9651e1ee6938ee797ea15f4c1fbdab8a6f44..92c0fc34c104c8d7c12d6a3b78ea232690fc23f4:/interface/wx/bookctrl.h diff --git a/interface/wx/bookctrl.h b/interface/wx/bookctrl.h index 03777305d7..8545629faa 100644 --- a/interface/wx/bookctrl.h +++ b/interface/wx/bookctrl.h @@ -2,10 +2,45 @@ // Name: bookctrl.h // Purpose: interface of wxBookCtrlBase // Author: wxWidgets team -// RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +/** + Bit flags returned by wxBookCtrl::HitTest(). + + Notice that wxOSX currently only returns wxBK_HITTEST_ONLABEL or + wxBK_HITTEST_NOWHERE and never the other values, so you should only test + for these two in the code that should be portable under OS X. + */ +enum +{ + /// No tab at the specified point. + wxBK_HITTEST_NOWHERE = 1, + + /// The point is over an icon. + wxBK_HITTEST_ONICON = 2, + + /// The point is over a tab label. + wxBK_HITTEST_ONLABEL = 4, + + /// The point if over a tab item but not over its icon or label. + wxBK_HITTEST_ONITEM = wxBK_HITTEST_ONICON | wxBK_HITTEST_ONLABEL, + + /// The point is over the page area. + wxBK_HITTEST_ONPAGE = 8 +}; + +/** + wxBookCtrl flags (common for wxNotebook, wxListbook, wxChoicebook, wxTreebook) +*/ +#define wxBK_DEFAULT 0x0000 +#define wxBK_TOP 0x0010 +#define wxBK_BOTTOM 0x0020 +#define wxBK_LEFT 0x0040 +#define wxBK_RIGHT 0x0080 +#define wxBK_ALIGN_MASK (wxBK_TOP | wxBK_BOTTOM | wxBK_LEFT | wxBK_RIGHT) + + /** @class wxBookCtrlBase @@ -23,13 +58,19 @@ This is a pure virtual class so you cannot allocate it directly. @library{wxcore} - @category{miscwnd} + @category{bookctrl} @see @ref overview_bookctrl */ -class wxBookCtrlBase : public wxControl +class wxBookCtrlBase : public wxControl, public wxWithImages { public: + enum + { + /// Symbolic constant indicating that no image should be used. + NO_IMAGE = -1 + }; + /** Default ctor. */ @@ -65,38 +106,17 @@ public: */ //@{ - /** - Sets the image list for the page control and takes ownership of the list. - - @see wxImageList, SetImageList() - */ - void AssignImageList(wxImageList* imageList); - - /** - Returns the associated image list. - - @see wxImageList, SetImageList() - */ - wxImageList* GetImageList() const; /** Returns the image index for the given page. */ - virtual int GetPageImage(size_t nPage) const; - - /** - Sets the image list for the page control. - It does not take ownership of the image list, you must delete it yourself. - - @see wxImageList, AssignImageList() - */ - virtual void SetImageList(wxImageList* imageList); + virtual int GetPageImage(size_t nPage) const = 0; /** Sets the image index for the given page. @a image is an index into the image list which was set with SetImageList(). */ - virtual bool SetPageImage(size_t page, int image); + virtual bool SetPageImage(size_t page, int image) = 0; //@} @@ -146,16 +166,15 @@ public: wxWindow* GetCurrentPage() const; /** - Sets the selection for the given page, returning the previous selection. - The call to this function generates the page changing events. + Sets the selection to the given page, returning the previous selection. - @deprecated - This function is deprecated and should not be used in new code. - Please use the ChangeSelection() function instead. + Notice that the call to this function generates the page changing + events, use the ChangeSelection() function if you don't want these + events to be generated. @see GetSelection() */ - virtual int SetSelection(size_t page); + virtual int SetSelection(size_t page) = 0; /** Cycles through the tabs. @@ -164,13 +183,25 @@ public: void AdvanceSelection(bool forward = true); /** - Changes the selection for the given page, returning the previous selection. + Changes the selection to the given page, returning the previous selection. + + This function behaves as SetSelection() but does @em not generate the + page changing events. - The call to this function does NOT generate the page changing events. - This is the only difference with SetSelection(). - See @ref overview_eventhandling_prog for more infomation. + See @ref overview_events_prog for more information. */ - virtual int ChangeSelection(size_t page); + virtual int ChangeSelection(size_t page) = 0; + + /** + Returns the index of the specified tab window or @c wxNOT_FOUND + if not found. + + @param page One of the control pages. + @return The zero-based tab index or @c wxNOT_FOUND if not found. + + @since 2.9.5 + */ + int FindPage(const wxWindow* page) const; //@} @@ -191,19 +222,10 @@ public: @param pt Specifies the point for the hit test. @param flags - Return value for detailed information. One of the following values: - - - - - - - - - - -
wxBK_HITTEST_NOWHEREThere was no tab under this point.
wxBK_HITTEST_ONICONThe point was over an icon (currently wxMSW only).
wxBK_HITTEST_ONLABELThe point was over a label (currently wxMSW only).
wxBK_HITTEST_ONITEMThe point was over an item, but not on the label or icon.
wxBK_HITTEST_ONPAGEThe point was over a currently selected page, not over any tab. - Note that this flag is present only if wxNOT_FOUND is returned.
+ Return more details about the point, see returned value is a + combination of ::wxBK_HITTEST_NOWHERE, ::wxBK_HITTEST_ONICON, + ::wxBK_HITTEST_ONLABEL, ::wxBK_HITTEST_ONITEM, + ::wxBK_HITTEST_ONPAGE. @return Returns the zero-based tab index or @c wxNOT_FOUND if there is no tab at the specified position. @@ -221,6 +243,10 @@ public: /** Adds a new page. + + The page must have the book control itself as the parent and must not + have been added to this control previously. + The call to this function may generate the page changing events. @param page @@ -238,10 +264,8 @@ public: @see InsertPage() */ - bool AddPage(wxWindow* page, - const wxString& text, - bool select = false, - int imageId = wxNOT_FOUND); + virtual bool AddPage(wxWindow* page, const wxString& text, + bool select = false, int imageId = NO_IMAGE); /** Deletes all pages. @@ -252,7 +276,7 @@ public: Deletes the specified page, and the associated window. The call to this function generates the page changing events. */ - bool DeletePage(size_t page); + virtual bool DeletePage(size_t page); /** Inserts a new page at the specified position. @@ -278,22 +302,22 @@ public: wxWindow* page, const wxString& text, bool select = false, - int imageId = wxNOT_FOUND) = 0; + int imageId = NO_IMAGE) = 0; /** Deletes the specified page, without deleting the associated window. */ - bool RemovePage(size_t page); + virtual bool RemovePage(size_t page); /** Returns the number of pages in the control. */ - size_t GetPageCount() const; + virtual size_t GetPageCount() const; /** Returns the window at the given page position. */ - wxWindow* GetPage(size_t page); + wxWindow* GetPage(size_t page) const; //@} @@ -336,12 +360,19 @@ public: */ }; +/** + wxBookCtrl is defined to one of the 'real' book controls. + + See @ref overview_bookctrl for more info. +*/ +#define wxBookCtrl TheBestBookCtrlForTheCurrentPlatform + /** @class wxBookCtrlEvent This class represents the events generated by book controls (wxNotebook, - wxListbook, wxChoicebook, wxTreebook). + wxListbook, wxChoicebook, wxTreebook, wxAuiNotebook). The PAGE_CHANGING events are sent before the current page is changed. It allows the program to examine the current page (which can be retrieved @@ -358,9 +389,9 @@ public: probably unnecessary to process both events at once. @library{wxcore} - @category{events} + @category{events,bookctrl} - @see wxNotebook, wxListbook, wxChoicebook, wxTreebook, wxToolbook + @see wxNotebook, wxListbook, wxChoicebook, wxTreebook, wxToolbook, wxAuiNotebook */ class wxBookCtrlEvent : public wxNotifyEvent {