\helpref{DeleteTool}{wxtoolbardeletetool}
+\membersection{wxToolBar::SetMargins}\label{wxtoolbarsetmargins}
+
+\func{void}{SetMargins}{\param{const wxSize\&}{ size}}
+
+\func{void}{SetMargins}{\param{int}{ x}, \param{int}{ y}}
+
+Set the values to be used as margins for the toolbar.
+
+\wxheading{Parameters}
+
+\docparam{size}{Margin size.}
+
+\docparam{x}{Left margin, right margin and inter-tool separation value.}
+
+\docparam{y}{Top margin, bottom margin and inter-tool separation value.}
+
+\wxheading{Remarks}
+
+This must be called before the tools are added if absolute positioning is to be used, and the
+default (zero-size) margins are to be overridden.
+
+\wxheading{See also}
+
+\helpref{wxToolBar::GetMargins}{wxtoolbargetmargins}, \helpref{wxSize}{wxsize}
+
\membersection{wxToolBar::SetToolBitmapSize}\label{wxtoolbarsettoolbitmapsize}
\func{void}{SetToolBitmapSize}{\param{const wxSize\&}{ size}}
\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize},\rtfsp
\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize}
-\membersection{wxToolBar::SetMargins}\label{wxtoolbarsetmargins}
-
-\func{void}{SetMargins}{\param{const wxSize\&}{ size}}
-
-\func{void}{SetMargins}{\param{int}{ x}, \param{int}{ y}}
-
-Set the values to be used as margins for the toolbar.
-
-\wxheading{Parameters}
+\membersection{wxToolBar::SetToolClientData}\label{wxtoolbarsettoolclientdata}
-\docparam{size}{Margin size.}
+\func{void}{GetToolClientData}{\param{wxObject* }{clientData}}
-\docparam{x}{Left margin, right margin and inter-tool separation value.}
-
-\docparam{y}{Top margin, bottom margin and inter-tool separation value.}
-
-\wxheading{Remarks}
-
-This must be called before the tools are added if absolute positioning is to be used, and the
-default (zero-size) margins are to be overridden.
-
-\wxheading{See also}
-
-\helpref{wxToolBar::GetMargins}{wxtoolbargetmargins}, \helpref{wxSize}{wxsize}
+Sets the client data associated with the tool.
\membersection{wxToolBar::SetToolLongHelp}\label{wxtoolbarsettoollonghelp}
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 m_control->GetClientData();
+ }
+ else
+ {
+ return m_clientData;
+ }
}
// modifiers: return TRUE if the state really changed
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; }
// 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;
return tool ? tool->GetClientData() : (wxObject *)NULL;
}
+void wxToolBarBase::SetToolClientData(int id, wxObject *clientData)
+{
+ wxToolBarToolBase *tool = FindById(id);
+
+ wxCHECK_RET( tool, _T("no such tool in wxToolBar::SetToolClientData") );
+
+ tool->SetClientData(clientData);
+}
+
bool wxToolBarBase::GetToolState(int id) const
{
wxToolBarToolBase *tool = FindById(id);