- DECLARE_DYNAMIC_CLASS(wxToolBar)
- public:
- /*
- * Public interface
- */
-
- wxToolBar();
-
- inline wxToolBar(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER|wxTB_HORIZONTAL,
- const wxString& name = wxToolBarNameStr)
- {
- Create(parent, id, pos, size, style, name);
- }
- ~wxToolBar();
-
- bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER|wxTB_HORIZONTAL,
- const wxString& name = wxToolBarNameStr);
-
- // Call default behaviour
- void OnMouseEvent(wxMouseEvent& event);
-
- // If pushedBitmap is NULL, a reversed version of bitmap is
- // created and used as the pushed/toggled image.
- // If toggle is TRUE, the button toggles between the two states.
- wxToolBarTool *AddTool(int toolIndex, const wxBitmap& bitmap, const wxBitmap& pushedBitmap = wxNullBitmap,
- bool toggle = FALSE, long xPos = -1, long yPos = -1, wxObject *clientData = NULL,
- const wxString& helpString1 = "", const wxString& helpString2 = "");
-
- // Set default bitmap size
- void SetToolBitmapSize(const wxSize& size);
- void EnableTool(int toolIndex, bool enable); // additional drawing on enabling
- void ToggleTool(int toolIndex, bool toggle); // toggle is TRUE if toggled on
- void ClearTools();
-
- // The button size is bigger than the bitmap size
- wxSize GetToolSize() const;
-
- wxSize GetMaxSize() const;
-
- virtual bool GetToolState(int toolIndex) const;
-
- // Add all the buttons
- virtual bool CreateTools();
- virtual void SetRows(int nRows);
- virtual void LayoutButtons() {}
-
- // The post-tool-addition call
- bool Realize() { return CreateTools(); };
-
- // IMPLEMENTATION
- virtual bool OS2Command(WXUINT param, WXWORD id);
- virtual bool OS2OnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
-
- // Responds to colour changes
- void OnSysColourChanged(wxSysColourChangedEvent& event);
+public:
+ /*
+ * Public interface
+ */
+
+ wxToolBar()
+ : m_vToolTimer(this, ID_TOOLTIMER)
+ , m_vToolExpTimer(this, ID_TOOLEXPTIMER)
+ { Init(); }
+
+ inline wxToolBar( wxWindow* pParent
+ ,wxWindowID vId
+ ,const wxPoint& rPos = wxDefaultPosition
+ ,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
+ ,vId
+ ,rPos
+ ,rSize
+ ,lStyle
+ ,rName
+ );
+ }
+ virtual ~wxToolBar();
+
+ bool Create( wxWindow* pParent
+ ,wxWindowID vId
+ ,const wxPoint& rPos = wxDefaultPosition
+ ,const wxSize& rSize = wxDefaultSize
+ ,long lStyle = wxNO_BORDER | wxTB_HORIZONTAL
+ ,const wxString& rName = wxToolBarNameStr
+ );
+
+
+ //
+ // Override/implement base class virtuals
+ //
+ virtual wxToolBarToolBase* FindToolForPosition( wxCoord vX
+ ,wxCoord vY
+ ) const;
+ 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
+ //
+ void OnPaint(wxPaintEvent& event);
+ void OnSize(wxSizeEvent& event);
+ void OnMouseEvent(wxMouseEvent& event);
+ void OnKillFocus(wxFocusEvent& event);