#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
// ----------------------------------------------------------------------------
// 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& pt, long *flags = NULL) const
+ {
+ return wxNOT_FOUND;
+ }
+
// cycle thru the tabs
void AdvanceSelection(bool forward = TRUE)
{
// 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)
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, \
NULL \
),
-#endif
-
// ----------------------------------------------------------------------------
// wxNotebook class itself
// ----------------------------------------------------------------------------
#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__)