X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/184abb52a8ae838ef8586ce45a550b4e8ef96e54..7344108e8a129a3f9b4df5ab0f98a1713db03b89:/interface/wx/toolbar.h diff --git a/interface/wx/toolbar.h b/interface/wx/toolbar.h index ee96ddda04..9bd3b169ae 100644 --- a/interface/wx/toolbar.h +++ b/interface/wx/toolbar.h @@ -6,6 +6,143 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +enum wxToolBarToolStyle +{ + wxTOOL_STYLE_BUTTON = 1, + wxTOOL_STYLE_SEPARATOR = 2, + wxTOOL_STYLE_CONTROL +}; + + +/** wxToolBar style flags */ +enum +{ + /** lay out the toolbar horizontally */ + wxTB_HORIZONTAL, + wxTB_TOP, + + /** lay out the toolbar vertically */ + wxTB_VERTICAL, + wxTB_LEFT, + + /** show 3D buttons (wxToolBarSimple only) */ + wxTB_3DBUTTONS, + + /** "flat" buttons (Win32/GTK only) */ + wxTB_FLAT, + + /** dockable toolbar (GTK only) */ + wxTB_DOCKABLE, + + /** don't show the icons (they're shown by default) */ + wxTB_NOICONS, + + /** show the text (not shown by default) */ + wxTB_TEXT, + + /** don't show the divider between toolbar and the window (Win32 only) */ + wxTB_NODIVIDER, + + /** no automatic alignment (Win32 only, useless) */ + wxTB_NOALIGN, + + /** show the text and the icons alongside, not vertically stacked (Win32/GTK) */ + wxTB_HORZ_LAYOUT, + wxTB_HORZ_TEXT, + + /** don't show the toolbar short help tooltips */ + wxTB_NO_TOOLTIPS, + + /** lay out toolbar at the bottom of the window */ + wxTB_BOTTOM, + + /** lay out toolbar at the right edge of the window */ + wxTB_RIGHT +}; + + + +/** + @class wxToolBarToolBase + + A toolbar tool represents one item on the toolbar. + + It has a unique id (except for the separators), the style (telling whether + it is a normal button, separator or a control), the state (toggled or not, + enabled or not) and short and long help strings. The default + implementations use the short help string for the tooltip text which is + popped up when the mouse pointer enters the tool and the long help string + for the applications status bar. +*/ +class wxToolBarToolBase : public wxObject +{ +public: + wxToolBarToolBase(wxToolBarBase *tbar = NULL, + int toolid = wxID_SEPARATOR, + const wxString& label = wxEmptyString, + const wxBitmap& bmpNormal = wxNullBitmap, + const wxBitmap& bmpDisabled = wxNullBitmap, + wxItemKind kind = wxITEM_NORMAL, + wxObject *clientData = NULL, + const wxString& shortHelpString = wxEmptyString, + const wxString& longHelpString = wxEmptyString); + + wxToolBarToolBase(wxToolBarBase *tbar, + wxControl *control, + const wxString& label); + + virtual ~wxToolBarToolBase(); + + int GetId() const; + + wxControl *GetControl() const; + wxToolBarBase *GetToolBar() const; + + bool IsStretchable() const; + bool IsButton() const; + bool IsControl() const; + bool IsSeparator() const; + bool IsStretchableSpace() const; + int GetStyle() const; + wxItemKind GetKind() const; + void MakeStretchable(); + + bool IsEnabled() const; + bool IsToggled() const; + bool CanBeToggled() const; + + const wxBitmap& GetNormalBitmap() const; + const wxBitmap& GetDisabledBitmap() const; + + const wxBitmap& GetBitmap() const; + const wxString& GetLabel() const; + + const wxString& GetShortHelp() const; + const wxString& GetLongHelp() const; + + wxObject *GetClientData() const; + + virtual bool Enable(bool enable); + virtual bool Toggle(bool toggle); + virtual bool SetToggle(bool toggle); + virtual bool SetShortHelp(const wxString& help); + virtual bool SetLongHelp(const wxString& help); + void Toggle(); + virtual void SetNormalBitmap(const wxBitmap& bmp); + virtual void SetDisabledBitmap(const wxBitmap& bmp); + virtual void SetLabel(const wxString& label); + void SetClientData(wxObject *clientData); + + virtual void Detach(); + virtual void Attach(wxToolBarBase *tbar); + + virtual void SetDropdownMenu(wxMenu *menu); + wxMenu *GetDropdownMenu() const; +}; + + + + /** @class wxToolBar @@ -337,7 +474,7 @@ public: */ wxToolBarToolBase* AddTool(int toolId, const wxString& label, const wxBitmap& bitmap, - const wxBitmap& bmpDisabled = wxNullBitmap, + const wxBitmap& bmpDisabled, wxItemKind kind = wxITEM_NORMAL, const wxString& shortHelpString = wxEmptyString, const wxString& longHelpString = wxEmptyString, @@ -580,13 +717,16 @@ public: the overload taking @a tool parameter the caller is responsible for deleting the tool in the latter case. */ - wxToolBarToolBase* InsertTool(size_t pos, int toolId, - const wxBitmap& bitmap1, - const wxBitmap& bitmap2 = wxNullBitmap, - bool isToggle = false, - wxObject* clientData = NULL, - const wxString& shortHelpString = wxEmptyString, - const wxString& longHelpString = wxEmptyString); + wxToolBarToolBase* InsertTool( size_t pos, + int toolId, + const wxString& label, + const wxBitmap& bitmap, + const wxBitmap& bmpDisabled = wxNullBitmap, + wxItemKind kind = wxITEM_NORMAL, + const wxString& shortHelp = wxEmptyString, + const wxString& longHelp = wxEmptyString, + wxObject *clientData = NULL); + wxToolBarToolBase* InsertTool(size_t pos, wxToolBarToolBase* tool); //@} @@ -673,7 +813,7 @@ public: This is a Windows CE-specific method not available in the other ports. - @onlyfor{wxWinCE} + @onlyfor{wxmsw_wince} */ void SetBitmapResource(int resourceId); @@ -832,5 +972,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() };