3e97a90518
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54895 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
313 lines
9.7 KiB
Objective-C
313 lines
9.7 KiB
Objective-C
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: notebook.h
|
|
// Purpose: interface of wxNotebook
|
|
// Author: wxWidgets team
|
|
// RCS-ID: $Id$
|
|
// Licence: wxWindows license
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
/**
|
|
@class wxNotebook
|
|
|
|
This class represents a notebook control, which manages multiple windows with
|
|
associated tabs.
|
|
|
|
To use the class, create a wxNotebook object and call wxNotebook::AddPage
|
|
or wxNotebook::InsertPage, passing a window to be used as the page. Do not
|
|
explicitly delete the window for a page that is currently managed by
|
|
wxNotebook.
|
|
|
|
@b wxNotebookPage is a typedef for wxWindow.
|
|
|
|
@beginStyleTable
|
|
@style{wxNB_TOP}
|
|
Place tabs on the top side.
|
|
@style{wxNB_LEFT}
|
|
Place tabs on the left side.
|
|
@style{wxNB_RIGHT}
|
|
Place tabs on the right side.
|
|
@style{wxNB_BOTTOM}
|
|
Place tabs under instead of above the notebook pages.
|
|
@style{wxNB_FIXEDWIDTH}
|
|
(Windows only) All tabs will have same width.
|
|
@style{wxNB_MULTILINE}
|
|
(Windows only) There can be several rows of tabs.
|
|
@style{wxNB_NOPAGETHEME}
|
|
(Windows only) Display a solid colour on notebook pages, and not a
|
|
gradient, which can reduce performance.
|
|
@style{wxNB_FLAT}
|
|
(Windows CE only) Show tabs in a flat style.
|
|
@endStyleTable
|
|
|
|
@library{wxcore}
|
|
@category{miscwnd}
|
|
|
|
@see wxBookCtrl, wxBookCtrlEvent, wxImageList,
|
|
@ref page_samples_notebook "Notebook Sample"
|
|
*/
|
|
class wxNotebook : public wxBookCtrl overview
|
|
{
|
|
public:
|
|
|
|
/**
|
|
Constructs a notebook control.
|
|
*/
|
|
wxNotebook();
|
|
|
|
/**
|
|
Constructs a notebook control.
|
|
Note that sometimes you can reduce flicker by passing the wxCLIP_CHILDREN
|
|
window style.
|
|
|
|
@param parent
|
|
The parent window. Must be non-@NULL.
|
|
@param id
|
|
The window identifier.
|
|
@param pos
|
|
The window position.
|
|
@param size
|
|
The window size.
|
|
@param style
|
|
The window style. See wxNotebook.
|
|
@param name
|
|
The name of the control (used only under Motif).
|
|
*/
|
|
wxNotebook(wxWindow* parent, wxWindowID id,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = 0,
|
|
const wxString& name = wxNotebookNameStr);
|
|
|
|
/**
|
|
Destroys the wxNotebook object.
|
|
*/
|
|
virtual ~wxNotebook();
|
|
|
|
/**
|
|
Adds a new page.
|
|
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 notebook.
|
|
|
|
@see InsertPage()
|
|
*/
|
|
bool AddPage(wxNotebookPage* page, const wxString& text,
|
|
bool select = false,
|
|
int imageId = -1);
|
|
|
|
/**
|
|
Cycles through the tabs.
|
|
The call to this function generates the page changing events.
|
|
*/
|
|
void AdvanceSelection(bool forward = true);
|
|
|
|
/**
|
|
Sets the image list for the page control and takes ownership of
|
|
the list.
|
|
|
|
@see wxImageList, SetImageList()
|
|
*/
|
|
void AssignImageList(wxImageList* imageList);
|
|
|
|
/**
|
|
Changes the selection for the given page, returning the previous selection.
|
|
The call to this function does not generate the page changing events.
|
|
This is the only difference with SetSelection(). See
|
|
@ref overview_eventhandling_prog "User Generated Events"
|
|
for more infomation.
|
|
*/
|
|
virtual int ChangeSelection(size_t page);
|
|
|
|
/**
|
|
Creates a notebook control. See wxNotebook() for a description
|
|
of the parameters.
|
|
*/
|
|
bool Create(wxWindow* parent, wxWindowID id,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = 0,
|
|
const wxString& name = wxNotebookNameStr);
|
|
|
|
/**
|
|
Deletes all pages.
|
|
*/
|
|
virtual bool DeleteAllPages();
|
|
|
|
/**
|
|
Deletes the specified page, and the associated window.
|
|
The call to this function generates the page changing events.
|
|
*/
|
|
bool DeletePage(size_t page);
|
|
|
|
/**
|
|
Returns the currently selected notebook page or @NULL.
|
|
*/
|
|
wxWindow* GetCurrentPage() const;
|
|
|
|
/**
|
|
Returns the associated image list.
|
|
|
|
@see wxImageList, SetImageList()
|
|
*/
|
|
wxImageList* GetImageList() const;
|
|
|
|
/**
|
|
Returns the window at the given page position.
|
|
*/
|
|
wxNotebookPage* GetPage(size_t page);
|
|
|
|
/**
|
|
Returns the number of pages in the notebook control.
|
|
*/
|
|
size_t GetPageCount() const;
|
|
|
|
/**
|
|
Returns the image index for the given page.
|
|
*/
|
|
virtual int GetPageImage(size_t nPage) const;
|
|
|
|
/**
|
|
Returns the string for the given page.
|
|
*/
|
|
virtual wxString GetPageText(size_t nPage) const;
|
|
|
|
/**
|
|
Returns the number of rows in the notebook control.
|
|
*/
|
|
virtual int GetRowCount() const;
|
|
|
|
/**
|
|
Returns the currently selected page, or -1 if none was selected.
|
|
Note that this method may return either the previously or newly
|
|
selected page when called from the @c EVT_NOTEBOOK_PAGE_CHANGED handler
|
|
depending on the platform and so wxBookCtrlEvent::GetSelection should be
|
|
used instead in this case.
|
|
*/
|
|
virtual int GetSelection() const;
|
|
|
|
/**
|
|
If running under Windows and themes are enabled for the application, this
|
|
function
|
|
returns a suitable colour for painting the background of a notebook page, and
|
|
can be passed
|
|
to @c SetBackgroundColour. Otherwise, an uninitialised colour will be returned.
|
|
*/
|
|
virtual wxColour GetThemeBackgroundColour() const;
|
|
|
|
/**
|
|
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 value for detailed information. One of the following values:
|
|
<TABLE><TR><TD>wxBK_HITTEST_NOWHERE</TD>
|
|
<TD>There was no tab under this point.</TD></TR>
|
|
<TR><TD>wxBK_HITTEST_ONICON</TD>
|
|
<TD>The point was over an icon (currently wxMSW only).</TD></TR>
|
|
<TR><TD>wxBK_HITTEST_ONLABEL</TD>
|
|
<TD>The point was over a label (currently wxMSW only).</TD></TR>
|
|
<TR><TD>wxBK_HITTEST_ONITEM</TD>
|
|
<TD>The point was over an item, but not on the label or icon.</TD></TR>
|
|
<TR><TD>wxBK_HITTEST_ONPAGE</TD>
|
|
<TD>The point was over a currently selected page, not over any tab.
|
|
Note that this flag is present only if wxNOT_FOUND is returned.</TD></TR>
|
|
</TABLE>
|
|
@return Returns the zero-based tab index or wxNOT_FOUND if there is no
|
|
tab at the specified position.
|
|
*/
|
|
virtual int HitTest(const wxPoint& pt, long* flags = NULL) const;
|
|
|
|
/**
|
|
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 notebook.
|
|
|
|
@see AddPage()
|
|
*/
|
|
bool InsertPage(size_t index, wxNotebookPage* page,
|
|
const wxString& text,
|
|
bool select = false,
|
|
int imageId = -1);
|
|
|
|
/**
|
|
An event handler function, called when the page selection is changed.
|
|
|
|
@see wxBookCtrlEvent
|
|
*/
|
|
void OnSelChange(wxBookCtrlEvent& event);
|
|
|
|
/**
|
|
Deletes the specified page, without deleting the associated window.
|
|
*/
|
|
bool RemovePage(size_t page);
|
|
|
|
/**
|
|
Sets the image list for the page control. It does not take
|
|
ownership of the image list, you must delete it yourself.
|
|
|
|
@see wxImageList, AssignImageList()
|
|
*/
|
|
void SetImageList(wxImageList* imageList);
|
|
|
|
/**
|
|
Sets the amount of space around each page's icon and label, in pixels.
|
|
@note The vertical padding cannot be changed in wxGTK.
|
|
*/
|
|
void SetPadding(const wxSize& padding);
|
|
|
|
/**
|
|
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);
|
|
|
|
/**
|
|
Sets the width and height of the pages.
|
|
@note This method is currently not implemented for wxGTK.
|
|
*/
|
|
virtual void SetPageSize(const wxSize& size);
|
|
|
|
/**
|
|
Sets the text for the given page.
|
|
*/
|
|
virtual bool SetPageText(size_t page, const wxString& text);
|
|
|
|
/**
|
|
Sets the selection for the given page, returning the previous selection.
|
|
The call to this function generates the page changing events.
|
|
This function is deprecated and should not be used in new code. Please use the
|
|
ChangeSelection() function instead.
|
|
|
|
@see GetSelection()
|
|
*/
|
|
virtual int SetSelection(size_t page);
|
|
};
|
|
|