]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/tabctrl.h
have it work the old way with PopupMenu(), and have it restore the old menu on destru...
[wxWidgets.git] / include / wx / msw / tabctrl.h
index ff35c3ebcdd22b359499eeedd18af72f595e6c65..dce65aa34f6f32c75d06abf962487a6e2228c0d5 100644 (file)
@@ -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_