// implementation only from now on
// -------------------------------
+ virtual void SetWindowStyleFlag(long style);
+
virtual bool MSWCommand(WXUINT param, WXWORD id);
virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
void OnMouseEvent(wxMouseEvent& event);
void OnSysColourChanged(wxSysColourChangedEvent& event);
+ void SetFocus() {}
+
+ static WXHBITMAP MapBitmap(WXHBITMAP bitmap, int width, int height);
+
protected:
// common part of all ctors
void Init();
+ // create the native toolbar control
+ bool MSWCreateToolbar(const wxPoint& pos, const wxSize& size);
+
+ // recreate the control completely
+ void Recreate();
+
// implement base class pure virtuals
virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);
virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle);
virtual wxToolBarToolBase *CreateTool(int id,
- const wxBitmap& bitmap1,
- const wxBitmap& bitmap2,
- bool toggle,
+ const wxString& label,
+ const wxBitmap& bmpNormal,
+ const wxBitmap& bmpDisabled,
+ wxItemKind kind,
wxObject *clientData,
- const wxString& shortHelpString,
- const wxString& longHelpString);
+ 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();
- // override WndProc to process WM_SIZE
- virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
-
// 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;
+
private:
DECLARE_EVENT_TABLE()
DECLARE_DYNAMIC_CLASS(wxToolBar)
+ DECLARE_NO_COPY_CLASS(wxToolBar)
};
#endif // wxUSE_TOOLBAR