// 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__
-#pragma interface "tabctrl.h"
-#endif
-
-class wxImageList;
-
-// WXDLLEXPORT_DATA(extern const char*) wxToolBarNameStr;
+class WXDLLIMPEXP_FWD_CORE wxImageList;
/*
* Flags returned by HitTest
* Public interface
*/
- wxTabCtrl(void);
+ wxTabCtrl();
- inline wxTabCtrl(wxWindow *parent, const wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
- const long style = 0, const wxString& name = "tabCtrl")
+ inline wxTabCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
+ long style = 0, const wxString& name = wxT("tabCtrl"))
{
Create(parent, id, pos, size, style, name);
}
- ~wxTabCtrl(void);
+ virtual ~wxTabCtrl();
// Accessors
// Get the selection
- int GetSelection(void) const;
+ int GetSelection() const;
+
+ // Get the tab with the current keyboard focus
+ int GetCurFocus() const;
// Get the associated image list
- wxImageList* GetImageList(void) const;
+ wxImageList* GetImageList() const;
// Get the number of items
- int GetItemCount(void) const;
+ int GetItemCount() const;
// Get the rect corresponding to the tab
- bool GetItemRect(const int item, wxRect& rect) const;
+ bool GetItemRect(int item, wxRect& rect) const;
// Get the number of rows
- int GetRowCount(void) const;
+ int GetRowCount() const;
// Get the item text
- wxString GetItemText(const int item) const ;
+ wxString GetItemText(int item) const ;
// Get the item image
- int GetItemImage(const int item) const;
+ int GetItemImage(int item) const;
// Get the item data
- void* GetItemData(const int item) const;
+ void* GetItemData(int item) const;
// Set the selection
- int SetSelection(const int item);
+ int SetSelection(int item);
// Set the image list
void SetImageList(wxImageList* imageList);
// Set the text for an item
- bool SetItemText(const int item, const wxString& text);
+ bool SetItemText(int item, const wxString& text);
// Set the image for an item
- bool SetItemImage(const int item, const int image);
+ bool SetItemImage(int item, int image);
// Set the data for an item
- bool SetItemData(const int item, void* data);
+ bool SetItemData(int item, void* data);
// Set the size for a fixed-width tab control
void SetItemSize(const wxSize& size);
// 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(void);
+ bool DeleteAllItems();
// Delete an item
- bool DeleteItem(const int item);
+ bool DeleteItem(int item);
// Hit test
int HitTest(const wxPoint& pt, long& flags);
// Insert an item
- int InsertItem(const int item, const wxString& text, const int imageId = -1, void* data = NULL);
+ bool InsertItem(int item, const wxString& text, int imageId = -1, void* data = NULL);
-// Implementation
+ // Implementation
- // Call default behaviour
- void OnPaint(wxPaintEvent& event) { Default() ; }
- void OnSize(wxSizeEvent& event) { Default() ; }
- void OnMouseEvent(wxMouseEvent& event) { Default() ; }
- void OnKillFocus(wxFocusEvent& event) { Default() ; }
-
- 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 },
-#define EVT_TAB_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TAB_SEL_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn },
+#define EVT_TAB_SEL_CHANGED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_COMMAND_TAB_SEL_CHANGED, \
+ id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxTabEventFunction, & fn ), NULL),
+#define EVT_TAB_SEL_CHANGING(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_COMMAND_TAB_SEL_CHANGING, \
+ id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxTabEventFunction, & fn ), NULL),
#endif
- // __TABCTRLH__
+ // _WX_TABCTRL_H_