]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/tbarbase.cpp
Add wxDataViewCtrl::GTKPathToItem() function and use it.
[wxWidgets.git] / src / common / tbarbase.cpp
index 37f38fa16984a6526419757bf86bcc9741c6fdb6..94d015f1554641d1d16ffce7064328b70b7bb948 100644 (file)
@@ -61,7 +61,10 @@ IMPLEMENT_DYNAMIC_CLASS(wxToolBarToolBase, wxObject)
 
 wxToolBarToolBase::~wxToolBarToolBase()
 {
+#if wxUSE_MENUS
     delete m_dropdownMenu;
+#endif
+
     if ( IsControl() )
         GetControl()->Destroy();
 }
@@ -121,11 +124,13 @@ bool wxToolBarToolBase::SetLongHelp(const wxString& help)
 }
 
 
+#if wxUSE_MENUS
 void wxToolBarToolBase::SetDropdownMenu(wxMenu* menu)
 {
     delete m_dropdownMenu;
     m_dropdownMenu = menu;
 }
+#endif
 
 
 // ----------------------------------------------------------------------------
@@ -259,11 +264,29 @@ wxToolBarToolBase *wxToolBarBase::AddSeparator()
 
 wxToolBarToolBase *wxToolBarBase::InsertSeparator(size_t pos)
 {
-    return DoInsertNewTool(pos, CreateTool(wxID_SEPARATOR,
-                                           wxEmptyString,
-                                           wxNullBitmap, wxNullBitmap,
-                                           wxITEM_SEPARATOR, NULL,
-                                           wxEmptyString, wxEmptyString));
+    return DoInsertNewTool(pos, CreateSeparator());
+}
+
+wxToolBarToolBase *wxToolBarBase::AddStretchableSpace()
+{
+    return InsertStretchableSpace(GetToolsCount());
+}
+
+wxToolBarToolBase *wxToolBarBase::InsertStretchableSpace(size_t pos)
+{
+    wxToolBarToolBase * const tool = CreateSeparator();
+    if ( tool )
+    {
+        // this is a hack but we know that all the current implementations
+        // don't really use the tool when it's created, they will do it
+        // InsertTool() at earliest and maybe even in Realize() much later
+        //
+        // so we can create the tool as a plain separator and mark it as being
+        // a stretchable space later
+        tool->MakeStretchable();
+    }
+
+    return DoInsertNewTool(pos, tool);
 }
 
 wxToolBarToolBase *wxToolBarBase::RemoveTool(int id)
@@ -436,8 +459,7 @@ bool wxToolBarBase::Realize()
     if ( m_tools.empty() )
         return false;
 
-    // make sure tool size is larger enough for all all bitmaps to fit in
-    // (this is consistent with what other ports do):
+    // make sure tool size is large enough for all bitmaps to fit in
     AdjustToolBitmapSize();
 
     return true;
@@ -712,6 +734,7 @@ void wxToolBarBase::UpdateWindowUI(long flags)
     }
 }
 
+#if wxUSE_MENUS
 bool wxToolBarBase::SetDropdownMenu(int toolid, wxMenu* menu)
 {
     wxToolBarToolBase * const tool = FindById(toolid);
@@ -724,6 +747,7 @@ bool wxToolBarBase::SetDropdownMenu(int toolid, wxMenu* menu)
 
     return true;
 }
+#endif
 
 #if WXWIN_COMPATIBILITY_2_8