]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/os2/toolbar.h
wxMac compilation fix: must explicitly qualify non-dependent MacSetClipChildren(...
[wxWidgets.git] / include / wx / os2 / toolbar.h
index 5b3fb460c8e9cdaaa69c83d8a5d1eccc4fbdfd37..ab156e37f11e123402b2d8943f92bd1abfab0550 100644 (file)
 #define _WX_TOOLBAR_H_
 
 #if wxUSE_TOOLBAR
+#include "wx/timer.h"
 #include "wx/tbarbase.h"
 
-class WXDLLEXPORT wxToolBar: public wxToolBarBase
+#define ID_TOOLTIMER                100
+#define ID_TOOLEXPTIMER             101
+
+class WXDLLIMPEXP_CORE wxToolBar: public wxToolBarBase
 {
 public:
     /*
      * Public interface
      */
 
-    wxToolBar() { Init(); }
+    wxToolBar()
+    : m_vToolTimer(this, ID_TOOLTIMER)
+    , m_vToolExpTimer(this, ID_TOOLEXPTIMER)
+    { Init(); }
 
     inline wxToolBar( wxWindow*       pParent
                      ,wxWindowID      vId
@@ -30,7 +37,8 @@ public:
                      ,const wxSize&   rSize = wxDefaultSize
                      ,long            lStyle = wxNO_BORDER | wxTB_HORIZONTAL
                      ,const wxString& rName = wxToolBarNameStr
-                    )
+                    ) : m_vToolTimer(this, ID_TOOLTIMER)
+                      , m_vToolExpTimer(this, ID_TOOLEXPTIMER)
     {
         Init();
         Create( pParent
@@ -61,6 +69,47 @@ public:
     virtual bool               Realize(void);
     virtual void               SetRows(int nRows);
 
+    //
+    // Special overrides for OS/2
+    //
+    virtual wxToolBarToolBase* InsertControl( size_t     nPos
+                                             ,wxControl* pControl
+                                            );
+    virtual wxToolBarToolBase* InsertSeparator(size_t nPos);
+    virtual wxToolBarToolBase* InsertTool( size_t          nPos
+                                          ,int             nId
+                                          ,const wxString& rsLabel
+                                          ,const wxBitmap& rBitmap
+                                          ,const wxBitmap& rBmpDisabled = wxNullBitmap
+                                          ,wxItemKind      eKind = wxITEM_NORMAL
+                                          ,const wxString& rsShortHelp = wxEmptyString
+                                          ,const wxString& rsLongHelp = wxEmptyString
+                                          ,wxObject*       pClientData = NULL
+                                         );
+    wxToolBarToolBase*         InsertTool( size_t          nPos
+                                          ,int             nId
+                                          ,const wxBitmap& rBitmap
+                                          ,const wxBitmap& rBmpDisabled = wxNullBitmap
+                                          ,bool            bToggle = FALSE
+                                          ,wxObject*       pClientData = NULL
+                                          ,const wxString& rsShortHelp = wxEmptyString
+                                          ,const wxString& rsLongHelp = wxEmptyString
+                                         )
+    {
+        return InsertTool( nPos
+                          ,nId
+                          ,wxEmptyString
+                          ,rBitmap
+                          ,rBmpDisabled
+                          ,bToggle ? wxITEM_CHECK : wxITEM_NORMAL
+                          ,rsShortHelp
+                          ,rsLongHelp
+                          ,pClientData
+                         );
+    }
+    virtual bool               DeleteTool(int nId);
+    virtual bool               DeleteToolByPos(size_t nPos);
+
     //
     // Event handlers
     //
@@ -116,7 +165,8 @@ protected:
                                           ,const wxString& rsShortHelp
                                           ,const wxString& rsLongHelp
                                          );
-    virtual wxToolBarToolBase* CreateTool(wxControl* pControl);
+    virtual wxToolBarToolBase* CreateTool(wxControl* pControl,
+                                          const wxString& label);
 
     //
     // Helpers
@@ -146,9 +196,25 @@ private:
     void RaiseTool( wxToolBarToolBase* pTool
                    ,bool               bRaise = TRUE
                   );
+    void OnTimer(wxTimerEvent& rEvent);
 
     static bool                     m_bInitialized;
 
+    wxTimer                         m_vToolTimer;
+    wxTimer                         m_vToolExpTimer;
+    wxToolTip*                      m_pToolTip;
+    wxCoord                         m_vXMouse;
+    wxCoord                         m_vYMouse;
+
+    //
+    // Virtual function hiding supression
+    virtual wxToolBarToolBase *InsertTool (size_t nPos, wxToolBarToolBase* pTool)
+    {
+        return( wxToolBarBase::InsertTool( nPos
+                                          ,pTool
+                                         ));
+    }
+
     DECLARE_EVENT_TABLE()
     DECLARE_DYNAMIC_CLASS(wxToolBar)
 };