1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: wx/os2/notebook.h 3 // Purpose: MSW/GTK compatible notebook (a.k.a. property sheet) 4 // Author: David Webster 5 // Modified by: 6 // Copyright: (c) David Webster 7 // Licence: wxWindows licence 8 ///////////////////////////////////////////////////////////////////////////// 9 10 #ifndef _NOTEBOOK_H 11 #define _NOTEBOOK_H 12 13 #if wxUSE_NOTEBOOK 14 15 // ---------------------------------------------------------------------------- 16 // headers 17 // ---------------------------------------------------------------------------- 18 19 #include "wx/control.h" 20 21 // ---------------------------------------------------------------------------- 22 // wxNotebook 23 // ---------------------------------------------------------------------------- 24 25 class WXDLLIMPEXP_CORE wxNotebook : public wxNotebookBase 26 { 27 public: 28 // 29 // Ctors 30 // ----- 31 // Default for dynamic class 32 // 33 wxNotebook(); 34 35 // 36 // the same arguments as for wxControl 37 // 38 wxNotebook( wxWindow* pParent 39 ,wxWindowID vId 40 ,const wxPoint& rPos = wxDefaultPosition 41 ,const wxSize& rSize = wxDefaultSize 42 ,long lStyle = 0 43 ,const wxString& rsName = wxNotebookNameStr 44 ); 45 46 bool Create( wxWindow* pParent 47 ,wxWindowID vId 48 ,const wxPoint& rPos = wxDefaultPosition 49 ,const wxSize& rSize = wxDefaultSize 50 ,long lStyle = 0 51 ,const wxString& rsName = wxNotebookNameStr 52 ); 53 54 // 55 // Accessors 56 // --------- 57 // Get number of pages in the dialog 58 // 59 virtual size_t GetPageCount(void) const; 60 61 // 62 // Set the currently selected page, return the index of the previously 63 // selected one (or wxNOT_FOUND on error) 64 // NB: this function will _not_ generate wxEVT_NOTEBOOK_PAGE_xxx events 65 // 66 int SetSelection(size_t nPage); 67 68 // changes selected page without sending events 69 int ChangeSelection(size_t nPage); 70 71 // 72 // Set/Get the title of a page 73 // 74 bool SetPageText( size_t nPage 75 ,const wxString& sStrText 76 ); 77 wxString GetPageText(size_t nPage) const; 78 79 // 80 // Image list stuff: each page may have an image associated with it. All 81 // the images belong to an image list, so you have to 82 // 1) create an image list 83 // 2) associate it with the notebook 84 // 3) set for each page it's image 85 // associate image list with a control 86 // 87 void SetImageList(wxImageList* pImageList); 88 89 // 90 // Sets/returns item's image index in the current image list 91 // 92 int GetPageImage(size_t nPage) const; 93 bool SetPageImage( size_t nPage 94 ,int nImage 95 ); 96 97 // 98 // Currently it's always 1 because wxGTK doesn't support multi-row 99 // tab controls 100 // 101 int GetRowCount(void) const; 102 103 // 104 // control the appearance of the notebook pages 105 // set the size (the same for all pages) 106 // 107 void SetPageSize(const wxSize& rSize); 108 109 // 110 // Set the padding between tabs (in pixels) 111 // 112 void SetPadding(const wxSize& rPadding); 113 114 // 115 // Operations 116 // ---------- 117 // Remove all pages 118 // 119 bool DeleteAllPages(void); 120 121 // 122 // Adds a new page to the notebook (it will be deleted ny the notebook, 123 // don't delete it yourself). If bSelect, this page becomes active. 124 // 125 bool AddPage( wxNotebookPage* pPage 126 ,const wxString& rsStrText 127 ,bool bSelect = false 128 ,int nImageId = -1 129 ); 130 131 // 132 // The same as AddPage(), but adds it at the specified position 133 // 134 bool InsertPage( size_t nPage 135 ,wxNotebookPage* pPage 136 ,const wxString& rsStrText 137 ,bool bSelect = false 138 ,int nImageId = -1 139 ); 140 141 // 142 // Windows-only at present. Also, you must use the wxNB_FIXEDWIDTH 143 // style. 144 // 145 void SetTabSize(const wxSize& rSize); 146 147 // 148 // Callbacks 149 // --------- 150 // 151 void OnSize(wxSizeEvent& rEvent); 152 void OnSelChange(wxBookCtrlEvent& rEvent); 153 void OnSetFocus(wxFocusEvent& rEvent); 154 void OnNavigationKey(wxNavigationKeyEvent& rEvent); 155 156 // 157 // Base class virtuals 158 // ------------------- 159 // 160 virtual bool OS2OnScroll( int nOrientation 161 ,WXWORD wSBCode 162 ,WXWORD wPos 163 ,WXHWND hControl 164 ); 165 virtual void SetConstraintSizes(bool bRecurse = true); 166 virtual bool DoPhase(int nPhase); 167 168 protected: 169 // 170 // Common part of all ctors 171 // 172 void Init(void); 173 174 // 175 // Translate wxWin styles to the PM ones 176 // 177 virtual WXDWORD OS2GetStyle( long lFlags 178 ,WXDWORD* pwExstyle = NULL 179 ) const; 180 181 // 182 // Remove one page from the notebook, without deleting 183 // 184 virtual wxNotebookPage* DoRemovePage(size_t nPage); 185 186 // 187 // Helper functions 188 // 189 190 private: 191 wxArrayLong m_alPageId; 192 int m_nTabSize; // holds the largest tab size 193 194 DECLARE_DYNAMIC_CLASS(wxNotebook) 195 DECLARE_EVENT_TABLE() 196 }; // end of CLASS wxNotebook 197 198 #endif // wxUSE_NOTEBOOK 199 200 #endif // _NOTEBOOK_H 201