]> git.saurik.com Git - wxWidgets.git/commitdiff
added wxToolBar::SetToolClientData
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 17 Dec 1999 13:10:05 +0000 (13:10 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 17 Dec 1999 13:10:05 +0000 (13:10 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5012 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/toolbar.tex
include/wx/tbarbase.h
src/common/tbarbase.cpp

index 39465088d1cc50c034f460d3ed39a44acbcfc1e1..97e8e580a86ddb7293e16be8a678ed11afae4e1a 100644 (file)
@@ -566,6 +566,31 @@ change to take place, it will happen immediately.
 
 \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}}
@@ -589,30 +614,11 @@ and not the eventual size of the tool button.
 \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}
 
index c282777eaa81b8794ba1a8c32cc5c8705932fede..288f2d3a64806f9022fb69281b7d7351ad538749 100644 (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;
index 7864d099dd25b972b28cc83273fe82547017a8c2..f66ce0f3b1a52e5fdd67d221565076797934bbc3 100644 (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);