Add skeleton documentation for wxAuiNotebook-related classes.

Closes #14386.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71907 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-06-30 23:41:23 +00:00
parent 7447d53c35
commit c55488dfff
6 changed files with 676 additions and 25 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -16,8 +16,11 @@ Classes:
@li wxAuiNotebook
@li wxAuiDockArt
@li wxAuiTabArt
@li wxAuiDefaultTabArt
@li wxAuiToolBar
@li wxAuiToolBarArt
@li wxAuiTabContainer
@li wxAuiTabContainerButton
wxAUI stands for Advanced User Interface. It aims to give the user a cutting
edge interface with floatable windows, and a user-customizable layout. The

View File

@@ -9,7 +9,9 @@
/**
@class wxAuiNotebook
wxAuiNotebook is part of the wxAUI class framework.
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
@@ -368,14 +370,138 @@ public:
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 class.
Tab art provider defines all the drawing functions used by wxAuiNotebook.
@todo BETTER DESCRIPTION NEEDED
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}
@@ -523,3 +649,202 @@ public:
wxEvent *Clone();
};
/**
Default art provider for wxAuiNotebook.
@see wxAuiTabArt
@genericAppearance{auidefaulttabart.png}
@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.png}
@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;
};

View File

@@ -8,66 +8,171 @@
/**
@todo TOWRITE
These are the possible pane dock art settings for wxAuiDefaultDockArt.
@library{wxaui}
@category{aui}
*/
enum wxAuiPaneDockArtSetting
{
/// Customizes the sash size
wxAUI_DOCKART_SASH_SIZE = 0,
/// Customizes the caption size
wxAUI_DOCKART_CAPTION_SIZE = 1,
/// Customizes the gripper size
wxAUI_DOCKART_GRIPPER_SIZE = 2,
/// Customizes the pane border size
wxAUI_DOCKART_PANE_BORDER_SIZE = 3,
/// Customizes the pane button size
wxAUI_DOCKART_PANE_BUTTON_SIZE = 4,
/// Customizes the background colour, which corresponds to the client area.
wxAUI_DOCKART_BACKGROUND_COLOUR = 5,
/// Customizes the sash colour
wxAUI_DOCKART_SASH_COLOUR = 6,
/// Customizes the active caption colour
wxAUI_DOCKART_ACTIVE_CAPTION_COLOUR = 7,
/// Customizes the active caption gradient colour
wxAUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR = 8,
/// Customizes the inactive caption colour
wxAUI_DOCKART_INACTIVE_CAPTION_COLOUR = 9,
/// Customizes the inactive gradient caption colour
wxAUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR = 10,
/// Customizes the active caption text colour
wxAUI_DOCKART_ACTIVE_CAPTION_TEXT_COLOUR = 11,
/// Customizes the inactive caption text colour
wxAUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR = 12,
/// Customizes the border colour
wxAUI_DOCKART_BORDER_COLOUR = 13,
/// Customizes the gripper colour
wxAUI_DOCKART_GRIPPER_COLOUR = 14,
/// Customizes the caption font
wxAUI_DOCKART_CAPTION_FONT = 15,
/// Customizes the gradient type (no gradient, vertical or horizontal)
wxAUI_DOCKART_GRADIENT_TYPE = 16
};
/**
@todo TOWRITE
These are the possible gradient dock art settings for wxAuiDefaultDockArt
*/
enum wxAuiPaneDockArtGradients
{
/// No gradient on the captions, in other words a solid colour
wxAUI_GRADIENT_NONE = 0,
/// Vertical gradient on the captions, in other words a gradal change in colours from top to bottom
wxAUI_GRADIENT_VERTICAL = 1,
/// Horizontal gradient on the captions, in other words a gradual change in colours from left to right
wxAUI_GRADIENT_HORIZONTAL = 2
};
/**
@todo TOWRITE
These are the possible pane button / wxAuiNotebook button / wxAuiToolBar button states.
*/
enum wxAuiPaneButtonState
{
/// Normal button state
wxAUI_BUTTON_STATE_NORMAL = 0,
wxAUI_BUTTON_STATE_HOVER = 1,
wxAUI_BUTTON_STATE_PRESSED = 2
/// Hovered button state
wxAUI_BUTTON_STATE_HOVER = 1 << 1,
/// Pressed button state
wxAUI_BUTTON_STATE_PRESSED = 1 << 2,
/// Disabled button state
wxAUI_BUTTON_STATE_DISABLED = 1 << 3,
/// Hidden button state
wxAUI_BUTTON_STATE_HIDDEN = 1 << 4,
/// Checked button state
wxAUI_BUTTON_STATE_CHECKED = 1 << 5
};
/**
@todo TOWRITE
These are the possible pane button / wxAuiNotebook button / wxAuiToolBar button identifiers.
*/
enum wxAuiButtonId
{
/// Shows a close button on the pane
wxAUI_BUTTON_CLOSE = 101,
/// Shows a maximize/restore button on the pane
wxAUI_BUTTON_MAXIMIZE_RESTORE = 102,
/// Shows a minimize button on the pane
wxAUI_BUTTON_MINIMIZE = 103,
/**
Shows a pin button on the pane
*/
wxAUI_BUTTON_PIN = 104,
/**
Shows an option button on the pane (not implemented)
*/
wxAUI_BUTTON_OPTIONS = 105,
/**
Shows a window list button on the pane (for wxAuiNotebook)
*/
wxAUI_BUTTON_WINDOWLIST = 106,
wxAUI_BUTTON_LEFT = 107,
wxAUI_BUTTON_RIGHT = 108,
/**
Shows a left button on the pane (for wxAuiNotebook)
*/
wxAUI_BUTTON_LEFT = 107,
/**
Shows a right button on the pane (for wxAuiNotebook)
*/
wxAUI_BUTTON_RIGHT = 108,
/**
Shows an up button on the pane (not implemented)
*/
wxAUI_BUTTON_UP = 109,
/**
Shows a down button on the pane (not implemented)
*/
wxAUI_BUTTON_DOWN = 110,
/**
Shows one of three possible custom buttons on the pane (not implemented)
*/
wxAUI_BUTTON_CUSTOM1 = 201,
/**
Shows one of three possible custom buttons on the pane (not implemented)
*/
wxAUI_BUTTON_CUSTOM2 = 202,
/**
Shows one of three possible custom buttons on the pane (not implemented)
*/
wxAUI_BUTTON_CUSTOM3 = 203
};

View File

@@ -8,54 +8,125 @@
///////////////////////////////////////////////////////////////////////////////
/**
wxAuiToolBarStyle is part of the wxAUI class framework, used to define the appearance of a wxAuiToolBar.
See also @ref overview_aui.
@library{wxaui}
@category{aui}
*/
enum wxAuiToolBarStyle
{
/**
Shows the text in the toolbar buttons; by default only icons are shown.
*/
wxAUI_TB_TEXT = 1 << 0,
/**
Don't show tooltips on wxAuiToolBar items.
*/
wxAUI_TB_NO_TOOLTIPS = 1 << 1,
/**
Do not auto-resize the wxAuiToolBar.
*/
wxAUI_TB_NO_AUTORESIZE = 1 << 2,
/**
Shows a gripper on the wxAuiToolBar.
*/
wxAUI_TB_GRIPPER = 1 << 3,
/**
The wxAuiToolBar can contain overflow items.
*/
wxAUI_TB_OVERFLOW = 1 << 4,
/**
Using this style forces the toolbar to be vertical and be only dockable
to the left or right sides of the window whereas by default it can be
horizontal or vertical and be docked anywhere.
*/
Using this style forces the toolbar to be vertical and be only dockable to the left or right sides of the window whereas by default it can be horizontal or vertical and be docked anywhere.
*/
wxAUI_TB_VERTICAL = 1 << 5,
wxAUI_TB_HORZ_LAYOUT = 1 << 6,
/**
Analogous to wxAUI_TB_VERTICAL, but forces the toolbar
to be horizontal
*/
Shows the text and the icons alongside, not vertically stacked. This style must be used with wxAUI_TB_TEXT
*/
wxAUI_TB_HORZ_LAYOUT = 1 << 6,
/**
Analogous to wxAUI_TB_VERTICAL, but forces the toolbar to be horizontal, docking to the top or bottom of the window.
*/
wxAUI_TB_HORIZONTAL = 1 << 7,
/**
Shows the text alongside the icons, not vertically stacked.
*/
wxAUI_TB_HORZ_TEXT = (wxAUI_TB_HORZ_LAYOUT | wxAUI_TB_TEXT),
/**
Shows the text in the toolbar buttons; by default only icons are shown.
*/
wxAUI_ORIENTATION_MASK = (wxAUI_TB_VERTICAL | wxAUI_TB_HORIZONTAL),
/**
By default only icons are shown.
*/
wxAUI_TB_DEFAULT_STYLE = 0
};
/**
@library{wxaui}
@category{aui}
*/
wxAuiToolBarArtSetting
@library{wxaui}
@category{aui}
*/
enum wxAuiToolBarArtSetting
{
/**
wxAuiToolBar seperator size.
*/
wxAUI_TBART_SEPARATOR_SIZE = 0,
/**
wxAuiToolBar gripper size.
*/
wxAUI_TBART_GRIPPER_SIZE = 1,
/**
Overflow button size in wxAuiToolBar.
*/
wxAUI_TBART_OVERFLOW_SIZE = 2
};
/**
wxAuiToolBarToolTextOrientation
@library{wxaui}
@category{aui}
*/
enum wxAuiToolBarToolTextOrientation
{
wxAUI_TBTOOL_TEXT_LEFT = 0, //!< unused/unimplemented
/**
Text in wxAuiToolBar items is left aligned, currently unused/unimplemented.
*/
wxAUI_TBTOOL_TEXT_LEFT = 0,
/**
Text in wxAuiToolBar items is right aligned.
*/
wxAUI_TBTOOL_TEXT_RIGHT = 1,
wxAUI_TBTOOL_TEXT_TOP = 2, //!< unused/unimplemented
/**
Text in wxAuiToolBar items is top aligned, currently unused/unimplemented.
*/
wxAUI_TBTOOL_TEXT_TOP = 2,
/**
Text in wxAuiToolBar items is bottom aligned.
*/
wxAUI_TBTOOL_TEXT_BOTTOM = 3
};
@@ -70,12 +141,24 @@ enum wxAuiToolBarToolTextOrientation
class wxAuiToolBarEvent : public wxNotifyEvent
{
public:
/**
Returns whether the drop down menu has been clicked.
*/
bool IsDropDownClicked() const;
/**
Returns the point where the user clicked with the mouse.
*/
wxPoint GetClickPoint() const;
/**
Returns the wxAuiToolBarItem rectangle bounding the mouse click point.
*/
wxRect GetItemRect() const;
/**
Returns the wxAuiToolBarItem identifier.
*/
int GetToolId() const;
};
@@ -83,9 +166,17 @@ public:
/**
@class wxAuiToolBarItem
wxAuiToolBarItem is part of the wxAUI class framework.
wxAuiToolBarItem is part of the wxAUI class framework, representing a toolbar element.
See also @ref wxAuiToolBar and @ref overview_aui.
It has a unique id (except for the separators which always have id = -1), the
style (telling whether it is a normal button, separator or a control), the
state (toggled or not, enabled or not) and short and long help strings. The
default implementations use the short help string for the tooltip text which
is popped up when the mouse pointer enters the tool and the long help string
for the applications status bar (currently not implemented).
@library{wxaui}
@category{aui}
*/
@@ -93,69 +184,196 @@ class wxAuiToolBarItem
{
public:
/**
Default Constructor
*/
wxAuiToolBarItem();
/**
Assigns the properties of the wxAuiToolBarItem "c" to this.
*/
wxAuiToolBarItem(const wxAuiToolBarItem& c);
/**
Assigns the properties of the wxAuiToolBarItem "c" to this, returning a pointer to this.
*/
wxAuiToolBarItem& operator=(const wxAuiToolBarItem& c);
/**
Assigns the properties of the wxAuiToolBarItem "c" to this.
*/
void Assign(const wxAuiToolBarItem& c);
/**
Assigns a window to the toolbar item.
*/
void SetWindow(wxWindow* w);
/**
Returns the wxWindow* associated to the toolbar item.
*/
wxWindow* GetWindow();
/**
Sets the toolbar item identifier.
*/
void SetId(int new_id);
/**
Returns the toolbar item identifier.
*/
int GetId() const;
/**
Sets the wxAuiToolBarItem kind.
*/
void SetKind(int new_kind);
/**
Returns the toolbar item kind.
*/
int GetKind() const;
/**
*/
void SetState(int new_state);
/**
*/
int GetState() const;
/**
*/
void SetSizerItem(wxSizerItem* s);
/**
*/
wxSizerItem* GetSizerItem() const;
/**
*/
void SetLabel(const wxString& s);
/**
*/
const wxString& GetLabel() const;
/**
*/
void SetBitmap(const wxBitmap& bmp);
/**
*/
const wxBitmap& GetBitmap() const;
/**
*/
void SetDisabledBitmap(const wxBitmap& bmp);
/**
*/
const wxBitmap& GetDisabledBitmap() const;
/**
*/
void SetHoverBitmap(const wxBitmap& bmp);
/**
*/
const wxBitmap& GetHoverBitmap() const;
/**
*/
void SetShortHelp(const wxString& s);
/**
*/
const wxString& GetShortHelp() const;
/**
*/
void SetLongHelp(const wxString& s);
/**
*/
const wxString& GetLongHelp() const;
/**
*/
void SetMinSize(const wxSize& s);
/**
*/
const wxSize& GetMinSize() const;
/**
*/
void SetSpacerPixels(int s);
/**
*/
int GetSpacerPixels() const;
/**
*/
void SetProportion(int p);
/**
*/
int GetProportion() const;
/**
*/
void SetActive(bool b);
/**
*/
bool IsActive() const;
/**
*/
void SetHasDropDown(bool b);
/**
*/
bool HasDropDown() const;
/**
*/
void SetSticky(bool b);
/**
*/
bool IsSticky() const;
/**
*/
void SetUserData(long l);
/**
*/
long GetUserData() const;
/**
*/
void SetAlignment(int l);
/**
*/
int GetAlignment() const;
};