X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/47b378bd88260611387af8604a1c8f62355350ab..09b67c660cadef225cbf8f1986cfe591f8feae8c:/include/wx/tbarbase.h diff --git a/include/wx/tbarbase.h b/include/wx/tbarbase.h index fb221036f6..0ffef62ce3 100644 --- a/include/wx/tbarbase.h +++ b/include/wx/tbarbase.h @@ -24,15 +24,15 @@ #include "wx/list.h" #include "wx/control.h" -class WXDLLEXPORT wxToolBarBase; -class WXDLLEXPORT wxToolBarToolBase; -class WXDLLEXPORT wxImage; +class WXDLLIMPEXP_FWD_CORE wxToolBarBase; +class WXDLLIMPEXP_FWD_CORE wxToolBarToolBase; +class WXDLLIMPEXP_FWD_CORE wxImage; // ---------------------------------------------------------------------------- // constants // ---------------------------------------------------------------------------- -extern WXDLLEXPORT_DATA(const wxChar) wxToolBarNameStr[]; +extern WXDLLEXPORT_DATA(const char) wxToolBarNameStr[]; extern WXDLLEXPORT_DATA(const wxSize) wxDefaultSize; extern WXDLLEXPORT_DATA(const wxPoint) wxDefaultPosition; @@ -71,12 +71,13 @@ public: const wxString& longHelpString = wxEmptyString) : m_label(label), m_shortHelpString(shortHelpString), - m_longHelpString(longHelpString) + m_longHelpString(longHelpString), + m_dropdownMenu(NULL) { m_tbar = tbar; m_id = toolid; if (m_id == wxID_ANY) - m_id = wxNewId(); + m_id = wxWindow::NewControlId(); m_clientData = clientData; m_bmpNormal = bmpNormal; @@ -106,9 +107,11 @@ public: m_toggled = false; m_toolStyle = wxTOOL_STYLE_CONTROL; + + m_dropdownMenu = 0; } - virtual ~wxToolBarToolBase(){} + virtual ~wxToolBarToolBase(); // accessors // --------- @@ -197,12 +200,17 @@ public: virtual void Detach() { m_tbar = (wxToolBarBase *)NULL; } virtual void Attach(wxToolBarBase *tbar) { m_tbar = tbar; } + // these methods are only for tools of wxITEM_DROPDOWN kind (but even such + // tools can have a NULL associated menu) + void SetDropdownMenu(wxMenu *menu); + wxMenu *GetDropdownMenu() const { return m_dropdownMenu; } + protected: wxToolBarBase *m_tbar; // the toolbar to which we belong (may be NULL) // tool parameters int m_toolStyle; // see enum wxToolBarToolStyle - int m_id; // the tool id, wxID_SEPARATOR for separator + wxWindowIDRef m_id; // the tool id, wxID_SEPARATOR for separator wxItemKind m_kind; // for normal buttons may be wxITEM_NORMAL/CHECK/RADIO // as controls have their own client data, no need to waste memory @@ -227,6 +235,8 @@ protected: wxString m_shortHelpString; wxString m_longHelpString; + wxMenu *m_dropdownMenu; + DECLARE_DYNAMIC_CLASS_NO_COPY(wxToolBarToolBase) }; @@ -384,7 +394,7 @@ public: virtual void SetToolDisabledBitmap(int WXUNUSED(id), const wxBitmap& WXUNUSED(bitmap)) {} - + // margins/packing/separation // -------------------------- @@ -433,7 +443,7 @@ public: wxToolBarToolBase *FindById(int toolid) const; // return true if this is a vertical toolbar, otherwise false - bool IsVertical() const { return HasFlag(wxTB_LEFT | wxTB_RIGHT); } + bool IsVertical() const; // the old versions of the various methods kept for compatibility @@ -525,6 +535,9 @@ public: // don't want toolbars to accept the focus virtual bool AcceptsFocus() const { return false; } + // Set dropdown menu + bool SetDropdownMenu(int toolid, wxMenu *menu); + protected: // to implement in derived classes // -------------------------------