- wxToolBar(wxWindow *parent,
- wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER | wxTB_HORIZONTAL,
- const wxString& name = wxToolBarNameStr)
- : wxToolBar95(parent, id, pos, size, style, name)
- {
- }
+ virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable);
+ virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle);
+ virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle);
+
+ virtual wxToolBarToolBase *CreateTool(int id,
+ const wxString& label,
+ const wxBitmap& bmpNormal,
+ const wxBitmap& bmpDisabled,
+ wxItemKind kind,
+ wxObject *clientData,
+ const wxString& shortHelp,
+ const wxString& longHelp);
+ virtual wxToolBarToolBase *CreateTool(wxControl *control);
+
+ // override WndProc mainly to process WM_SIZE
+ virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+
+ // return the appropriate size and flags for the toolbar control
+ virtual wxSize DoGetBestSize() const;
+ virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+
+ // handlers for various events
+ bool HandleSize(WXWPARAM wParam, WXLPARAM lParam);
+ bool HandlePaint(WXWPARAM wParam, WXLPARAM lParam);
+ void HandleMouseMove(WXWPARAM wParam, WXLPARAM lParam);
+
+ // should be called whenever the toolbar size changes
+ void UpdateSize();
+
+ // the big bitmap containing all bitmaps of the toolbar buttons
+ WXHBITMAP m_hBitmap;
+
+ // the total number of toolbar elements
+ size_t m_nButtons;
+
+ // the tool the cursor is in
+ wxToolBarToolBase *m_pInTool;