| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        bookctrl.h
 
- // Purpose:     interface of wxBookCtrlBase
 
- // Author:      wxWidgets team
 
- // 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
 
-     A book control is a convenient way of displaying multiple pages of information,
 
-     displayed one page at a time. wxWidgets has five variants of this control:
 
-     @li wxChoicebook: controlled by a wxChoice
 
-     @li wxListbook: controlled by a wxListCtrl
 
-     @li wxNotebook: uses a row of tabs
 
-     @li wxTreebook: controlled by a wxTreeCtrl
 
-     @li wxToolbook: controlled by a wxToolBar
 
-     This abstract class is the parent of all these book controls, and provides
 
-     their basic interface.
 
-     This is a pure virtual class so you cannot allocate it directly.
 
-     @library{wxcore}
 
-     @category{bookctrl}
 
-     @see @ref overview_bookctrl
 
- */
 
- class wxBookCtrlBase : public wxControl, public wxWithImages
 
- {
 
- public:
 
-     enum
 
-     {
 
-         /// Symbolic constant indicating that no image should be used.
 
-         NO_IMAGE = -1
 
-     };
 
-     /**
 
-         Default ctor.
 
-     */
 
-     wxBookCtrlBase();
 
-     /**
 
-         Constructs the book control with the given parameters.
 
-         See Create() for two-step construction.
 
-     */
 
-     wxBookCtrlBase(wxWindow *parent,
 
-                    wxWindowID winid,
 
-                    const wxPoint& pos = wxDefaultPosition,
 
-                    const wxSize& size = wxDefaultSize,
 
-                    long style = 0,
 
-                    const wxString& name = wxEmptyString);
 
-     /**
 
-         Constructs the book control with the given parameters.
 
-     */
 
-     bool Create(wxWindow *parent,
 
-                 wxWindowID winid,
 
-                 const wxPoint& pos = wxDefaultPosition,
 
-                 const wxSize& size = wxDefaultSize,
 
-                 long style = 0,
 
-                 const wxString& name = wxEmptyString);
 
-     /**
 
-         @name Image list functions
 
-         Each page may have an attached image.
 
-         The functions of this group manipulate that image.
 
-     */
 
-     //@{
 
-     /**
 
-         Returns the image index for the given page.
 
-     */
 
-     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) = 0;
 
-     //@}
 
-     /**
 
-         @name Page text functions
 
-         Each page has a text string attached.
 
-         The functions of this group manipulate that text.
 
-     */
 
-     //@{
 
-     /**
 
-         Returns the string for the given page.
 
-     */
 
-     virtual wxString GetPageText(size_t nPage) const = 0;
 
-     /**
 
-         Sets the text for the given page.
 
-     */
 
-     virtual bool SetPageText(size_t page, const wxString& text) = 0;
 
-     //@}
 
-     /**
 
-         @name Selection functions
 
-         The functions of this group manipulate the selection.
 
-     */
 
-     //@{
 
-     /**
 
-         Returns the currently selected page, or @c wxNOT_FOUND if none was selected.
 
-         Note that this method may return either the previously or newly
 
-         selected page when called from the @c EVT_BOOKCTRL_PAGE_CHANGED handler
 
-         depending on the platform and so wxBookCtrlEvent::GetSelection should be
 
-         used instead in this case.
 
-     */
 
-     virtual int GetSelection() const = 0;
 
-     /**
 
-         Returns the currently selected page or @NULL.
 
-     */
 
-     wxWindow* GetCurrentPage() const;
 
-     /**
 
-         Sets the selection to the given page, returning the previous selection.
 
-         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) = 0;
 
-     /**
 
-         Cycles through the tabs.
 
-         The call to this function generates the page changing events.
 
-     */
 
-     void AdvanceSelection(bool forward = true);
 
-     /**
 
-         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.
 
-         See @ref overview_events_prog for more information.
 
-     */
 
-     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;
 
-     //@}
 
-     /**
 
-         Sets the width and height of the pages.
 
-         @note This method is currently not implemented for wxGTK.
 
-     */
 
-     virtual void SetPageSize(const wxSize& size);
 
-     /**
 
-         Returns the index of the tab at the specified position or @c wxNOT_FOUND
 
-         if none. If @a flags parameter is non-@NULL, the position of the point
 
-         inside the tab is returned as well.
 
-         @param pt
 
-             Specifies the point for the hit test.
 
-         @param flags
 
-             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.
 
-     */
 
-     virtual int HitTest(const wxPoint& pt, long* flags = NULL) const;
 
-     /**
 
-         @name Page management functions
 
-         Functions for adding/removing pages from this control.
 
-     */
 
-     //@{
 
-     /**
 
-         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
 
-             Specifies the new page.
 
-         @param text
 
-             Specifies the text for the new page.
 
-         @param select
 
-             Specifies whether the page should be selected.
 
-         @param imageId
 
-             Specifies the optional image index for the new page.
 
-         @return @true if successful, @false otherwise.
 
-         @remarks Do not delete the page, it will be deleted by the book control.
 
-         @see InsertPage()
 
-     */
 
-     virtual bool AddPage(wxWindow* page, const wxString& text,
 
-                          bool select = false, int imageId = NO_IMAGE);
 
-     /**
 
-         Deletes all pages.
 
-     */
 
-     virtual bool DeleteAllPages();
 
-     /**
 
-         Deletes the specified page, and the associated window.
 
-         The call to this function generates the page changing events.
 
-     */
 
-     virtual bool DeletePage(size_t page);
 
-     /**
 
-         Inserts a new page at the specified position.
 
-         @param index
 
-             Specifies the position for the new page.
 
-         @param page
 
-             Specifies the new page.
 
-         @param text
 
-             Specifies the text for the new page.
 
-         @param select
 
-             Specifies whether the page should be selected.
 
-         @param imageId
 
-             Specifies the optional image index for the new page.
 
-         @return @true if successful, @false otherwise.
 
-         @remarks Do not delete the page, it will be deleted by the book control.
 
-         @see AddPage()
 
-     */
 
-     virtual bool InsertPage(size_t index,
 
-                             wxWindow* page,
 
-                             const wxString& text,
 
-                             bool select = false,
 
-                             int imageId = NO_IMAGE) = 0;
 
-     /**
 
-         Deletes the specified page, without deleting the associated window.
 
-     */
 
-     virtual bool RemovePage(size_t page);
 
-     /**
 
-         Returns the number of pages in the control.
 
-     */
 
-     virtual size_t GetPageCount() const;
 
-     /**
 
-         Returns the window at the given page position.
 
-     */
 
-     wxWindow* GetPage(size_t page) const;
 
-     //@}
 
- /*
 
-     other functions which may be worth documenting:
 
-     // geometry
 
-     // --------
 
-     // 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
 
-     unsigned int GetInternalBorder() const { return m_internalBorder; }
 
-     void SetInternalBorder(unsigned int border) { m_internalBorder = border; }
 
-     // Sets/gets the margin around the controller
 
-     void SetControlMargin(int margin) { m_controlMargin = margin; }
 
-     int GetControlMargin() const { return m_controlMargin; }
 
-     // returns true if we have wxBK_TOP or wxBK_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; }
 
-     // returns the sizer containing the control, if any
 
-     wxSizer* GetControlSizer() const { return m_controlSizer; }
 
-     // we do have multiple pages
 
-     virtual bool HasMultiplePages() const { return true; }
 
-     // we don't want focus for ourselves
 
-     virtual bool AcceptsFocus() const { return false; }
 
-     // returns true if the platform should explicitly apply a theme border
 
-     virtual bool CanApplyThemeBorder() const { return false; }
 
- */
 
- };
 
- /**
 
-     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, 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
 
-     with wxBookCtrlEvent::GetOldSelection) and to veto the page change by calling
 
-     wxNotifyEvent::Veto if, for example, the current values in the controls
 
-     of the old page are invalid.
 
-     The PAGE_CHANGED events are sent after the page has been changed and the
 
-     program cannot veto it any more, it just informs it about the page change.
 
-     To summarize, if the program is interested in validating the page values
 
-     before allowing the user to change it, it should process the PAGE_CHANGING
 
-     event, otherwise PAGE_CHANGED is probably enough. In any case, it is
 
-     probably unnecessary to process both events at once.
 
-     @library{wxcore}
 
-     @category{events,bookctrl}
 
-     @see wxNotebook, wxListbook, wxChoicebook, wxTreebook, wxToolbook, wxAuiNotebook
 
- */
 
- class wxBookCtrlEvent : public wxNotifyEvent
 
- {
 
- public:
 
-     /**
 
-         Constructor (used internally by wxWidgets only).
 
-     */
 
-     wxBookCtrlEvent(wxEventType eventType = wxEVT_NULL, int id = 0,
 
-                     int sel = wxNOT_FOUND, int oldSel = wxNOT_FOUND);
 
-     /**
 
-         Returns the page that was selected before the change, @c wxNOT_FOUND if
 
-         none was selected.
 
-     */
 
-     int GetOldSelection() const;
 
-     /**
 
-         Returns the currently selected page, or @c wxNOT_FOUND if none was
 
-         selected.
 
-         @note under Windows, GetSelection() will return the same value as
 
-               GetOldSelection() when called from the @c EVT_BOOKCTRL_PAGE_CHANGING
 
-               handler and not the page which is going to be selected.
 
-     */
 
-     int GetSelection() const;
 
-     /**
 
-         Sets the id of the page selected before the change.
 
-     */
 
-     void SetOldSelection(int page);
 
-     /**
 
-         Sets the selection member variable.
 
-     */
 
-     void SetSelection(int page);
 
- };
 
 
  |