added wxToolBar::SetToolClientData

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5012 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 1999-12-17 13:10:05 +00:00
parent b7c2b5c51d
commit 6fd5fa4fcc
3 changed files with 61 additions and 28 deletions

View File

@ -566,29 +566,6 @@ change to take place, it will happen immediately.
\helpref{DeleteTool}{wxtoolbardeletetool}
\membersection{wxToolBar::SetToolBitmapSize}\label{wxtoolbarsettoolbitmapsize}
\func{void}{SetToolBitmapSize}{\param{const wxSize\&}{ size}}
Sets the default size of each tool bitmap. The default bitmap size is 16 by 15 pixels.
\wxheading{Parameters}
\docparam{size}{The size of the bitmaps in the toolbar.}
\wxheading{Remarks}
This should be called to tell the toolbar what the tool bitmap size is. Call
it before you add tools.
Note that this is the size of the bitmap you pass to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool},
and not the eventual size of the tool button.
\wxheading{See also}
\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize},\rtfsp
\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize}
\membersection{wxToolBar::SetMargins}\label{wxtoolbarsetmargins}
\func{void}{SetMargins}{\param{const wxSize\&}{ size}}
@ -614,6 +591,35 @@ default (zero-size) margins are to be overridden.
\helpref{wxToolBar::GetMargins}{wxtoolbargetmargins}, \helpref{wxSize}{wxsize}
\membersection{wxToolBar::SetToolBitmapSize}\label{wxtoolbarsettoolbitmapsize}
\func{void}{SetToolBitmapSize}{\param{const wxSize\&}{ size}}
Sets the default size of each tool bitmap. The default bitmap size is 16 by 15 pixels.
\wxheading{Parameters}
\docparam{size}{The size of the bitmaps in the toolbar.}
\wxheading{Remarks}
This should be called to tell the toolbar what the tool bitmap size is. Call
it before you add tools.
Note that this is the size of the bitmap you pass to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool},
and not the eventual size of the tool button.
\wxheading{See also}
\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize},\rtfsp
\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize}
\membersection{wxToolBar::SetToolClientData}\label{wxtoolbarsettoolclientdata}
\func{void}{GetToolClientData}{\param{wxObject* }{clientData}}
Sets the client data associated with the tool.
\membersection{wxToolBar::SetToolLongHelp}\label{wxtoolbarsettoollonghelp}
\func{void}{SetToolLongHelp}{\param{int }{toolId}, \param{const wxString\& }{helpString}}

View File

@ -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 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; }
@ -284,7 +300,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;

View File

@ -403,6 +403,15 @@ wxObject *wxToolBarBase::GetToolClientData(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);