/////////////////////////////////////////////////////////////////////////////
-// Name: tbargtk.cpp
+// Name: src/gtk1/tbargtk.cpp
// Purpose: GTK toolbar
// Author: Robert Roebling
// Modified: 13.12.99 by VZ to derive from wxToolBarBase
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
-#include "wx/toolbar.h"
-
#if wxUSE_TOOLBAR_NATIVE
-#include "wx/frame.h"
+#include "wx/toolbar.h"
+
+#ifndef WX_PRECOMP
+ #include "wx/frame.h"
+#endif
#include <glib.h>
#include "wx/gtk1/private.h"
Init();
}
- wxToolBarTool(wxToolBar *tbar, wxControl *control)
- : wxToolBarToolBase(tbar, control)
+ wxToolBarTool(wxToolBar *tbar, wxControl *control, const wxString& label)
+ : wxToolBarToolBase(tbar, control, label)
{
Init();
}
return GTK_TOOLBAR_CHILD_RADIOBUTTON;
default:
- wxFAIL_MSG( _T("unknown toolbar child type") );
+ wxFAIL_MSG( wxT("unknown toolbar child type") );
// fall through
case wxITEM_NORMAL:
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;
return false;
}
+ FixupStyle();
+
GtkOrientation orient;
GtkToolbarStyle gtkStyle;
GetGtkStyle(style, &orient, >kStyle);
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();
if ( !tool->m_item )
{
- wxFAIL_MSG( _T("gtk_toolbar_insert_element() failed") );
+ wxFAIL_MSG( wxT("gtk_toolbar_insert_element() failed") );
return false;
}
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();
bool WXUNUSED(toggle))
{
// VZ: absolutely no idea about how to do it
- wxFAIL_MSG( _T("not implemented") );
+ wxFAIL_MSG( wxT("not implemented") );
}
// ----------------------------------------------------------------------------
wxCoord WXUNUSED(y)) const
{
// VZ: GTK+ doesn't seem to have such thing
- wxFAIL_MSG( _T("wxToolBar::FindToolForPosition() not implemented") );
+ wxFAIL_MSG( wxT("wxToolBar::FindToolForPosition() not implemented") );
- return (wxToolBarToolBase *)NULL;
+ return NULL;
}
void wxToolBar::SetMargins( int x, int y )