]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/notebook.h
Add screenshots for wxNotebook, wxChoicebook, wxListbook
[wxWidgets.git] / interface / wx / notebook.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: notebook.h
3e97a905 3// Purpose: interface of wxNotebook
23324ae1
FM
4// Author: wxWidgets team
5// RCS-ID: $Id$
6// Licence: wxWindows license
7/////////////////////////////////////////////////////////////////////////////
8
23324ae1
FM
9/**
10 @class wxNotebook
7c913512 11
23324ae1
FM
12 This class represents a notebook control, which manages multiple windows with
13 associated tabs.
7c913512 14
3e97a905 15 To use the class, create a wxNotebook object and call wxNotebook::AddPage
340e9651
FM
16 or wxNotebook::InsertPage, passing a window to be used as the page.
17 Do not explicitly delete the window for a page that is currently managed by
3e97a905 18 wxNotebook.
7c913512 19
23324ae1 20 @b wxNotebookPage is a typedef for wxWindow.
7c913512 21
23324ae1 22 @beginStyleTable
8c6791e4 23 @style{wxNB_TOP}
23324ae1 24 Place tabs on the top side.
8c6791e4 25 @style{wxNB_LEFT}
23324ae1 26 Place tabs on the left side.
8c6791e4 27 @style{wxNB_RIGHT}
23324ae1 28 Place tabs on the right side.
8c6791e4 29 @style{wxNB_BOTTOM}
23324ae1 30 Place tabs under instead of above the notebook pages.
8c6791e4 31 @style{wxNB_FIXEDWIDTH}
23324ae1 32 (Windows only) All tabs will have same width.
8c6791e4 33 @style{wxNB_MULTILINE}
23324ae1 34 (Windows only) There can be several rows of tabs.
8c6791e4 35 @style{wxNB_NOPAGETHEME}
23324ae1
FM
36 (Windows only) Display a solid colour on notebook pages, and not a
37 gradient, which can reduce performance.
8c6791e4 38 @style{wxNB_FLAT}
23324ae1
FM
39 (Windows CE only) Show tabs in a flat style.
40 @endStyleTable
7c913512 41
340e9651
FM
42 The styles wxNB_LEFT, RIGHT and BOTTOM are not supported under
43 Microsoft Windows XP when using visual themes.
44
45 @beginEventTable{wxBookCtrlEvent}
46 @event{EVT_NOTEBOOK_PAGE_CHANGED(id, func)}
47 The page selection was changed.
48 Processes a @c wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED event.
49 @event{EVT_NOTEBOOK_PAGE_CHANGING(id, func)}
50 The page selection is about to be changed.
51 Processes a @c wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING event.
52 This event can be vetoed.
53 @endEventTable
54
55
56 @section notebook_bg Page backgrounds
57
58 On Windows XP, the default theme paints a gradient on the notebook's pages.
59 If you wish to suppress this theme, for aesthetic or performance reasons,
60 there are three ways of doing it.
61 You can use @c wxNB_NOPAGETHEME to disable themed drawing for a particular
62 notebook, you can call wxSystemOptions::SetOption to disable it for the
63 whole application, or you can disable it for individual pages by using
64 SetBackgroundColour().
65
66 To disable themed pages globally:
67 @code
68 wxSystemOptions::SetOption(wxT("msw.notebook.themed-background"), 0);
69 @endcode
70
71 Set the value to 1 to enable it again.
72 To give a single page a solid background that more or less fits in with the
73 overall theme, use:
74 @code
75 wxColour col = notebook->GetThemeBackgroundColour();
76 if (col.Ok())
77 {
78 page->SetBackgroundColour(col);
79 }
80 @endcode
81
82 On platforms other than Windows, or if the application is not using Windows
83 themes, GetThemeBackgroundColour() will return an uninitialised colour object,
84 and the above code will therefore work on all platforms.
85
86
23324ae1
FM
87 @library{wxcore}
88 @category{miscwnd}
7c913512 89
e8a8aa37 90 @see wxBookCtrl, wxBookCtrlEvent, wxImageList, @ref page_samples_notebook
23324ae1 91*/
340e9651 92class wxNotebook : public wxBookCtrlBase
23324ae1
FM
93{
94public:
90ae878f
RR
95
96 /**
97 Constructs a notebook control.
98 */
99 wxNotebook();
100
23324ae1
FM
101 /**
102 Constructs a notebook control.
23324ae1
FM
103 Note that sometimes you can reduce flicker by passing the wxCLIP_CHILDREN
104 window style.
3c4f71cc 105
7c913512 106 @param parent
4cc4bfaf 107 The parent window. Must be non-@NULL.
7c913512 108 @param id
4cc4bfaf 109 The window identifier.
7c913512 110 @param pos
4cc4bfaf 111 The window position.
7c913512 112 @param size
4cc4bfaf 113 The window size.
7c913512 114 @param style
4cc4bfaf 115 The window style. See wxNotebook.
7c913512 116 @param name
e8a8aa37 117 The name of the control.
23324ae1 118 */
7c913512
FM
119 wxNotebook(wxWindow* parent, wxWindowID id,
120 const wxPoint& pos = wxDefaultPosition,
121 const wxSize& size = wxDefaultSize,
122 long style = 0,
123 const wxString& name = wxNotebookNameStr);
23324ae1
FM
124
125 /**
126 Destroys the wxNotebook object.
127 */
a6052817 128 virtual ~wxNotebook();
23324ae1 129
23324ae1 130 /**
e8a8aa37
FM
131 Creates a notebook control.
132 See wxNotebook() for a description of the parameters.
23324ae1
FM
133 */
134 bool Create(wxWindow* parent, wxWindowID id,
135 const wxPoint& pos = wxDefaultPosition,
a6052817
FM
136 const wxSize& size = wxDefaultSize,
137 long style = 0,
23324ae1
FM
138 const wxString& name = wxNotebookNameStr);
139
23324ae1
FM
140
141 /**
142 Returns the number of rows in the notebook control.
143 */
a6052817 144 virtual int GetRowCount() const;
23324ae1 145
23324ae1
FM
146 /**
147 If running under Windows and themes are enabled for the application, this
e8a8aa37
FM
148 function returns a suitable colour for painting the background of a notebook
149 page, and can be passed to SetBackgroundColour().
150
151 Otherwise, an uninitialised colour will be returned.
23324ae1 152 */
a6052817 153 virtual wxColour GetThemeBackgroundColour() const;
23324ae1 154
23324ae1
FM
155 /**
156 An event handler function, called when the page selection is changed.
3c4f71cc 157
3e97a905 158 @see wxBookCtrlEvent
23324ae1 159 */
3e97a905 160 void OnSelChange(wxBookCtrlEvent& event);
23324ae1 161
23324ae1
FM
162 /**
163 Sets the amount of space around each page's icon and label, in pixels.
e8a8aa37 164
1f1d2182 165 @note The vertical padding cannot be changed in wxGTK.
23324ae1 166 */
adaaa686 167 virtual void SetPadding(const wxSize& padding);
23324ae1 168};
e54c96f1 169