wxToolBarToolBase::~wxToolBarToolBase()
{
delete m_dropdownMenu;
+ if ( IsControl() )
+ GetControl()->Destroy();
}
m_dropdownMenu = menu;
}
+
// ----------------------------------------------------------------------------
// wxToolBarBase adding/deleting items
// ----------------------------------------------------------------------------
}
m_tools.Insert(pos, tool);
+ tool->Attach(this);
return tool;
}
{
// don't give any error messages - sometimes we might call RemoveTool()
// without knowing whether the tool is or not in the toolbar
- return (wxToolBarToolBase *)NULL;
+ return NULL;
}
wxToolBarToolBase *tool = node->GetData();
+ wxCHECK_MSG( tool, NULL, "NULL tool in the tools list?" );
+
if ( !DoDeleteTool(pos, tool) )
- {
- return (wxToolBarToolBase *)NULL;
- }
+ return NULL;
m_tools.Erase(node);
+ tool->Detach();
+
return tool;
}
// nothing
}
+bool wxToolBarBase::IsVertical() const
+{
+ return HasFlag(wxTB_LEFT | wxTB_RIGHT);
+}
+
+
// ----------------------------------------------------------------------------
// event processing
// ----------------------------------------------------------------------------
node;
node = node->GetNext() )
{
- int id = node->GetData()->GetId();
+ wxToolBarToolBase * const tool = node->GetData();
+ if ( tool->IsSeparator() )
+ continue;
+
+ int id = tool->GetId();
wxUpdateUIEvent event(id);
event.SetEventObject(this);