]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/tbarbase.cpp
Reports suggest that _sometimes_ WS_VSCROLL/WS_HSCROLL
[wxWidgets.git] / src / common / tbarbase.cpp
index 16589483c649c365cd3b5d6a6fbe861012be0520..020171d8f4bc1d5b21d23cbeb56792f1c5ae7196 100644 (file)
@@ -5,8 +5,8 @@
 // Modified by: VZ at 11.12.99 (wxScrollableToolBar splitted off)
 // Created:     04/01/98
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:     wxWindows license
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
@@ -229,12 +229,20 @@ wxControl *wxToolBarBase::FindControl( int id )
           node;
           node = node->GetNext() )
     {
-        wxControl *control = node->GetData()->GetControl();
-
-        if (control)
+        const wxToolBarToolBase * const tool = node->GetData();
+        if ( tool->IsControl() )
         {
-            if (control->GetId() == id)
+            wxControl * const control = tool->GetControl();
+
+            if ( !control )
+            {
+                wxFAIL_MSG( _T("NULL control in toolbar?") );
+            }
+            else if ( control->GetId() == id )
+            {
+                // found
                 return control;
+            }
         }
     }
 
@@ -450,6 +458,22 @@ void wxToolBarBase::SetToolClientData(int id, wxObject *clientData)
     tool->SetClientData(clientData);
 }
 
+int wxToolBarBase::GetToolPos(int id) const
+{
+    size_t pos = 0;
+    wxToolBarToolsList::Node *node;
+
+    for ( node = m_tools.GetFirst(); node; node = node->GetNext() )
+    {
+        if ( node->GetData()->GetId() == id )
+            return pos;
+
+        pos++;
+    }
+
+    return wxNOT_FOUND;
+}
+
 bool wxToolBarBase::GetToolState(int id) const
 {
     wxToolBarToolBase *tool = FindById(id);