Code

Use subdirectories with icon sizes.
[inkscape.git] / src / ink-action.cpp
index acb65d1310f522be7163a41c68ac8541e30da1b0..d8673a3ab04ac95c8a816a6cdf82c5211a9d430e 100644 (file)
@@ -15,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 );
@@ -202,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) );
             }
         }
@@ -354,7 +353,8 @@ 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,
@@ -362,8 +362,10 @@ InkToggleAction* ink_toggle_action_new( const gchar *name,
                                            "tooltip", tooltip,
                                            "iconId", inkId,
                                            "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;
@@ -661,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);