]> git.saurik.com Git - wxWidgets.git/commitdiff
added Add/InsertTool() (patch 672032)
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 27 Jan 2003 01:13:35 +0000 (01:13 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 27 Jan 2003 01:13:35 +0000 (01:13 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18958 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

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

index ec792425468dbbf41780634a3e51624cb87f38ac..2e04106f196610011ca6dbfd5c6e33fe1137a084 100644 (file)
@@ -32,6 +32,8 @@ All GUI ports:
 - fixed handling of URLs and filenames in wxFileSystem
 - implemented alignment for wxGrid bool editor and renderer
 - support wxListCtrl columns alignment for all platforms and not just MSW
+- added wxToolBar Add/InsertTool(tool) (Janusz Piwowarski)
+
 - Changed to type-safe wxSizerItemList for wxSizer child items.
 
     Deprecated:
index 4326648f39218575a56075c309d82f8034429e99..12f14173e80e228de5ab36bc05ecabb9d5741811 100644 (file)
@@ -186,9 +186,12 @@ Adds a separator for spacing groups of tools.
 \param{const wxString\& }{longHelpString = ""},\rtfsp
 \param{wxObject* }{clientData = NULL}}
 
+\func{wxToolBarTool*}{AddTool}{\param{wxToolBarTool* }{tool}}
+
 Adds a tool to the toolbar. The first (short and most commonly used) version
 has fewer parameters than the full version at the price of not being able to
-specify some of the more rarely used button features.
+specify some of the more rarely used button features. The last version allows
+to add an existing tool.
 
 \wxheading{Parameters}
 
@@ -217,6 +220,8 @@ parent frame when the mouse pointer is inside the tool}
 \docparam{clientData}{An optional pointer to client data which can be
 retrieved later using \helpref{wxToolBar::GetToolClientData}{wxtoolbargettoolclientdata}.}
 
+\docparam{tool}{The tool to be added.}
+
 \wxheading{Remarks}
 
 After you have added tools to a toolbar, you must call \helpref{wxToolBar::Realize}{wxtoolbarrealize} in
@@ -518,6 +523,9 @@ You must call \helpref{Realize}{wxtoolbarrealize} for the change to take place.
 \param{const wxBitmap\&}{ bitmap2 = wxNullBitmap}, \param{bool}{ isToggle = false},\rtfsp
 \param{wxObject* }{clientData = NULL}, \param{const wxString\& }{shortHelpString = ""}, \param{const wxString\& }{longHelpString = ""}}
 
+\func{wxToolBarTool *}{InsertTool}{\param{size\_t }{pos},\rtfsp
+\param{wxToolBarTool* }{tool}}
+
 Inserts the tool with the specified attributes into the toolbar at the given
 position.
 
index 9cd4e2ea77c5bd76cfcd6bcdb15ac3d59679ad1d..9e885dfab73f9904279a82f8f8ed7c130dac8139 100644 (file)
@@ -324,6 +324,9 @@ public:
                                     wxObject *clientData = NULL
                                );
 
+    virtual wxToolBarToolBase *AddTool (wxToolBarToolBase *tool);
+    virtual wxToolBarToolBase *InsertTool (size_t pos, wxToolBarToolBase *tool);
+
     // add an arbitrary control to the toolbar, return TRUE if ok (notice that
     // the control will be deleted by the toolbar and that it will also adjust
     // its position/size)
index 5f4b02fa90576ac1e505b4b0f550f235e3bd7a10..16589483c649c365cd3b5d6a6fbe861012be0520 100644 (file)
@@ -164,13 +164,32 @@ wxToolBarToolBase *wxToolBarBase::InsertTool(size_t pos,
     wxToolBarToolBase *tool = CreateTool(id, label, bitmap, bmpDisabled, kind,
                                          clientData, shortHelp, longHelp);
 
-    if ( !tool || !DoInsertTool(pos, tool) )
+    if ( !InsertTool(pos, tool) )
     {
         delete tool;
 
         return NULL;
     }
 
+    return tool;
+}
+
+wxToolBarToolBase *wxToolBarBase::AddTool(wxToolBarToolBase *tool)
+{
+    return InsertTool(GetToolsCount(), tool);
+}
+
+wxToolBarToolBase *
+wxToolBarBase::InsertTool(size_t pos, wxToolBarToolBase *tool)
+{
+    wxCHECK_MSG( pos <= GetToolsCount(), (wxToolBarToolBase *)NULL,
+                 _T("invalid position in wxToolBar::InsertTool()") );
+
+    if ( !tool || !DoInsertTool(pos, tool) )
+    {
+        return NULL;
+    }
+
     m_tools.Insert(pos, tool);
 
     return tool;
@@ -194,15 +213,13 @@ wxToolBarToolBase *wxToolBarBase::InsertControl(size_t pos, wxControl *control)
 
     wxToolBarToolBase *tool = CreateTool(control);
 
-    if ( !tool || !DoInsertTool(pos, tool) )
+    if ( !InsertTool(pos, tool) )
     {
         delete tool;
 
         return NULL;
     }
 
-    m_tools.Insert(pos, tool);
-
     return tool;
 }
 
@@ -213,7 +230,7 @@ wxControl *wxToolBarBase::FindControl( int id )
           node = node->GetNext() )
     {
         wxControl *control = node->GetData()->GetControl();
-        
+
         if (control)
         {
             if (control->GetId() == id)