Init();
}
- wxToolBarTool(wxToolBar *tbar, wxControl *control)
- : wxToolBarToolBase(tbar, control)
+ wxToolBarTool(wxToolBar *tbar, wxControl *control, const wxString& label)
+ : wxToolBarToolBase(tbar, control, label)
{
Init();
}
if (bitmap.Ok())
{
GdkBitmap *mask = bitmap.GetMask() ? bitmap.GetMask()->GetBitmap()
- : (GdkBitmap *)NULL;
+ : NULL;
gtk_pixmap_set( GTK_PIXMAP(m_pixmap), bitmap.GetPixmap(), mask );
}
}
void wxToolBarTool::Init()
{
m_item =
- m_pixmap = (GtkWidget *)NULL;
+ m_pixmap = NULL;
}
wxToolBarToolBase *wxToolBar::CreateTool(int id,
clientData, shortHelpString, longHelpString);
}
-wxToolBarToolBase *wxToolBar::CreateTool(wxControl *control)
+wxToolBarToolBase *
+wxToolBar::CreateTool(wxControl *control, const wxString& label)
{
- return new wxToolBarTool(this, control);
+ return new wxToolBarTool(this, control, label);
}
//-----------------------------------------------------------------------------
void wxToolBar::Init()
{
- m_toolbar = (GtkToolbar *)NULL;
+ m_toolbar = NULL;
m_blockEvent = false;
m_defaultWidth = 32;
m_defaultHeight = 32;
wxCHECK_MSG( bitmap.GetPixmap() != NULL, false,
wxT("wxToolBar::Add needs a wxBitmap") );
- GtkWidget *tool_pixmap = (GtkWidget *)NULL;
+ GtkWidget *tool_pixmap = NULL;
GdkPixmap *pixmap = bitmap.GetPixmap();
- GdkBitmap *mask = (GdkBitmap *)NULL;
+ GdkBitmap *mask = NULL;
if ( bitmap.GetMask() )
mask = bitmap.GetMask()->GetBitmap();
return true;
}
-bool wxToolBar::DoDeleteTool(size_t pos, wxToolBarToolBase *toolBase)
+bool wxToolBar::DoDeleteTool(size_t WXUNUSED(pos), wxToolBarToolBase *toolBase)
{
wxToolBarTool *tool = (wxToolBarTool *)toolBase;
switch ( tool->GetStyle() )
{
case wxTOOL_STYLE_CONTROL:
- tool->GetControl()->Destroy();
+ // don't destroy the control here as we can be called from
+ // RemoveTool() and then we need to keep the control alive;
+ // while if we're called from DeleteTool() the control will
+ // be destroyed when wxToolBarToolBase itself is deleted
break;
case wxTOOL_STYLE_BUTTON:
gtk_widget_destroy( tool->m_item );
break;
+
+ default:
+ wxFAIL_MSG( "unknown tool style" );
+ return false;
}
InvalidateBestSize();
// VZ: GTK+ doesn't seem to have such thing
wxFAIL_MSG( _T("wxToolBar::FindToolForPosition() not implemented") );
- return (wxToolBarToolBase *)NULL;
+ return NULL;
}
void wxToolBar::SetMargins( int x, int y )