X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8a0681f9338345d0ef32b2ad809d49fd20861119..d11bb14faace68d2c69e9e94b2ba6824f43a2d59:/include/wx/tbarbase.h diff --git a/include/wx/tbarbase.h b/include/wx/tbarbase.h index c282777eaa..aa19f52861 100644 --- a/include/wx/tbarbase.h +++ b/include/wx/tbarbase.h @@ -140,10 +140,14 @@ public: wxObject *GetClientData() const { - wxASSERT_MSG( m_toolStyle != wxTOOL_STYLE_CONTROL, - _T("this toolbar tool doesn't have client data") ); - - return m_clientData; + if ( m_toolStyle == wxTOOL_STYLE_CONTROL ) + { + return (wxObject*)m_control->GetClientData(); + } + else + { + return m_clientData; + } } // modifiers: return TRUE if the state really changed @@ -158,6 +162,18 @@ public: void SetBitmap1(const wxBitmap& bmp) { m_bitmap1 = bmp; } void SetBitmap2(const wxBitmap& bmp) { m_bitmap2 = bmp; } + void SetClientData(wxObject *clientData) + { + if ( m_toolStyle == wxTOOL_STYLE_CONTROL ) + { + m_control->SetClientData(clientData); + } + else + { + m_clientData = clientData; + } + } + // add tool to/remove it from a toolbar virtual void Detach() { m_tbar = (wxToolBarBase *)NULL; } virtual void Attach(wxToolBarBase *tbar) { m_tbar = tbar; } @@ -190,7 +206,7 @@ protected: }; // a list of toolbar tools -WX_DECLARE_LIST(wxToolBarToolBase, wxToolBarToolsList); +WX_DECLARE_EXPORTED_LIST(wxToolBarToolBase, wxToolBarToolsList); // ---------------------------------------------------------------------------- // the base class for all toolbars @@ -205,6 +221,16 @@ public: // toolbar construction // -------------------- + // the most commonly used version of AddTool() + wxToolBarToolBase *AddTool(int id, + const wxBitmap& bitmap, + const wxString& shortHelpString = wxEmptyString, + const wxString& longHelpString = wxEmptyString) + { + return AddTool(id, bitmap, wxNullBitmap, FALSE, NULL, + shortHelpString, longHelpString); + } + // If pushedBitmap is NULL, a reversed version of bitmap is created and // used as the pushed/toggled image. If toggle is TRUE, the button toggles // between the two states. @@ -284,7 +310,9 @@ public: // Set this to be togglable (or not) virtual void SetToggle(int id, bool toggle); - virtual wxObject *GetToolClientData(int index) const; + // set/get tools client data (not for controls) + virtual wxObject *GetToolClientData(int id) const; + virtual void SetToolClientData(int id, wxObject *clientData); // return TRUE if the tool is toggled virtual bool GetToolState(int id) const;