From f2b6dd8c508ddc1ebfee5b7d6e68a44b4e05a50f Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Sat, 10 Mar 2012 00:01:09 +0000 Subject: [PATCH] Make the CreateTool factories be public so they can be used from application code git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70854 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/gtk/toolbar.h | 22 +++++++++--------- include/wx/msw/toolbar.h | 23 +++++++++--------- include/wx/osx/toolbar.h | 23 +++++++++--------- include/wx/tbarbase.h | 50 ++++++++++++++++++++++------------------ interface/wx/toolbar.h | 23 ++++++++++++++++++ 5 files changed, 84 insertions(+), 57 deletions(-) diff --git a/include/wx/gtk/toolbar.h b/include/wx/gtk/toolbar.h index ca8699031a..8326870f49 100644 --- a/include/wx/gtk/toolbar.h +++ b/include/wx/gtk/toolbar.h @@ -58,6 +58,17 @@ public: static wxVisualAttributes GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); + virtual wxToolBarToolBase *CreateTool(int id, + const wxString& label, + const wxBitmap& bitmap1, + const wxBitmap& bitmap2 = wxNullBitmap, + wxItemKind kind = wxITEM_NORMAL, + wxObject *clientData = NULL, + const wxString& shortHelpString = wxEmptyString, + const wxString& longHelpString = wxEmptyString); + virtual wxToolBarToolBase *CreateTool(wxControl *control, + const wxString& label); + // implementation from now on // -------------------------- @@ -73,17 +84,6 @@ protected: virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle); virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle); - virtual wxToolBarToolBase *CreateTool(int id, - const wxString& label, - const wxBitmap& bitmap1, - const wxBitmap& bitmap2, - wxItemKind kind, - wxObject *clientData, - const wxString& shortHelpString, - const wxString& longHelpString); - virtual wxToolBarToolBase *CreateTool(wxControl *control, - const wxString& label); - private: void Init(); void GtkSetStyle(); diff --git a/include/wx/msw/toolbar.h b/include/wx/msw/toolbar.h index 4f45e40384..fcfbec774b 100644 --- a/include/wx/msw/toolbar.h +++ b/include/wx/msw/toolbar.h @@ -85,6 +85,17 @@ public: virtual WXHBRUSH MSWGetBgBrushForChild(WXHDC hDC, wxWindowMSW *child); #endif // wxHAS_MSW_BACKGROUND_ERASE_HOOK + virtual wxToolBarToolBase *CreateTool(int id, + 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); + + virtual wxToolBarToolBase *CreateTool(wxControl *control, + const wxString& label); protected: // common part of all ctors void Init(); @@ -103,18 +114,6 @@ protected: 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, - const wxString& label); - // return the appropriate size and flags for the toolbar control virtual wxSize DoGetBestSize() const; diff --git a/include/wx/osx/toolbar.h b/include/wx/osx/toolbar.h index 5e20bc6768..4bed1ab647 100644 --- a/include/wx/osx/toolbar.h +++ b/include/wx/osx/toolbar.h @@ -77,6 +77,18 @@ class WXDLLIMPEXP_CORE wxToolBar: public wxToolBarBase bool MacWantsNativeToolbar(); bool MacTopLevelHasNativeToolbar(bool *ownToolbarInstalled) const; #endif + + virtual wxToolBarToolBase *CreateTool(int id, + 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); + virtual wxToolBarToolBase *CreateTool(wxControl *control, + const wxString& label); + protected: // common part of all ctors void Init(); @@ -99,17 +111,6 @@ protected: 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, - const wxString& label); - DECLARE_EVENT_TABLE() #if wxOSX_USE_NATIVE_TOOLBAR bool m_macUsesNativeToolbar ; diff --git a/include/wx/tbarbase.h b/include/wx/tbarbase.h index 45e5ac4cb5..b368ff8c9e 100644 --- a/include/wx/tbarbase.h +++ b/include/wx/tbarbase.h @@ -567,6 +567,33 @@ public: // 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 // ------------------------------- @@ -618,29 +645,6 @@ protected: // 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 // ---------------- diff --git a/interface/wx/toolbar.h b/interface/wx/toolbar.h index e0afc16cd9..66af57a78f 100644 --- a/interface/wx/toolbar.h +++ b/interface/wx/toolbar.h @@ -976,5 +976,28 @@ public: tool. */ virtual void ToggleTool(int toolId, bool toggle); + + + /** + Factory function to create a new toolbar tool. + */ + 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); + /** + Factory function to create a new control toolbar tool. + */ + virtual wxToolBarToolBase *CreateTool(wxControl *control, + const wxString& label); + + /** + Factory function to create a new separator toolbar tool. + */ + wxToolBarToolBase *CreateSeparator() }; -- 2.45.2