X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9804d5404a9607cda3d08ec8225f52f78b78bc72..c2193ac9115470a4ecbc6844bbe19734a8c636ad:/include/wx/notebook.h diff --git a/include/wx/notebook.h b/include/wx/notebook.h index 88551e2f23..5350a11b26 100644 --- a/include/wx/notebook.h +++ b/include/wx/notebook.h @@ -26,8 +26,6 @@ // constants // ---------------------------------------------------------------------------- -#if WXWIN_COMPATIBILITY_2_6 - // wxNotebook hit results, use wxBK_HITTEST so other book controls can share them // if wxUSE_NOTEBOOK is disabled enum @@ -39,21 +37,30 @@ enum wxNB_HITTEST_ONPAGE = wxBK_HITTEST_ONPAGE }; -#endif // WXWIN_COMPATIBILITY_2_6 +// wxNotebook flags -typedef wxWindow wxNotebookPage; // so far, any window can be a page +// use common book wxBK_* flags for describing alignment +#define wxNB_DEFAULT wxBK_DEFAULT +#define wxNB_TOP wxBK_TOP +#define wxNB_BOTTOM wxBK_BOTTOM +#define wxNB_LEFT wxBK_LEFT +#define wxNB_RIGHT wxBK_RIGHT -extern WXDLLEXPORT_DATA(const wxChar) wxNotebookNameStr[]; +#define wxNB_FIXEDWIDTH 0x0100 +#define wxNB_MULTILINE 0x0200 +#define wxNB_NOPAGETHEME 0x0400 +#define wxNB_FLAT 0x0800 -#if WXWIN_COMPATIBILITY_2_4 - #define wxNOTEBOOK_NAME wxNotebookNameStr -#endif + +typedef wxWindow wxNotebookPage; // so far, any window can be a page + +extern WXDLLIMPEXP_DATA_CORE(const char) wxNotebookNameStr[]; // ---------------------------------------------------------------------------- // wxNotebookBase: define wxNotebook interface // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxNotebookBase : public wxBookCtrlBase +class WXDLLIMPEXP_CORE wxNotebookBase : public wxBookCtrlBase { public: // ctors @@ -89,6 +96,20 @@ public: // On platforms that support it, get the theme page background colour, else invalid colour virtual wxColour GetThemeBackgroundColour() const { return wxNullColour; } + + // send wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING/ED events + + // returns false if the change to nPage is vetoed by the program + bool SendPageChangingEvent(int nPage); + + // sends the event about page change from old to new (or GetSelection() if + // new is -1) + void SendPageChangedEvent(int nPageOld, int nPageNew = -1); + + // wxBookCtrlBase overrides this method to return false but we do need + // focus because we have tabs + virtual bool AcceptsFocus() const { return wxControl::AcceptsFocus(); } + protected: DECLARE_NO_COPY_CLASS(wxNotebookBase) }; @@ -97,7 +118,7 @@ protected: // notebook event class and related stuff // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxNotebookEvent : public wxBookCtrlBaseEvent +class WXDLLIMPEXP_CORE wxNotebookEvent : public wxBookCtrlBaseEvent { public: wxNotebookEvent(wxEventType commandType = wxEVT_NULL, int winid = 0, @@ -117,10 +138,8 @@ private: DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxNotebookEvent) }; -BEGIN_DECLARE_EVENT_TYPES() - DECLARE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, 802) - DECLARE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, 803) -END_DECLARE_EVENT_TYPES() +extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED; +extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING; typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&); @@ -148,7 +167,7 @@ typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&); #elif defined(__WXGTK__) #include "wx/gtk1/notebook.h" #elif defined(__WXMAC__) - #include "wx/mac/notebook.h" + #include "wx/osx/notebook.h" #elif defined(__WXCOCOA__) #include "wx/cocoa/notebook.h" #elif defined(__WXPM__)