}
}
+ void SetPixmap(const wxBitmap& bitmap)
+ {
+ if (bitmap.Ok())
+ {
+ GdkBitmap *mask = bitmap.GetMask() ? bitmap.GetMask()->GetBitmap()
+ : (GdkBitmap *)NULL;
+#ifdef __WXGTK20__
+ if (bitmap.HasPixbuf())
+ gtk_image_set_from_pixbuf(GTK_IMAGE(m_pixmap),
+ bitmap.GetPixbuf());
+ else
+ gtk_image_set_from_pixmap(GTK_IMAGE(m_pixmap),
+ bitmap.GetPixmap(), mask);
+#else
+ gtk_pixmap_set(GTK_PIXMAP(m_pixmap), bitmap.GetPixmap(), mask);
+#endif // !__WXGTK20__
+ }
+ }
+
GtkWidget *m_item;
GtkWidget *m_pixmap;
{
tool->Toggle();
- wxBitmap bitmap = tool->GetBitmap();
- if ( bitmap.Ok() )
- {
- GtkPixmap *pixmap = GTK_PIXMAP( tool->m_pixmap );
-
- GdkBitmap *mask = bitmap.GetMask() ? bitmap.GetMask()->GetBitmap()
- : (GdkBitmap *)NULL;
-
- gtk_pixmap_set( pixmap, bitmap.GetPixmap(), mask );
- }
+ tool->SetPixmap(tool->GetBitmap());
if ( tool->IsRadio() && !tool->IsToggled() )
{
// revert back
tool->Toggle();
- wxBitmap bitmap = tool->GetBitmap();
- if ( bitmap.Ok() )
- {
- GtkPixmap *pixmap = GTK_PIXMAP( tool->m_pixmap );
-
- GdkBitmap *mask = bitmap.GetMask() ? bitmap.GetMask()->GetBitmap()
- : (GdkBitmap *)NULL;
-
- gtk_pixmap_set( pixmap, bitmap.GetPixmap(), mask );
- }
+ tool->SetPixmap(tool->GetBitmap());
}
}
GtkWidget *tool_pixmap = (GtkWidget *)NULL;
+
+#ifdef __WXGTK20__
+ tool_pixmap = gtk_image_new();
+ tool->m_pixmap = tool_pixmap;
+ tool->SetPixmap(bitmap);
+#else
GdkPixmap *pixmap = bitmap.GetPixmap();
GdkBitmap *mask = (GdkBitmap *)NULL;
if ( bitmap.GetMask() )
mask = bitmap.GetMask()->GetBitmap();
-
+
tool_pixmap = gtk_pixmap_new( pixmap, mask );
gtk_pixmap_set_build_insensitive( GTK_PIXMAP(tool_pixmap), TRUE );
+#endif
gtk_misc_set_alignment( GTK_MISC(tool_pixmap), 0.5, 0.5 );
(m_widget, &req );
m_width = req.width + m_xMargin;
m_height = req.height + 2*m_yMargin;
+ InvalidateBestSize();
return TRUE;
}
//case wxTOOL_STYLE_SEPARATOR: -- nothing to do
}
+ InvalidateBestSize();
return TRUE;
}
GtkWidget *item = tool->m_item;
if ( item && GTK_IS_TOGGLE_BUTTON(item) )
{
- wxBitmap bitmap = tool->GetBitmap();
- if ( bitmap.Ok() )
- {
- GtkPixmap *pixmap = GTK_PIXMAP( tool->m_pixmap );
-
- GdkBitmap *mask = bitmap.GetMask() ? bitmap.GetMask()->GetBitmap()
- : (GdkBitmap *)NULL;
-
- gtk_pixmap_set( pixmap, bitmap.GetPixmap(), mask );
- }
+ tool->SetPixmap(tool->GetBitmap());
m_blockEvent = TRUE;