virtual void Detach() { m_tbar = NULL; }
virtual void Attach(wxToolBarBase *tbar) { m_tbar = tbar; }
+#if wxUSE_MENUS
// these methods are only for tools of wxITEM_DROPDOWN kind (but even such
// tools can have a NULL associated menu)
virtual void SetDropdownMenu(wxMenu *menu);
wxMenu *GetDropdownMenu() const { return m_dropdownMenu; }
+#endif
protected:
// common part of all ctors
m_toggled = false;
m_enabled = true;
+#if wxUSE_MENUS
m_dropdownMenu = NULL;
+#endif
+
}
wxToolBarBase *m_tbar; // the toolbar to which we belong (may be NULL)
wxString m_shortHelpString;
wxString m_longHelpString;
+#if wxUSE_MENUS
wxMenu *m_dropdownMenu;
+#endif
DECLARE_DYNAMIC_CLASS_NO_COPY(wxToolBarToolBase)
};
{ return GetToolBitmapSize(); }
// returns a (non separator) tool containing the point (x, y) or NULL if
- // there is no tool at this point (corrdinates are client)
+ // there is no tool at this point (coordinates are client)
virtual wxToolBarToolBase *FindToolForPosition(wxCoord x,
wxCoord y) const = 0;
// return true if this is a vertical toolbar, otherwise false
bool IsVertical() const;
+ // these methods allow to access tools by their index in the toolbar
+ size_t GetToolsCount() const { return m_tools.GetCount(); }
+ const wxToolBarToolBase *GetToolByPos(int pos) const { return m_tools[pos]; }
+
#if WXWIN_COMPATIBILITY_2_8
// the old versions of the various methods kept for compatibility
// don't use in the new code!
// use GetToolMargins() instead
wxSize GetMargins() const { return GetToolMargins(); }
+ // Tool factories,
+ // helper functions to create toolbar tools
+ // -------------------------
+ virtual wxToolBarToolBase *CreateTool(int toolid,
+ const wxString& label,
+ const wxBitmap& bmpNormal,
+ const wxBitmap& bmpDisabled = wxNullBitmap,
+ wxItemKind kind = wxITEM_NORMAL,
+ wxObject *clientData = NULL,
+ const wxString& shortHelp = wxEmptyString,
+ const wxString& longHelp = wxEmptyString) = 0;
+
+ virtual wxToolBarToolBase *CreateTool(wxControl *control,
+ const wxString& label) = 0;
+
+ // this one is not virtual but just a simple helper/wrapper around
+ // CreateTool() for separators
+ wxToolBarToolBase *CreateSeparator()
+ {
+ return CreateTool(wxID_SEPARATOR,
+ wxEmptyString,
+ wxNullBitmap, wxNullBitmap,
+ wxITEM_SEPARATOR, NULL,
+ wxEmptyString, wxEmptyString);
+ }
+
+
// implementation only from now on
// -------------------------------
- size_t GetToolsCount() const { return m_tools.GetCount(); }
-
// Do the toolbar button updates (check for EVT_UPDATE_UI handlers)
virtual void UpdateWindowUI(long flags = wxUPDATE_UI_NONE) ;
// don't want toolbars to accept the focus
virtual bool AcceptsFocus() const { return false; }
+#if wxUSE_MENUS
// Set dropdown menu
bool SetDropdownMenu(int toolid, wxMenu *menu);
+#endif
protected:
// to implement in derived classes
// called when the tools "can be toggled" flag changes
virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle) = 0;
- // the functions to create toolbar tools
- virtual wxToolBarToolBase *CreateTool(int toolid,
- const wxString& label,
- const wxBitmap& bmpNormal,
- const wxBitmap& bmpDisabled,
- wxItemKind kind,
- wxObject *clientData,
- const wxString& shortHelp,
- const wxString& longHelp) = 0;
-
- virtual wxToolBarToolBase *CreateTool(wxControl *control,
- const wxString& label) = 0;
-
- // this one is not virtual but just a simple helper/wrapper around
- // CreateTool() for separators
- wxToolBarToolBase *CreateSeparator()
- {
- return CreateTool(wxID_SEPARATOR,
- wxEmptyString,
- wxNullBitmap, wxNullBitmap,
- wxITEM_SEPARATOR, NULL,
- wxEmptyString, wxEmptyString);
- }
// helper functions
// ----------------