X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2bda0e173844e8e0f8acf4e8ad8b5c26e5c6fe5d..8ea92b4d7792987769774ac381685dae15c70454:/include/wx/msw/tabctrl.h diff --git a/include/wx/msw/tabctrl.h b/include/wx/msw/tabctrl.h index ff35c3ebcd..dce65aa34f 100644 --- a/include/wx/msw/tabctrl.h +++ b/include/wx/msw/tabctrl.h @@ -5,20 +5,20 @@ // 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 @@ -37,55 +37,58 @@ class WXDLLEXPORT wxTabCtrl: public wxControl * 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); + ~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); @@ -95,32 +98,24 @@ class WXDLLEXPORT wxTabCtrl: public wxControl // 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); - -// Implementation + bool InsertItem(int item, const wxString& text, int imageId = -1, void* data = NULL); - // 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); @@ -129,20 +124,41 @@ protected: 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_