]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/tabg.h
fixed recent modeless dialog breakage caused by removing wxDIALOG_MODAL (wxModelessWi...
[wxWidgets.git] / include / wx / generic / tabg.h
index c63665043311db6da42cc4ea62f2c171f19b24bc..905fad790e5836b95c5137ff6ed7274d714f9451 100644 (file)
 #ifndef __TABGH_G__
 #define __TABGH_G__
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma interface "tabg.h"
 #endif
 
 #define WXTAB_VERSION   1.1
 
-#include "wx/hash.h"
+#include "wx/hashmap.h"
 #include "wx/string.h"
 #include "wx/dialog.h"
+#include "wx/panel.h"
+#include "wx/list.h"
 
 class WXDLLEXPORT wxTabView;
 
@@ -85,13 +87,14 @@ protected:
 
 class WXDLLEXPORT wxTabLayer: public wxList
 {
-  DECLARE_DYNAMIC_CLASS(wxTabLayer)
 };
 
 /*
  * The wxTabView controls and draws the tabbed object
  */
 
+WX_DECLARE_LIST(wxTabLayer, wxTabLayerList);
+
 #define wxTAB_STYLE_DRAW_BOX         1   // Draws 3D boxes round tab layers
 #define wxTAB_STYLE_COLOUR_INTERIOR  2   // Colours interior of tabs, otherwise draws outline
 
@@ -102,8 +105,12 @@ public:
   wxTabView(long style = wxTAB_STYLE_DRAW_BOX | wxTAB_STYLE_COLOUR_INTERIOR);
   ~wxTabView();
 
-  inline int GetNumberOfLayers() const { return m_layers.Number(); }
-  inline wxList& GetLayers() { return m_layers; }
+  inline int GetNumberOfLayers() const { return m_layers.GetCount(); }
+#if WXWIN_COMPATIBILITY_2_4
+  inline wxList& GetLayers() { return (wxList&)m_layers; }
+#else
+  inline wxTabLayerList& GetLayers() { return m_layers; }
+#endif
 
   inline void SetWindow(wxWindow* wnd) { m_window = wnd; }
   inline wxWindow* GetWindow(void) const { return m_window; }
@@ -120,7 +127,7 @@ public:
   wxString GetTabText(int id) const;
 
   // Layout tabs (optional, e.g. if resizing window)
-  void Layout(void);
+  void LayoutTabs();
 
   // Draw all tabs
   virtual void Draw(wxDC& dc);
@@ -196,7 +203,7 @@ public:
   inline wxFont *GetSelectedTabFont() const { return (wxFont*) & m_tabSelectedFont; }
   inline void SetSelectedTabFont(const wxFont& f) { m_tabSelectedFont = f; }
   // Find the node and the column at which this control is positioned.
-  wxNode *FindTabNodeAndColumn(wxTabControl *control, int *col) const ;
+  wxList::compatibility_iterator FindTabNodeAndColumn(wxTabControl *control, int *col) const ;
   
   // Do the necessary to change to this tab
   virtual bool ChangeTab(wxTabControl *control);
@@ -209,7 +216,7 @@ public:
 
 protected:
    // List of layers, from front to back.
-   wxList           m_layers;
+   wxTabLayerList   m_layers;
    
    // Selected tab
    int              m_tabSelection;
@@ -320,6 +327,9 @@ protected:
 DECLARE_EVENT_TABLE()
 };
 
+WX_DECLARE_HASH_MAP(int, wxWindow*, wxIntegerHash, wxIntegerEqual,
+                    wxIntToWindowHashMap);
+
 class WXDLLEXPORT wxPanelTabView: public wxTabView
 {
 DECLARE_DYNAMIC_CLASS(wxPanelTabView)
@@ -337,14 +347,14 @@ public:
    inline wxWindow *GetCurrentWindow() const { return m_currentWindow; }
    
    void ShowWindowForTab(int id);
-   inline wxList& GetWindows() const { return (wxList&) m_tabWindows; }
+   // inline wxList& GetWindows() const { return (wxList&) m_tabWindows; }
 
 protected:
    // List of panels, one for each tab. Indexed
    // by tab ID.
-   wxList           m_tabWindows;
-   wxWindow*        m_currentWindow;
-   wxPanel*         m_panel;
+   wxIntToWindowHashMap m_tabWindows;
+   wxWindow*            m_currentWindow;
+   wxPanel*             m_panel;
 };
 
 #endif