X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0edeeb6d96d31d342a6a283d2a9b625a1d0a7b96..aaedb44c5e7169db22d32e8a335936e3213da33a:/include/wx/tbarbase.h diff --git a/include/wx/tbarbase.h b/include/wx/tbarbase.h index 47ccd84a01..14d03e032b 100644 --- a/include/wx/tbarbase.h +++ b/include/wx/tbarbase.h @@ -32,9 +32,9 @@ class WXDLLIMPEXP_FWD_CORE wxImage; // constants // ---------------------------------------------------------------------------- -extern WXDLLEXPORT_DATA(const wxChar) wxToolBarNameStr[]; -extern WXDLLEXPORT_DATA(const wxSize) wxDefaultSize; -extern WXDLLEXPORT_DATA(const wxPoint) wxDefaultPosition; +extern WXDLLIMPEXP_DATA_CORE(const char) wxToolBarNameStr[]; +extern WXDLLIMPEXP_DATA_CORE(const wxSize) wxDefaultSize; +extern WXDLLIMPEXP_DATA_CORE(const wxPoint) wxDefaultPosition; enum wxToolBarToolStyle { @@ -54,19 +54,19 @@ enum wxToolBarToolStyle // for the applications status bar. // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxToolBarToolBase : public wxObject +class WXDLLIMPEXP_CORE wxToolBarToolBase : public wxObject { public: // ctors & dtor // ------------ - wxToolBarToolBase(wxToolBarBase *tbar = (wxToolBarBase *)NULL, + 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 = (wxObject *) NULL, + wxObject *clientData = NULL, const wxString& shortHelpString = wxEmptyString, const wxString& longHelpString = wxEmptyString) : m_label(label), @@ -121,7 +121,7 @@ public: wxControl *GetControl() const { - wxASSERT_MSG( IsControl(), _T("this toolbar tool is not a control") ); + wxASSERT_MSG( IsControl(), wxT("this toolbar tool is not a control") ); return m_control; } @@ -135,7 +135,7 @@ public: int GetStyle() const { return m_toolStyle; } wxItemKind GetKind() const { - wxASSERT_MSG( IsButton(), _T("only makes sense for buttons") ); + wxASSERT_MSG( IsButton(), wxT("only makes sense for buttons") ); return m_kind; } @@ -171,16 +171,16 @@ public: } // modifiers: return true if the state really changed - bool Enable(bool enable); - bool Toggle(bool toggle); - bool SetToggle(bool toggle); - bool SetShortHelp(const wxString& help); - bool SetLongHelp(const wxString& help); + 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() { Toggle(!IsToggled()); } - void SetNormalBitmap(const wxBitmap& bmp) { m_bmpNormal = bmp; } - void SetDisabledBitmap(const wxBitmap& bmp) { m_bmpDisabled = bmp; } + virtual void SetNormalBitmap(const wxBitmap& bmp) { m_bmpNormal = bmp; } + virtual void SetDisabledBitmap(const wxBitmap& bmp) { m_bmpDisabled = bmp; } virtual void SetLabel(const wxString& label) { m_label = label; } @@ -197,12 +197,12 @@ public: } // add tool to/remove it from a toolbar - virtual void Detach() { m_tbar = (wxToolBarBase *)NULL; } + virtual void Detach() { m_tbar = 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); + virtual void SetDropdownMenu(wxMenu *menu); wxMenu *GetDropdownMenu() const { return m_dropdownMenu; } protected: @@ -210,7 +210,7 @@ protected: // 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 @@ -247,7 +247,7 @@ WX_DECLARE_EXPORTED_LIST(wxToolBarToolBase, wxToolBarToolsList); // the base class for all toolbars // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxToolBarBase : public wxControl +class WXDLLIMPEXP_CORE wxToolBarBase : public wxControl { public: wxToolBarBase(); @@ -361,6 +361,9 @@ public: // must be called after all buttons have been created to finish toolbar // initialisation + // + // derived class versions should call the base one first, before doing + // platform-specific stuff virtual bool Realize(); // tools state @@ -394,7 +397,7 @@ public: virtual void SetToolDisabledBitmap(int WXUNUSED(id), const wxBitmap& WXUNUSED(bitmap)) {} - + // margins/packing/separation // -------------------------- @@ -443,13 +446,13 @@ 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; +#if WXWIN_COMPATIBILITY_2_8 // the old versions of the various methods kept for compatibility // don't use in the new code! // -------------------------------------------------------------- - + wxDEPRECATED_INLINE( wxToolBarToolBase *AddTool(int toolid, const wxBitmap& bitmap, const wxBitmap& bmpDisabled, @@ -457,23 +460,23 @@ public: wxObject *clientData = NULL, const wxString& shortHelpString = wxEmptyString, const wxString& longHelpString = wxEmptyString) - { + , return AddTool(toolid, wxEmptyString, bitmap, bmpDisabled, toggle ? wxITEM_CHECK : wxITEM_NORMAL, shortHelpString, longHelpString, clientData); - } - + ) + wxDEPRECATED_INLINE( wxToolBarToolBase *AddTool(int toolid, const wxBitmap& bitmap, const wxString& shortHelpString = wxEmptyString, const wxString& longHelpString = wxEmptyString) - { + , return AddTool(toolid, wxEmptyString, bitmap, wxNullBitmap, wxITEM_NORMAL, shortHelpString, longHelpString, NULL); - } - + ) + wxDEPRECATED_INLINE( wxToolBarToolBase *AddTool(int toolid, const wxBitmap& bitmap, const wxBitmap& bmpDisabled, @@ -483,12 +486,12 @@ public: wxObject *clientData = NULL, const wxString& shortHelp = wxEmptyString, const wxString& longHelp = wxEmptyString) - { + , return DoAddTool(toolid, wxEmptyString, bitmap, bmpDisabled, toggle ? wxITEM_CHECK : wxITEM_NORMAL, shortHelp, longHelp, clientData, xPos, yPos); - } - + ) + wxDEPRECATED_INLINE( wxToolBarToolBase *InsertTool(size_t pos, int toolid, const wxBitmap& bitmap, @@ -497,11 +500,12 @@ public: wxObject *clientData = NULL, const wxString& shortHelp = wxEmptyString, const wxString& longHelp = wxEmptyString) - { + , return InsertTool(pos, toolid, wxEmptyString, bitmap, bmpDisabled, toggle ? wxITEM_CHECK : wxITEM_NORMAL, shortHelp, longHelp, clientData); - } + ) +#endif // WXWIN_COMPATIBILITY_2_8 // event handlers // -------------- @@ -601,6 +605,10 @@ protected: // un-toggle all buttons in the same radio group void UnToggleRadioGroup(wxToolBarToolBase *tool); + // make the size of the buttons big enough to fit the largest bitmap size + void AdjustToolBitmapSize(); + + // the list of all our tools wxToolBarToolsList m_tools; @@ -621,7 +629,7 @@ protected: private: DECLARE_EVENT_TABLE() - DECLARE_NO_COPY_CLASS(wxToolBarBase) + wxDECLARE_NO_COPY_CLASS(wxToolBarBase); }; // deprecated function for creating the image for disabled buttons, use