///////////////////////////////////////////////////////////////////////////// // Name: notebook.h // Purpose: MSW/GTK compatible notebook (a.k.a. property sheet) // Author: David Webster // Modified by: // RCS-ID: $Id: notebook.h 41738 2006-10-08 17:37:23Z VZ $ // Copyright: (c) David Webster // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _NOTEBOOK_H #define _NOTEBOOK_H #if wxUSE_NOTEBOOK // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- #include "wx/control.h" // ---------------------------------------------------------------------------- // wxNotebook // ---------------------------------------------------------------------------- class WXDLLEXPORT wxNotebook : public wxNotebookBase { public: // // Ctors // ----- // Default for dynamic class // wxNotebook(); // // the same arguments as for wxControl // wxNotebook( wxWindow* pParent ,wxWindowID vId ,const wxPoint& rPos = wxDefaultPosition ,const wxSize& rSize = wxDefaultSize ,long lStyle = 0 ,const wxString& rsName = wxNotebookNameStr ); bool Create( wxWindow* pParent ,wxWindowID vId ,const wxPoint& rPos = wxDefaultPosition ,const wxSize& rSize = wxDefaultSize ,long lStyle = 0 ,const wxString& rsName = wxNotebookNameStr ); // // Accessors // --------- // Get number of pages in the dialog // virtual size_t GetPageCount(void) const; // // Set the currently selected page, return the index of the previously // selected one (or -1 on error) // NB: this function will _not_ generate wxEVT_NOTEBOOK_PAGE_xxx events // int SetSelection(size_t nPage); // changes selected page without sending events int ChangeSelection(size_t nPage); // // Get the currently selected page // inline int GetSelection(void) const { return m_nSelection; } // // Set/Get the title of a page // bool SetPageText( size_t nPage ,const wxString& sStrText ); wxString GetPageText(size_t nPage) const; // // Image list stuff: each page may have an image associated with it. All // the images belong to an image list, so you have to // 1) create an image list // 2) associate it with the notebook // 3) set for each page it's image // associate image list with a control // void SetImageList(wxImageList* pImageList); // // Sets/returns item's image index in the current image list // int GetPageImage(size_t nPage) const; bool SetPageImage( size_t nPage ,int nImage ); // // Currently it's always 1 because wxGTK doesn't support multi-row // tab controls // int GetRowCount(void) const; // // control the appearance of the notebook pages // set the size (the same for all pages) // void SetPageSize(const wxSize& rSize); // // Set the padding between tabs (in pixels) // void SetPadding(const wxSize& rPadding); // // Operations // ---------- // Remove all pages // bool DeleteAllPages(void); // // Adds a new page to the notebook (it will be deleted ny the notebook, // don't delete it yourself). If bSelect, this page becomes active. // bool AddPage( wxNotebookPage* pPage ,const wxString& rsStrText ,bool bSelect = false ,int nImageId = -1 ); // // The same as AddPage(), but adds it at the specified position // bool InsertPage( size_t nPage ,wxNotebookPage* pPage ,const wxString& rsStrText ,bool bSelect = false ,int nImageId = -1 ); // // Windows-only at present. Also, you must use the wxNB_FIXEDWIDTH // style. // void SetTabSize(const wxSize& rSize); // // Callbacks // --------- // void OnSize(wxSizeEvent& rEvent); void OnSelChange(wxNotebookEvent& rEvent); void OnSetFocus(wxFocusEvent& rEvent); void OnNavigationKey(wxNavigationKeyEvent& rEvent); // // Base class virtuals // ------------------- // virtual bool OS2OnScroll( int nOrientation ,WXWORD wSBCode ,WXWORD wPos ,WXHWND hControl ); virtual void SetConstraintSizes(bool bRecurse = true); virtual bool DoPhase(int nPhase); protected: // // Common part of all ctors // void Init(void); // // Translate wxWin styles to the PM ones // virtual WXDWORD OS2GetStyle( long lFlags ,WXDWORD* pwExstyle = NULL ) const; // // Remove one page from the notebook, without deleting // virtual wxNotebookPage* DoRemovePage(size_t nPage); // // Helper functions // int m_nSelection; // The current selection (-1 if none) private: wxArrayLong m_alPageId; int m_nTabSize; // holds the largest tab size DECLARE_DYNAMIC_CLASS(wxNotebook) DECLARE_EVENT_TABLE() }; // end of CLASS wxNotebook #endif // wxUSE_NOTEBOOK #endif // _NOTEBOOK_H