1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: MSW/GTK compatible notebook (a.k.a. property sheet)
4 // Author: David Webster
7 // Copyright: (c) David Webster
8 // Licence: wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
16 // ----------------------------------------------------------------------------
18 // ----------------------------------------------------------------------------
20 #include "wx/control.h"
22 // ----------------------------------------------------------------------------
24 // ----------------------------------------------------------------------------
26 class WXDLLIMPEXP_CORE wxNotebook
: public wxNotebookBase
32 // Default for dynamic class
37 // the same arguments as for wxControl
39 wxNotebook( wxWindow
* pParent
41 ,const wxPoint
& rPos
= wxDefaultPosition
42 ,const wxSize
& rSize
= wxDefaultSize
44 ,const wxString
& rsName
= wxNotebookNameStr
47 bool Create( wxWindow
* pParent
49 ,const wxPoint
& rPos
= wxDefaultPosition
50 ,const wxSize
& rSize
= wxDefaultSize
52 ,const wxString
& rsName
= wxNotebookNameStr
58 // Get number of pages in the dialog
60 virtual size_t GetPageCount(void) const;
63 // Set the currently selected page, return the index of the previously
64 // selected one (or -1 on error)
65 // NB: this function will _not_ generate wxEVT_NOTEBOOK_PAGE_xxx events
67 int SetSelection(size_t nPage
);
69 // changes selected page without sending events
70 int ChangeSelection(size_t nPage
);
73 // Get the currently selected page
75 inline int GetSelection(void) const { return m_nSelection
; }
78 // Set/Get the title of a page
80 bool SetPageText( size_t nPage
81 ,const wxString
& sStrText
83 wxString
GetPageText(size_t nPage
) const;
86 // Image list stuff: each page may have an image associated with it. All
87 // the images belong to an image list, so you have to
88 // 1) create an image list
89 // 2) associate it with the notebook
90 // 3) set for each page it's image
91 // associate image list with a control
93 void SetImageList(wxImageList
* pImageList
);
96 // Sets/returns item's image index in the current image list
98 int GetPageImage(size_t nPage
) const;
99 bool SetPageImage( size_t nPage
104 // Currently it's always 1 because wxGTK doesn't support multi-row
107 int GetRowCount(void) const;
110 // control the appearance of the notebook pages
111 // set the size (the same for all pages)
113 void SetPageSize(const wxSize
& rSize
);
116 // Set the padding between tabs (in pixels)
118 void SetPadding(const wxSize
& rPadding
);
125 bool DeleteAllPages(void);
128 // Adds a new page to the notebook (it will be deleted ny the notebook,
129 // don't delete it yourself). If bSelect, this page becomes active.
131 bool AddPage( wxNotebookPage
* pPage
132 ,const wxString
& rsStrText
133 ,bool bSelect
= false
138 // The same as AddPage(), but adds it at the specified position
140 bool InsertPage( size_t nPage
141 ,wxNotebookPage
* pPage
142 ,const wxString
& rsStrText
143 ,bool bSelect
= false
148 // Windows-only at present. Also, you must use the wxNB_FIXEDWIDTH
151 void SetTabSize(const wxSize
& rSize
);
157 void OnSize(wxSizeEvent
& rEvent
);
158 void OnSelChange(wxBookCtrlEvent
& rEvent
);
159 void OnSetFocus(wxFocusEvent
& rEvent
);
160 void OnNavigationKey(wxNavigationKeyEvent
& rEvent
);
163 // Base class virtuals
164 // -------------------
166 virtual bool OS2OnScroll( int nOrientation
171 virtual void SetConstraintSizes(bool bRecurse
= true);
172 virtual bool DoPhase(int nPhase
);
176 // Common part of all ctors
181 // Translate wxWin styles to the PM ones
183 virtual WXDWORD
OS2GetStyle( long lFlags
184 ,WXDWORD
* pwExstyle
= NULL
188 // Remove one page from the notebook, without deleting
190 virtual wxNotebookPage
* DoRemovePage(size_t nPage
);
196 int m_nSelection
; // The current selection (-1 if none)
199 wxArrayLong m_alPageId
;
200 int m_nTabSize
; // holds the largest tab size
202 DECLARE_DYNAMIC_CLASS(wxNotebook
)
203 DECLARE_EVENT_TABLE()
204 }; // end of CLASS wxNotebook
206 #endif // wxUSE_NOTEBOOK
208 #endif // _NOTEBOOK_H