Code

Fix change in revision 9947 to be consistent with rest of the codebase.
[inkscape.git] / src / ink-action.cpp
index 138adafd18f232f92463b84e0cc6507f8b8903a8..d8673a3ab04ac95c8a816a6cdf82c5211a9d430e 100644 (file)
@@ -2,6 +2,7 @@
 
 
 #include <glib/gi18n.h>
+#include <gtk/gtkalignment.h>
 #include <gtk/gtktooltips.h>
 #include <gtk/gtktoolitem.h>
 #include <gtk/gtktoggletoolbutton.h>
@@ -14,8 +15,6 @@
 #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 );
@@ -116,6 +115,7 @@ 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,
@@ -200,9 +200,10 @@ static GtkWidget* ink_action_create_menu_item( GtkAction* action )
         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) );
             }
         }
@@ -324,7 +325,7 @@ static void ink_toggle_action_class_init( InkToggleActionClass* klass )
                                                            "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) ) );
 
@@ -352,16 +353,19 @@ InkToggleAction* ink_toggle_action_new( const gchar *name,
                            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;
@@ -427,22 +431,25 @@ static GtkWidget* ink_toggle_action_create_menu_item( GtkAction* action )
 static GtkWidget* ink_toggle_action_create_tool_item( GtkAction* action )
 {
     InkToggleAction* act = INK_TOGGLE_ACTION( action );
-    GtkWidget* item = gInkToggleActionParentClass->parent_class.create_tool_item(action);
-
-    if ( act->private_data->iconId ) {
-        if ( GTK_IS_TOOL_BUTTON(item) ) {
-            GtkToolButton* button = GTK_TOOL_BUTTON(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 );
-            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);
-            (void)button;
+            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;
     }
-
-    // TODO investigate if needed
     gtk_widget_show_all( item );
 
     return item;
@@ -583,7 +590,7 @@ InkRadioAction* ink_radio_action_new( const gchar *name,
                                            "label", label,
                                            "tooltip", tooltip,
                                            "iconId", inkId,
-                                           "iconSize", size,
+                                           "iconSize", Inkscape::getRegisteredIconSize(size),
                                            NULL );
 
     InkRadioAction* action = INK_RADIO_ACTION( obj );
@@ -656,7 +663,9 @@ static GtkWidget* ink_radio_action_create_tool_item( GtkAction* action )
             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);