| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: aui/auibook.h
- // Purpose: interface of wxAuiNotebook
- // Author: wxWidgets team
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- /**
- @class wxAuiNotebook
- wxAuiNotebook is part of the wxAUI class framework, which represents a
- notebook control, managing multiple windows with associated tabs.
- See also @ref overview_aui.
- wxAuiNotebook is a notebook control which implements many features common in
- applications with dockable panes.
- Specifically, wxAuiNotebook implements functionality which allows the user to
- rearrange tab order via drag-and-drop, split the tab window into many different
- splitter configurations, and toggle through different themes to customize
- the control's look and feel.
- The default theme that is used is wxAuiDefaultTabArt, which provides a modern,
- glossy look and feel.
- The theme can be changed by calling wxAuiNotebook::SetArtProvider.
- @beginStyleTable
- @style{wxAUI_NB_DEFAULT_STYLE}
- Defined as wxAUI_NB_TOP | wxAUI_NB_TAB_SPLIT | wxAUI_NB_TAB_MOVE |
- wxAUI_NB_SCROLL_BUTTONS | wxAUI_NB_CLOSE_ON_ACTIVE_TAB |
- wxAUI_NB_MIDDLE_CLICK_CLOSE.
- @style{wxAUI_NB_TAB_SPLIT}
- Allows the tab control to be split by dragging a tab.
- @style{wxAUI_NB_TAB_MOVE}
- Allows a tab to be moved horizontally by dragging.
- @style{wxAUI_NB_TAB_EXTERNAL_MOVE}
- Allows a tab to be moved to another tab control.
- @style{wxAUI_NB_TAB_FIXED_WIDTH}
- With this style, all tabs have the same width.
- @style{wxAUI_NB_SCROLL_BUTTONS}
- With this style, left and right scroll buttons are displayed.
- @style{wxAUI_NB_WINDOWLIST_BUTTON}
- With this style, a drop-down list of windows is available.
- @style{wxAUI_NB_CLOSE_BUTTON}
- With this style, a close button is available on the tab bar.
- @style{wxAUI_NB_CLOSE_ON_ACTIVE_TAB}
- With this style, the close button is visible on the active tab.
- @style{wxAUI_NB_CLOSE_ON_ALL_TABS}
- With this style, the close button is visible on all tabs.
- @style{wxAUI_NB_MIDDLE_CLICK_CLOSE}
- With this style, middle click on a tab closes the tab.
- @style{wxAUI_NB_TOP}
- With this style, tabs are drawn along the top of the notebook.
- @style{wxAUI_NB_BOTTOM}
- With this style, tabs are drawn along the bottom of the notebook.
- @endStyleTable
- @beginEventEmissionTable{wxAuiNotebookEvent}
- @event{EVT_AUINOTEBOOK_PAGE_CLOSE(id, func)}
- A page is about to be closed. Processes a @c wxEVT_AUINOTEBOOK_PAGE_CLOSE event.
- @event{EVT_AUINOTEBOOK_PAGE_CLOSED(winid, fn)}
- A page has been closed. Processes a @c wxEVT_AUINOTEBOOK_PAGE_CLOSED event.
- @event{EVT_AUINOTEBOOK_PAGE_CHANGED(id, func)}
- The page selection was changed. Processes a @c wxEVT_AUINOTEBOOK_PAGE_CHANGED event.
- @event{EVT_AUINOTEBOOK_PAGE_CHANGING(id, func)}
- The page selection is about to be changed. Processes a @c wxEVT_AUINOTEBOOK_PAGE_CHANGING event. This event can be vetoed.
- @event{EVT_AUINOTEBOOK_BUTTON(id, func)}
- The window list button has been pressed. Processes a @c wxEVT_AUINOTEBOOK_BUTTON event.
- @event{EVT_AUINOTEBOOK_BEGIN_DRAG(id, func)}
- Dragging is about to begin. Processes a @c wxEVT_AUINOTEBOOK_BEGIN_DRAG event.
- @event{EVT_AUINOTEBOOK_END_DRAG(id, func)}
- Dragging has ended. Processes a @c wxEVT_AUINOTEBOOK_END_DRAG event.
- @event{EVT_AUINOTEBOOK_DRAG_MOTION(id, func)}
- Emitted during a drag and drop operation. Processes a @c wxEVT_AUINOTEBOOK_DRAG_MOTION event.
- @event{EVT_AUINOTEBOOK_ALLOW_DND(id, func)}
- Whether to allow a tab to be dropped. Processes a @c wxEVT_AUINOTEBOOK_ALLOW_DND event. This event must be specially allowed.
- @event{EVT_AUINOTEBOOK_DRAG_DONE(winid, fn)}
- Notify that the tab has been dragged. Processes a @c wxEVT_AUINOTEBOOK_DRAG_DONE event.
- @event{EVT_AUINOTEBOOK_TAB_MIDDLE_DOWN(winid, fn)}
- The middle mouse button is pressed on a tab. Processes a @c wxEVT_AUINOTEBOOK_TAB_MIDDLE_DOWN event.
- @event{EVT_AUINOTEBOOK_TAB_MIDDLE_UP(winid, fn)}
- The middle mouse button is released on a tab. Processes a @c wxEVT_AUINOTEBOOK_TAB_MIDDLE_UP event.
- @event{EVT_AUINOTEBOOK_TAB_RIGHT_DOWN(winid, fn)}
- The right mouse button is pressed on a tab. Processes a @c wxEVT_AUINOTEBOOK_TAB_RIGHT_DOWN event.
- @event{EVT_AUINOTEBOOK_TAB_RIGHT_UP(winid, fn)}
- The right mouse button is released on a tab. Processes a @c wxEVT_AUINOTEBOOK_TAB_RIGHT_UP event.
- @event{EVT_AUINOTEBOOK_BG_DCLICK(winid, fn)}
- Double clicked on the tabs background area. Processes a @c wxEVT_AUINOTEBOOK_BG_DCLICK event.
- @endEventTable
- @library{wxaui}
- @category{aui}
- */
- class wxAuiNotebook : public wxBookCtrlBase
- {
- public:
- /**
- Default ctor.
- */
- wxAuiNotebook();
- /**
- Constructor. Creates a wxAuiNotebok control.
- */
- wxAuiNotebook(wxWindow* parent, wxWindowID id = wxID_ANY,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxAUI_NB_DEFAULT_STYLE);
- /**
- Adds a page.
- If the @a select parameter is @true, calling this will generate a page change event.
- */
- bool AddPage(wxWindow* page, const wxString& caption,
- bool select = false,
- const wxBitmap& bitmap = wxNullBitmap);
- /**
- 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()
- @since 2.9.3
- */
- virtual bool AddPage(wxWindow *page, const wxString &text, bool select, int imageId);
- /**
- Sets the selection to the next or previous page.
- */
- void AdvanceSelection(bool forward = true);
- /**
- Changes the selection for 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.
- @since 2.9.3
- */
- virtual int ChangeSelection(size_t n);
- /**
- Creates the notebook window.
- */
- bool Create(wxWindow* parent, wxWindowID id = wxID_ANY,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = 0);
- /**
- Deletes all pages.
- @since 2.9.3
- */
- virtual bool DeleteAllPages();
- /**
- Deletes a page at the given index.
- Calling this method will generate a page change event.
- */
- bool DeletePage(size_t page);
- /**
- Returns the associated art provider.
- */
- wxAuiTabArt* GetArtProvider() const;
- /**
- Returns the currently selected page or @NULL.
- @since 2.9.3
- */
- wxWindow* GetCurrentPage () const;
- /**
- Returns the desired height of the notebook for the given page height.
- Use this to fit the notebook to a given page size.
- */
- int GetHeightForPageHeight(int pageHeight);
- /**
- Returns the page specified by the given index.
- */
- wxWindow* GetPage(size_t page_idx) const;
- /**
- Returns the tab bitmap for the page.
- */
- wxBitmap GetPageBitmap(size_t page) const;
- /**
- Returns the number of pages in the notebook.
- */
- size_t GetPageCount() const;
- /**
- Returns the page index for the specified window.
- If the window is not found in the notebook, wxNOT_FOUND is returned.
- */
- int GetPageIndex(wxWindow* page_wnd) const;
- /**
- Returns the tab label for the page.
- */
- wxString GetPageText(size_t page) const;
- /**
- Returns the tooltip for the tab label of the page.
- @since 2.9.4
- */
- wxString GetPageToolTip(size_t pageIdx) const;
- /**
- Returns the currently selected page.
- */
- int GetSelection() const;
- /**
- Returns the height of the tab control.
- */
- int GetTabCtrlHeight() const;
- /**
- InsertPage() is similar to AddPage, but allows the ability to specify the
- insert location.
- If the @a select parameter is @true, calling this will generate a page change
- event.
- */
- bool InsertPage(size_t page_idx, wxWindow* page,
- const wxString& caption,
- bool select = false,
- const wxBitmap& bitmap = wxNullBitmap);
- /**
- 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()
- @since 2.9.3
- */
- virtual bool InsertPage(size_t index, wxWindow *page, const wxString &text,
- bool select=false, int imageId=NO_IMAGE);
- /**
- Removes a page, without deleting the window pointer.
- */
- bool RemovePage(size_t page);
- /**
- Sets the art provider to be used by the notebook.
- */
- void SetArtProvider(wxAuiTabArt* art);
- /**
- Sets the font for drawing the tab labels, using a bold version of the font for
- selected tab labels.
- */
- virtual bool SetFont(const wxFont& font);
- /**
- Sets the font for measuring tab labels.
- */
- void SetMeasuringFont(const wxFont& font);
- /**
- Sets the font for drawing unselected tab labels.
- */
- void SetNormalFont(const wxFont& font);
- /**
- Sets the bitmap for the page. To remove a bitmap from the tab caption, pass
- wxNullBitmap.
- */
- bool SetPageBitmap(size_t page, const wxBitmap& bitmap);
- /**
- Sets the image index for the given page. @a image is an index into
- the image list which was set with SetImageList().
- @since 2.9.3
- */
- virtual bool SetPageImage(size_t n, int imageId);
- /**
- Sets the tab label for the page.
- */
- bool SetPageText(size_t page, const wxString& text);
- /**
- Sets the tooltip displayed when hovering over the tab label of the page.
- @return
- @true if tooltip was updated, @false if it failed, e.g. because the
- page index is invalid.
- @since 2.9.4
- */
- bool SetPageToolTip(size_t page, const wxString& text);
- /**
- Sets the font for drawing selected tab labels.
- */
- void SetSelectedFont(const wxFont& font);
- /**
- Sets the page selection. Calling this method will generate a page change event.
- */
- size_t SetSelection(size_t new_page);
- /**
- Sets the tab height. By default, the tab control height is calculated
- by measuring the text height and bitmap sizes on the tab captions. Calling this
- method will override that calculation and set the tab control to the specified
- height parameter. A call to this method will override any call to
- SetUniformBitmapSize().
- Specifying -1 as the height will return the control to its default auto-sizing
- behaviour.
- */
- virtual void SetTabCtrlHeight(int height);
- //@{
- /**
- Split performs a split operation programmatically. The argument @a page
- indicates the page that will be split off. This page will also become the
- active page after the split.
- The @a direction argument specifies where the pane should go, it should be one
- of the following: wxTOP, wxBOTTOM, wxLEFT, or wxRIGHT.
- */
- virtual void SetUniformBitmapSize(const wxSize& size);
- virtual void Split(size_t page, int direction);
- //@}
- /**
- Shows the window menu for the active tab control associated with this notebook,
- and returns @true if a selection was made.
- */
- bool ShowWindowMenu();
- };
- /**
- @class wxAuiTabContainerButton
- A simple class which holds information about wxAuiNotebook tab buttons and their state.
- @library{wxaui}
- @category{aui}
- */
- class wxAuiTabContainerButton
- {
- public:
- /// button's id
- int id;
- /// current state (normal, hover, pressed, etc.)
- int curState;
- /// buttons location (wxLEFT, wxRIGHT, or wxCENTER)
- int location;
- /// button's hover bitmap
- wxBitmap bitmap;
- /// button's disabled bitmap
- wxBitmap disBitmap;
- /// button's hit rectangle
- wxRect rect;
- };
- /**
- @class wxAuiTabContainer
- wxAuiTabContainer is a class which contains information about each tab.
- It also can render an entire tab control to a specified DC.
- It's not a window class itself, because this code will be used by
- the wxAuiNotebook, where it is disadvantageous to have separate
- windows for each tab control in the case of "docked tabs".
- A derived class, wxAuiTabCtrl, is an actual wxWindow - derived window
- which can be used as a tab control in the normal sense.
- @library{wxaui}
- @category{aui}
- */
- class wxAuiTabContainer
- {
- public:
- /**
- Default ctor.
- */
- wxAuiTabContainer();
- /**
- Default dtor.
- */
- virtual ~wxAuiTabContainer();
- void SetArtProvider(wxAuiTabArt* art);
- wxAuiTabArt* GetArtProvider() const;
- void SetFlags(unsigned int flags);
- unsigned int GetFlags() const;
- bool AddPage(wxWindow* page, const wxAuiNotebookPage& info);
- bool InsertPage(wxWindow* page, const wxAuiNotebookPage& info, size_t idx);
- bool MovePage(wxWindow* page, size_t newIdx);
- bool RemovePage(wxWindow* page);
- bool SetActivePage(wxWindow* page);
- bool SetActivePage(size_t page);
- void SetNoneActive();
- int GetActivePage() const;
- bool TabHitTest(int x, int y, wxWindow** hit) const;
- bool ButtonHitTest(int x, int y, wxAuiTabContainerButton** hit) const;
- wxWindow* GetWindowFromIdx(size_t idx) const;
- int GetIdxFromWindow(wxWindow* page) const;
- size_t GetPageCount() const;
- wxAuiNotebookPage& GetPage(size_t idx);
- const wxAuiNotebookPage& GetPage(size_t idx) const;
- wxAuiNotebookPageArray& GetPages();
- void SetNormalFont(const wxFont& normalFont);
- void SetSelectedFont(const wxFont& selectedFont);
- void SetMeasuringFont(const wxFont& measuringFont);
- void SetColour(const wxColour& colour);
- void SetActiveColour(const wxColour& colour);
- void DoShowHide();
- void SetRect(const wxRect& rect);
- void RemoveButton(int id);
- void AddButton(int id,
- int location,
- const wxBitmap& normalBitmap = wxNullBitmap,
- const wxBitmap& disabledBitmap = wxNullBitmap);
- size_t GetTabOffset() const;
- void SetTabOffset(size_t offset);
- // Is the tab visible?
- bool IsTabVisible(int tabPage, int tabOffset, wxDC* dc, wxWindow* wnd);
- // Make the tab visible if it wasn't already
- void MakeTabVisible(int tabPage, wxWindow* win);
- protected:
- virtual void Render(wxDC* dc, wxWindow* wnd);
- protected:
- wxAuiTabArt* m_art;
- wxAuiNotebookPageArray m_pages;
- wxAuiTabContainerButtonArray m_buttons;
- wxAuiTabContainerButtonArray m_tabCloseButtons;
- wxRect m_rect;
- size_t m_tabOffset;
- unsigned int m_flags;
- };
- /**
- @class wxAuiTabArt
- Tab art provider defines all the drawing functions used by wxAuiNotebook.
- This allows the wxAuiNotebook to have a pluggable look-and-feel.
- By default, a wxAuiNotebook uses an instance of this class called
- wxAuiDefaultTabArt which provides bitmap art and a colour scheme that is
- adapted to the major platforms' look. You can either derive from that class
- to alter its behaviour or write a completely new tab art class.
- Another example of creating a new wxAuiNotebook tab bar is wxAuiSimpleTabArt.
- Call wxAuiNotebook::SetArtProvider() to make use of this new tab art.
- @library{wxaui}
- @category{aui}
- */
- class wxAuiTabArt
- {
- public:
- /**
- Constructor.
- */
- wxAuiTabArt();
- /**
- Clones the art object.
- */
- virtual wxAuiTabArt* Clone() = 0;
- /**
- Draws a background on the given area.
- */
- virtual void DrawBackground(wxDC& dc, wxWindow* wnd, const wxRect& rect) = 0;
- /**
- Draws a button.
- */
- virtual void DrawButton(wxDC& dc, wxWindow* wnd, const wxRect& in_rect,
- int bitmap_id, int button_state, int orientation,
- wxRect* out_rect) = 0;
- /**
- Draws a tab.
- */
- virtual void DrawTab(wxDC& dc, wxWindow* wnd, const wxAuiNotebookPage& page,
- const wxRect& rect, int close_button_state,
- wxRect* out_tab_rect, wxRect* out_button_rect, int* x_extent) = 0;
- /**
- Returns the tab control size.
- */
- virtual int GetBestTabCtrlSize(wxWindow*, const wxAuiNotebookPageArray&, const wxSize&) = 0;
- /**
- Returns the indent size.
- */
- virtual int GetIndentSize() = 0;
- /**
- Returns the tab size for the given caption, bitmap and state.
- */
- virtual wxSize GetTabSize(wxDC& dc, wxWindow* wnd, const wxString& caption,
- const wxBitmap& bitmap, bool active,
- int close_button_state, int* x_extent) = 0;
- /**
- Sets flags.
- */
- virtual void SetFlags(unsigned int flags) = 0;
- /**
- Sets the font used for calculating measurements.
- */
- virtual void SetMeasuringFont(const wxFont& font) = 0;
- /**
- Sets the normal font for drawing labels.
- */
- virtual void SetNormalFont(const wxFont& font) = 0;
- /**
- Sets the font for drawing text for selected UI elements.
- */
- virtual void SetSelectedFont(const wxFont& font) = 0;
- /**
- Sets the colour of the inactive tabs.
- @since 2.9.2
- */
- virtual void SetColour(const wxColour& colour) = 0;
- /**
- Sets the colour of the selected tab.
- @since 2.9.2
- */
- virtual void SetActiveColour(const wxColour& colour) = 0;
- /**
- Sets sizing information.
- */
- virtual void SetSizingInfo(const wxSize& tab_ctrl_size, size_t tab_count) = 0;
- };
- /**
- @class wxAuiNotebookEvent
- This class is used by the events generated by wxAuiNotebook.
- @beginEventEmissionTable{wxAuiNotebookEvent}
- @event{EVT_AUINOTEBOOK_PAGE_CLOSE(id, func)}
- A page is about to be closed. Processes a @c wxEVT_AUINOTEBOOK_PAGE_CLOSE event.
- @event{EVT_AUINOTEBOOK_PAGE_CLOSED(winid, fn)}
- A page has been closed. Processes a @c wxEVT_AUINOTEBOOK_PAGE_CLOSED event.
- @event{EVT_AUINOTEBOOK_PAGE_CHANGED(id, func)}
- The page selection was changed. Processes a @c wxEVT_AUINOTEBOOK_PAGE_CHANGED event.
- @event{EVT_AUINOTEBOOK_PAGE_CHANGING(id, func)}
- The page selection is about to be changed. Processes a @c wxEVT_AUINOTEBOOK_PAGE_CHANGING event. This event can be vetoed.
- @event{EVT_AUINOTEBOOK_BUTTON(id, func)}
- The window list button has been pressed. Processes a @c wxEVT_AUINOTEBOOK_BUTTON event.
- @event{EVT_AUINOTEBOOK_BEGIN_DRAG(id, func)}
- Dragging is about to begin. Processes a @c wxEVT_AUINOTEBOOK_BEGIN_DRAG event.
- @event{EVT_AUINOTEBOOK_END_DRAG(id, func)}
- Dragging has ended. Processes a @c wxEVT_AUINOTEBOOK_END_DRAG event.
- @event{EVT_AUINOTEBOOK_DRAG_MOTION(id, func)}
- Emitted during a drag and drop operation. Processes a @c wxEVT_AUINOTEBOOK_DRAG_MOTION event.
- @event{EVT_AUINOTEBOOK_ALLOW_DND(id, func)}
- Whether to allow a tab to be dropped. Processes a @c wxEVT_AUINOTEBOOK_ALLOW_DND event. This event must be specially allowed.
- @event{EVT_AUINOTEBOOK_DRAG_DONE(winid, fn)}
- Notify that the tab has been dragged. Processes a @c wxEVT_AUINOTEBOOK_DRAG_DONE event.
- @event{EVT_AUINOTEBOOK_TAB_MIDDLE_DOWN(winid, fn)}
- The middle mouse button is pressed on a tab. Processes a @c wxEVT_AUINOTEBOOK_TAB_MIDDLE_DOWN event.
- @event{EVT_AUINOTEBOOK_TAB_MIDDLE_UP(winid, fn)}
- The middle mouse button is released on a tab. Processes a @c wxEVT_AUINOTEBOOK_TAB_MIDDLE_UP event.
- @event{EVT_AUINOTEBOOK_TAB_RIGHT_DOWN(winid, fn)}
- The right mouse button is pressed on a tab. Processes a @c wxEVT_AUINOTEBOOK_TAB_RIGHT_DOWN event.
- @event{EVT_AUINOTEBOOK_TAB_RIGHT_UP(winid, fn)}
- The right mouse button is released on a tab. Processes a @c wxEVT_AUINOTEBOOK_TAB_RIGHT_UP event.
- @event{EVT_AUINOTEBOOK_BG_DCLICK(winid, fn)}
- Double clicked on the tabs background area. Processes a @c wxEVT_AUINOTEBOOK_BG_DCLICK event.
- @endEventTable
- @library{wxaui}
- @category{events,bookctrl}
- @see wxAuiNotebook, wxBookCtrlEvent
- */
- class wxAuiNotebookEvent : public wxBookCtrlEvent
- {
- public:
- /**
- Constructor.
- */
- wxAuiNotebookEvent(wxEventType command_type = wxEVT_NULL, int win_id = 0);
- wxEvent *Clone();
- };
- /**
- Default art provider for wxAuiNotebook.
- @see wxAuiTabArt
- @genericAppearance{auidefaulttabart}
- @library{wxaui}
- @category{aui}
- */
- class wxAuiDefaultTabArt : public wxAuiTabArt
- {
- public:
- wxAuiDefaultTabArt();
- virtual ~wxAuiDefaultTabArt();
- wxAuiTabArt* Clone();
- void SetFlags(unsigned int flags);
- void SetSizingInfo(const wxSize& tabCtrlSize,
- size_t tabCount);
- void SetNormalFont(const wxFont& font);
- void SetSelectedFont(const wxFont& font);
- void SetMeasuringFont(const wxFont& font);
- void SetColour(const wxColour& colour);
- void SetActiveColour(const wxColour& colour);
- void DrawBackground(
- wxDC& dc,
- wxWindow* wnd,
- const wxRect& rect);
- void DrawTab(wxDC& dc,
- wxWindow* wnd,
- const wxAuiNotebookPage& pane,
- const wxRect& inRect,
- int closeButtonState,
- wxRect* outTabRect,
- wxRect* outButtonRect,
- int* xExtent);
- void DrawButton(
- wxDC& dc,
- wxWindow* wnd,
- const wxRect& inRect,
- int bitmapId,
- int buttonState,
- int orientation,
- wxRect* outRect);
- int GetIndentSize();
- wxSize GetTabSize(
- wxDC& dc,
- wxWindow* wnd,
- const wxString& caption,
- const wxBitmap& bitmap,
- bool active,
- int closeButtonState,
- int* xExtent);
- int ShowDropDown(
- wxWindow* wnd,
- const wxAuiNotebookPageArray& items,
- int activeIdx);
- int GetBestTabCtrlSize(wxWindow* wnd,
- const wxAuiNotebookPageArray& pages,
- const wxSize& requiredBmpSize);
- protected:
- /**
- The font used for all tabs
- */
- wxFont m_normalFont;
- wxFont m_selectedFont; /// The font used on the selected tab
- wxFont m_measuringFont;
- wxColour m_baseColour;
- wxPen m_baseColourPen;
- wxPen m_borderPen;
- wxBrush m_baseColourBrush;
- wxColour m_activeColour;
- wxBitmap m_activeCloseBmp;
- wxBitmap m_disabledCloseBmp;
- wxBitmap m_activeLeftBmp;
- wxBitmap m_disabledLeftBmp;
- wxBitmap m_activeRightBmp;
- wxBitmap m_disabledRightBmp;
- wxBitmap m_activeWindowListBmp;
- wxBitmap m_disabledWindowListBmp;
- int m_fixedTabWidth;
- int m_tabCtrlHeight;
- unsigned int m_flags;
- };
- /**
- @class wxAuiSimpleTabArt
- Another standard tab art provider for wxAuiNotebook.
- wxAuiSimpleTabArt is derived from wxAuiTabArt demonstrating how to write a
- completely new tab art class. It can also be used as alternative to
- wxAuiDefaultTabArt.
- @genericAppearance{auisimpletabart}
- @library{wxaui}
- @category{aui}
- */
- class wxAuiSimpleTabArt : public wxAuiTabArt
- {
- public:
- wxAuiSimpleTabArt();
- virtual ~wxAuiSimpleTabArt();
- wxAuiTabArt* Clone();
- void SetFlags(unsigned int flags);
- void SetSizingInfo(const wxSize& tabCtrlSize,
- size_t tabCount);
- void SetNormalFont(const wxFont& font);
- void SetSelectedFont(const wxFont& font);
- void SetMeasuringFont(const wxFont& font);
- void SetColour(const wxColour& colour);
- void SetActiveColour(const wxColour& colour);
- void DrawBackground(
- wxDC& dc,
- wxWindow* wnd,
- const wxRect& rect);
- void DrawTab(wxDC& dc,
- wxWindow* wnd,
- const wxAuiNotebookPage& pane,
- const wxRect& inRect,
- int closeButtonState,
- wxRect* outTabRect,
- wxRect* outButtonRect,
- int* xExtent);
- void DrawButton(
- wxDC& dc,
- wxWindow* wnd,
- const wxRect& inRect,
- int bitmapId,
- int buttonState,
- int orientation,
- wxRect* outRect);
- int GetIndentSize();
- wxSize GetTabSize(
- wxDC& dc,
- wxWindow* wnd,
- const wxString& caption,
- const wxBitmap& bitmap,
- bool active,
- int closeButtonState,
- int* xExtent);
- int ShowDropDown(
- wxWindow* wnd,
- const wxAuiNotebookPageArray& items,
- int activeIdx);
- int GetBestTabCtrlSize(wxWindow* wnd,
- const wxAuiNotebookPageArray& pages,
- const wxSize& requiredBmpSize);
- protected:
- wxFont m_normalFont;
- wxFont m_selectedFont;
- wxFont m_measuringFont;
- wxPen m_normalBkPen;
- wxPen m_selectedBkPen;
- wxBrush m_normalBkBrush;
- wxBrush m_selectedBkBrush;
- wxBrush m_bkBrush;
- wxBitmap m_activeCloseBmp;
- wxBitmap m_disabledCloseBmp;
- wxBitmap m_activeLeftBmp;
- wxBitmap m_disabledLeftBmp;
- wxBitmap m_activeRightBmp;
- wxBitmap m_disabledRightBmp;
- wxBitmap m_activeWindowListBmp;
- wxBitmap m_disabledWindowListBmp;
- int m_fixedTabWidth;
- unsigned int m_flags;
- };
|