X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ef0e92205a01c7d0ca6f381cc690cb5d4fa595c9..5bdcb1f3248ebcac6c73e314e752c13dee8776c7:/include/wx/notebook.h diff --git a/include/wx/notebook.h b/include/wx/notebook.h index 5350a11b26..2311156392 100644 --- a/include/wx/notebook.h +++ b/include/wx/notebook.h @@ -56,6 +56,48 @@ typedef wxWindow wxNotebookPage; // so far, any window can be a page extern WXDLLIMPEXP_DATA_CORE(const char) wxNotebookNameStr[]; +#if wxUSE_EXTENDED_RTTI + +// ---------------------------------------------------------------------------- +// XTI accessor +// ---------------------------------------------------------------------------- + +class WXDLLEXPORT wxNotebookPageInfo : public wxObject +{ +public: + wxNotebookPageInfo() { m_page = NULL; m_imageId = -1; m_selected = false; } + virtual ~wxNotebookPageInfo() { } + + bool Create(wxNotebookPage *page, + const wxString& text, + bool selected, + int imageId) + { + m_page = page; + m_text = text; + m_selected = selected; + m_imageId = imageId; + return true; + } + + wxNotebookPage* GetPage() const { return m_page; } + wxString GetText() const { return m_text; } + bool GetSelected() const { return m_selected; } + int GetImageId() const { return m_imageId; } + +private: + wxNotebookPage *m_page; + wxString m_text; + bool m_selected; + int m_imageId; + + DECLARE_DYNAMIC_CLASS(wxNotebookPageInfo) +}; + +WX_DECLARE_EXPORTED_LIST(wxNotebookPageInfo, wxNotebookPageInfoList ); + +#endif + // ---------------------------------------------------------------------------- // wxNotebookBase: define wxNotebook interface // ---------------------------------------------------------------------------- @@ -68,13 +110,6 @@ public: wxNotebookBase() { } - wxNotebookBase(wxWindow *parent, - wxWindowID winid, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxNotebookNameStr) ; - // wxNotebook-specific additions to wxBookCtrlBase interface // --------------------------------------------------------- @@ -103,54 +138,45 @@ public: 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); + // new is wxNOT_FOUND) + void SendPageChangedEvent(int nPageOld, int nPageNew = wxNOT_FOUND); // wxBookCtrlBase overrides this method to return false but we do need // focus because we have tabs virtual bool AcceptsFocus() const { return wxControl::AcceptsFocus(); } +#if wxUSE_EXTENDED_RTTI + // XTI accessors + virtual void AddPageInfo( wxNotebookPageInfo* info ); + virtual const wxNotebookPageInfoList& GetPageInfos() const; +#endif + protected: - DECLARE_NO_COPY_CLASS(wxNotebookBase) +#if wxUSE_EXTENDED_RTTI + wxNotebookPageInfoList m_pageInfos; +#endif + wxDECLARE_NO_COPY_CLASS(wxNotebookBase); }; // ---------------------------------------------------------------------------- // notebook event class and related stuff // ---------------------------------------------------------------------------- -class WXDLLIMPEXP_CORE wxNotebookEvent : public wxBookCtrlBaseEvent -{ -public: - wxNotebookEvent(wxEventType commandType = wxEVT_NULL, int winid = 0, - int nSel = -1, int nOldSel = -1) - : wxBookCtrlBaseEvent(commandType, winid, nSel, nOldSel) - { - } - - wxNotebookEvent(const wxNotebookEvent& event) - : wxBookCtrlBaseEvent(event) - { - } - - virtual wxEvent *Clone() const { return new wxNotebookEvent(*this); } - -private: - DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxNotebookEvent) -}; - -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&); +// wxNotebookEvent is obsolete and defined for compatibility only (notice that +// we use #define and not typedef to also keep compatibility with the existing +// code which forward declares it) +#define wxNotebookEvent wxBookCtrlEvent +typedef wxBookCtrlEventFunction wxNotebookEventFunction; +#define wxNotebookEventHandler(func) wxBookCtrlEventHandler(func) -#define wxNotebookEventHandler(func) \ - (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxNotebookEventFunction, &func) +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxBookCtrlEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, wxBookCtrlEvent ); #define EVT_NOTEBOOK_PAGE_CHANGED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, winid, wxNotebookEventHandler(fn)) + wx__DECLARE_EVT1(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, winid, wxBookCtrlEventHandler(fn)) #define EVT_NOTEBOOK_PAGE_CHANGING(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, winid, wxNotebookEventHandler(fn)) + wx__DECLARE_EVT1(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, winid, wxBookCtrlEventHandler(fn)) // ---------------------------------------------------------------------------- // wxNotebook class itself