diff --git a/src/ink-action.cpp b/src/ink-action.cpp
index f1dcaf04b5aa4d875458e1a18e7c5aad6f08b730..d8673a3ab04ac95c8a816a6cdf82c5211a9d430e 100644 (file)
--- a/src/ink-action.cpp
+++ b/src/ink-action.cpp
#include <glib/gi18n.h>
+#include <gtk/gtkalignment.h>
#include <gtk/gtktooltips.h>
#include <gtk/gtktoolitem.h>
#include <gtk/gtktoggletoolbutton.h>
#include "widgets/button.h"
#include "widgets/icon.h"
-
-
static void ink_action_class_init( InkActionClass* klass );
static void ink_action_init( InkAction* action );
static void ink_action_finalize( GObject* obj );
}
+//Any strings passed in should already be localised
InkAction* ink_action_new( const gchar *name,
const gchar *label,
const gchar *tooltip,
if ( SP_IS_ICON(child) ) {
SPIcon* icon = SP_ICON(child);
sp_icon_fetch_pixbuf( icon );
- GdkPixbuf* target = gtk_action_is_sensitive(action) ? icon->pb : icon->pb_faded;
+ GdkPixbuf* target = icon->pb;
if ( target ) {
child = gtk_image_new_from_pixbuf( target );
+ gtk_widget_set_sensitive(child, gtk_action_is_sensitive(action));
gtk_widget_destroy( GTK_WIDGET(icon) );
}
}
"Icon Size",
"The size the icon",
(int)Inkscape::ICON_SIZE_MENU,
- (int)Inkscape::ICON_SIZE_DECORATION,
+ (int)99,
(int)Inkscape::ICON_SIZE_SMALL_TOOLBAR,
(GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT) ) );
const gchar *label,
const gchar *tooltip,
const gchar *inkId,
- Inkscape::IconSize size )
+ Inkscape::IconSize size,
+ SPAttributeEnum attr)
{
GObject* obj = (GObject*)g_object_new( INK_TOGGLE_ACTION_TYPE,
"name", name,
"label", label,
"tooltip", tooltip,
"iconId", inkId,
- "iconSize", size,
+ "iconSize", Inkscape::getRegisteredIconSize(size),
+ //"SP_ATTR_INKSCAPE", attr, // Why doesn't this work and do I need to use g_object_set_data below?
NULL );
+ g_object_set_data(obj, "SP_ATTR_INKSCAPE", GINT_TO_POINTER(attr));
InkToggleAction* action = INK_TOGGLE_ACTION( obj );
return action;
static GtkWidget* ink_toggle_action_create_tool_item( GtkAction* action )
{
- InkToggleAction* act = INK_TOGGLE_ACTION( action );
+ InkToggleAction* act = INK_TOGGLE_ACTION( action );
- GtkWidget* item = gInkToggleActionParentClass->parent_class.create_tool_item(action);
- if ( GTK_IS_TOOL_BUTTON(item) ) {
- GtkToolButton* button = GTK_TOOL_BUTTON(item);
- if ( act->private_data->iconId ) {
- GtkWidget* child = sp_icon_new( act->private_data->iconSize, act->private_data->iconId );
- gtk_tool_button_set_icon_widget( button, child );
- } else {
- gchar *label;
- g_object_get (G_OBJECT(action), "label", &label, NULL);
- gtk_tool_button_set_label( button, label );
- }
- } else {
- // For now trigger a warning but don't do anything else
- GtkToolButton* button = GTK_TOOL_BUTTON(item);
- (void)button;
- }
- gtk_widget_show_all( item );
-
- return item;
+ GtkWidget* item = gInkToggleActionParentClass->parent_class.create_tool_item(action);
+ if ( GTK_IS_TOOL_BUTTON(item) ) {
+ GtkToolButton* button = GTK_TOOL_BUTTON(item);
+ if ( act->private_data->iconId ) {
+ GtkWidget* child = sp_icon_new( act->private_data->iconSize, act->private_data->iconId );
+ GtkWidget* align = gtk_alignment_new( 0.5, 0.5, 0.0, 0.0 );
+ gtk_container_add( GTK_CONTAINER(align), child );
+ gtk_tool_button_set_icon_widget( button, align );
+ } else {
+ gchar *label;
+ g_object_get (G_OBJECT(action), "short_label", &label, NULL);
+ gtk_tool_button_set_label( button, label );
+ }
+ } else {
+ // For now trigger a warning but don't do anything else
+ GtkToolButton* button = GTK_TOOL_BUTTON(item);
+ (void)button;
+ }
+ gtk_widget_show_all( item );
+
+ return item;
}
"label", label,
"tooltip", tooltip,
"iconId", inkId,
- "iconSize", size,
+ "iconSize", Inkscape::getRegisteredIconSize(size),
NULL );
InkRadioAction* action = INK_RADIO_ACTION( obj );
GtkToolButton* button = GTK_TOOL_BUTTON(item);
GtkWidget* child = sp_icon_new( act->private_data->iconSize, act->private_data->iconId );
- gtk_tool_button_set_icon_widget( button, child );
+ GtkWidget* align = gtk_alignment_new( 0.5, 0.5, 0.0, 0.0 );
+ gtk_container_add( GTK_CONTAINER(align), child );
+ gtk_tool_button_set_icon_widget( button, align );
} else {
// For now trigger a warning but don't do anything else
GtkToolButton* button = GTK_TOOL_BUTTON(item);