X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2ce7af354a12de8cf0d80d27f6958c6ccd95f766..27d0dcd033be9b1356a36d582f3d3665a53e11e4:/include/wx/notebook.h?ds=sidebyside diff --git a/include/wx/notebook.h b/include/wx/notebook.h index 54ad1df040..aac71c2032 100644 --- a/include/wx/notebook.h +++ b/include/wx/notebook.h @@ -28,6 +28,19 @@ #include "wx/dynarray.h" #include "wx/imaglist.h" +// ---------------------------------------------------------------------------- +// constants +// ---------------------------------------------------------------------------- + +// wxNotebook hit results +enum +{ + wxNB_HITTEST_NOWHERE = 1, // not on tab + wxNB_HITTEST_ONICON = 2, // on icon + wxNB_HITTEST_ONLABEL = 4, // on label + wxNB_HITTEST_ONITEM = wxNB_HITTEST_ONICON | wxNB_HITTEST_ONLABEL +}; + // ---------------------------------------------------------------------------- // types // ---------------------------------------------------------------------------- @@ -35,7 +48,7 @@ // array of notebook pages typedef wxWindow wxNotebookPage; // so far, any window can be a page -WX_DEFINE_EXPORTED_ARRAY(wxNotebookPage *, wxArrayPages); +WX_DEFINE_EXPORTED_ARRAY_NO_PTR(wxNotebookPage *, wxArrayPages); #define wxNOTEBOOK_NAME _T("notebook") @@ -144,6 +157,14 @@ public: // NB: this function will _not_ generate wxEVT_NOTEBOOK_PAGE_xxx events virtual int SetSelection(int nPage) = 0; + // hit test, returns which tab is hit and, optionally, where (icon, label) + // (not implemented on all platforms) + virtual int HitTest(const wxPoint& WXUNUSED(pt), + long * WXUNUSED(flags) = NULL) const + { + return wxNOT_FOUND; + } + // cycle thru the tabs void AdvanceSelection(bool forward = TRUE) { @@ -198,19 +219,13 @@ private: int m_nSel, // currently selected page m_nOldSel; // previously selected page - DECLARE_DYNAMIC_CLASS(wxNotebookEvent) + DECLARE_DYNAMIC_CLASS_NO_COPY(wxNotebookEvent) }; // ---------------------------------------------------------------------------- // event types and macros for them // ---------------------------------------------------------------------------- -#if defined(__BORLANDC__) && defined(__WIN16__) - // For 16-bit BC++, these 2 would be identical otherwise (truncated) - #define wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED wxEVT_COMMAND_NB_PAGE_CHANGED - #define wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING wxEVT_COMMAND_NB_PAGE_CHANGING -#endif - BEGIN_DECLARE_EVENT_TYPES() DECLARE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, 802) DECLARE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, 803) @@ -218,28 +233,6 @@ END_DECLARE_EVENT_TYPES() typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&); -// Truncation in 16-bit BC++ means we need to define these differently -#if defined(__BORLANDC__) && defined(__WIN16__) -#define EVT_NOTEBOOK_PAGE_CHANGED(id, fn) \ - DECLARE_EVENT_TABLE_ENTRY( \ - wxEVT_COMMAND_NB_PAGE_CHANGED, \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxNotebookEventFunction) &fn, \ - NULL \ - ), - -#define EVT_NOTEBOOK_PAGE_CHANGING(id, fn) \ - DECLARE_EVENT_TABLE_ENTRY( \ - wxEVT_COMMAND_NB_PAGE_CHANGING, \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxNotebookEventFunction) &fn, \ - NULL \ - ), - -#else - #define EVT_NOTEBOOK_PAGE_CHANGED(id, fn) \ DECLARE_EVENT_TABLE_ENTRY( \ wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, \ @@ -258,8 +251,6 @@ typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&); NULL \ ), -#endif - // ---------------------------------------------------------------------------- // wxNotebook class itself // ---------------------------------------------------------------------------- @@ -267,11 +258,7 @@ typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&); #if defined(__WXUNIVERSAL__) #include "wx/univ/notebook.h" #elif defined(__WXMSW__) - #ifdef __WIN16__ - #include "wx/generic/notebook.h" - #else - #include "wx/msw/notebook.h" - #endif + #include "wx/msw/notebook.h" #elif defined(__WXMOTIF__) #include "wx/generic/notebook.h" #elif defined(__WXGTK__)