// Modified by:
// Created: 01/02/97
// RCS-ID: $Id$
-// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows license
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifndef __TABCTRLH__
-#define __TABCTRLH__
+#ifndef _WX_TABCTRL_H_
+#define _WX_TABCTRL_H_
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface "tabctrl.h"
#endif
-class wxImageList;
+class WXDLLIMPEXP_CORE wxImageList;
-// WXDLLEXPORT_DATA(extern const char*) wxToolBarNameStr;
+// WXDLLEXPORT_DATA(extern const wxChar*) wxToolBarNameStr;
/*
* Flags returned by HitTest
wxTabCtrl();
inline wxTabCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
- long style = 0, const wxString& name = "tabCtrl")
+ long style = 0, const wxString& name = wxT("tabCtrl"))
{
Create(parent, id, pos, size, style, name);
}
// Get the selection
int GetSelection() const;
+ // Get the tab with the current keyboard focus
+ int GetCurFocus() const;
+
// Get the associated image list
wxImageList* GetImageList() const;
// Operations
- bool Create(wxWindow *parent, const wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
- const long style = 0, const wxString& name = "tabCtrl");
+ bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
+ long style = 0, const wxString& name = wxT("tabCtrl"));
// Delete all items
bool DeleteAllItems();
// Insert an item
bool InsertItem(int item, const wxString& text, int imageId = -1, void* data = NULL);
-// Implementation
-
- // Call default behaviour
- void OnPaint(wxPaintEvent& event) { Default() ; }
- void OnSize(wxSizeEvent& event) { Default() ; }
- void OnMouseEvent(wxMouseEvent& event) { Default() ; }
- void OnKillFocus(wxFocusEvent& event) { Default() ; }
+ // Implementation
- void Command(wxCommandEvent& event);
- bool MSWCommand(const WXUINT param, const WXWORD id);
- bool MSWNotify(const WXWPARAM wParam, const WXLPARAM lParam);
+ virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
// Responds to colour changes
void OnSysColourChanged(wxSysColourChangedEvent& event);
wxImageList* m_imageList;
DECLARE_EVENT_TABLE()
+ DECLARE_NO_COPY_CLASS(wxTabCtrl)
};
-class WXDLLEXPORT wxTabEvent: public wxCommandEvent
+class WXDLLEXPORT wxTabEvent : public wxNotifyEvent
{
- DECLARE_DYNAMIC_CLASS(wxTabEvent)
-
- public:
- wxTabEvent(WXTYPE commandType = 0, int id = 0);
+public:
+ wxTabEvent(wxEventType commandType = wxEVT_NULL, int id = 0,
+ int nSel = -1, int nOldSel = -1)
+ : wxNotifyEvent(commandType, id)
+ {
+ m_nSel = nSel;
+ m_nOldSel = nOldSel;
+ }
+
+ // accessors
+ // the currently selected page (-1 if none)
+ int GetSelection() const { return m_nSel; }
+ void SetSelection(int nSel) { m_nSel = nSel; }
+ // the page that was selected before the change (-1 if none)
+ int GetOldSelection() const { return m_nOldSel; }
+ void SetOldSelection(int nOldSel) { m_nOldSel = nOldSel; }
+
+private:
+ int m_nSel, // currently selected page
+ m_nOldSel; // previously selected page
+
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxTabEvent)
};
typedef void (wxEvtHandler::*wxTabEventFunction)(wxTabEvent&);
-#define EVT_TAB_SEL_CHANGED(id, fn) { wxEVT_COMMAND_TAB_SEL_CHANGED, \
- id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL },
-#define EVT_TAB_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TAB_SEL_CHANGING, \
- id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL },
+#define EVT_TAB_SEL_CHANGED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_COMMAND_TAB_SEL_CHANGED, \
+ id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxTabEventFunction, & fn ), NULL),
+#define EVT_TAB_SEL_CHANGING(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_COMMAND_TAB_SEL_CHANGING, \
+ id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxTabEventFunction, & fn ), NULL),
#endif
- // __TABCTRLH__
+ // _WX_TABCTRL_H_