Code

refactoring ICC out-of-gamut check
[inkscape.git] / src / widgets / gradient-toolbar.cpp
index 44a2e87f824d2015977bb26d505cb7cc57721918..ddd9fd96a04ebe3befd53a8302fd7a8252c8db23 100644 (file)
@@ -26,7 +26,7 @@
 #include "widgets/gradient-image.h"
 #include "style.h"
 
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "document-private.h"
 #include "desktop.h"
 #include "desktop-handles.h"
@@ -38,6 +38,7 @@
 #include "sp-radial-gradient.h"
 #include "gradient-chemistry.h"
 #include "selection.h"
+#include "ui/icon-names.h"
 
 #include "toolbox.h"
 
 //########################
 
 static void gr_toggle_type (GtkWidget *button, gpointer data) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     GtkWidget *linear = (GtkWidget *) g_object_get_data (G_OBJECT(data), "linear");
     GtkWidget *radial = (GtkWidget *) g_object_get_data (G_OBJECT(data), "radial");
     if (button == linear && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (linear))) {
-        prefs_set_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_LINEAR);
+        prefs->setInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR);
         if (radial) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radial), FALSE);
     } else if (button == radial && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (radial))) {
-        prefs_set_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_RADIAL);
+        prefs->setInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_RADIAL);
         if (linear) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (linear), FALSE);
     }
 }
 
 static void gr_toggle_fillstroke (GtkWidget *button, gpointer data) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     GtkWidget *fill = (GtkWidget *) g_object_get_data (G_OBJECT(data), "fill");
     GtkWidget *stroke = (GtkWidget *) g_object_get_data (G_OBJECT(data), "stroke");
     if (button == fill && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fill))) {
-        prefs_set_int_attribute ("tools.gradient", "newfillorstroke", 1);
+        prefs->setBool("/tools/gradient/newfillorstroke", true);
         if (stroke) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (stroke), FALSE);
     } else if (button == stroke && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (stroke))) {
-        prefs_set_int_attribute ("tools.gradient", "newfillorstroke", 0);
+        prefs->setBool("/tools/gradient/newfillorstroke", false);
         if (fill) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fill), FALSE);
     }
 }
@@ -113,8 +116,9 @@ gradient.
 void
 gr_apply_gradient (Inkscape::Selection *selection, GrDrag *drag, SPGradient *gr)
 {
-    SPGradientType new_type = (SPGradientType) prefs_get_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_LINEAR);
-    guint new_fill = prefs_get_int_attribute ("tools.gradient", "newfillorstroke", 1);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    SPGradientType new_type = (SPGradientType) prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR);
+    guint new_fill = prefs->getBool("/tools/gradient/newfillorstroke", true);
 
 
     // GRADIENTFIXME: make this work for multiple selected draggers.
@@ -381,36 +385,36 @@ gr_tb_selection_changed (Inkscape::Selection *, gpointer data)
 }
 
 static void
-gr_tb_selection_modified (Inkscape::Selection *selection, guint flags, gpointer data)
+gr_tb_selection_modified (Inkscape::Selection *selection, guint /*flags*/, gpointer data)
 {
     gr_tb_selection_changed (selection, data);
 }
 
 static void
-gr_drag_selection_changed (gpointer dragger, gpointer data)
+gr_drag_selection_changed (gpointer /*dragger*/, gpointer data)
 {
     gr_tb_selection_changed (NULL, data);
 }
 
 static void
-gr_defs_release (SPObject *defs, GtkWidget *widget)
+gr_defs_release (SPObject */*defs*/, GtkWidget *widget)
 {
     gr_tb_selection_changed (NULL, (gpointer) widget);
 }
 
 static void
-gr_defs_modified (SPObject *defs, guint flags, GtkWidget *widget)
+gr_defs_modified (SPObject */*defs*/, guint /*flags*/, GtkWidget *widget)
 {
     gr_tb_selection_changed (NULL, (gpointer) widget);
 }
 
-static void gr_disconnect_sigc (GObject *obj, sigc::connection *connection) {
+static void gr_disconnect_sigc (GObject */*obj*/, sigc::connection *connection) {
     connection->disconnect();
     delete connection;
 }
 
 static void
-gr_edit (GtkWidget *button, GtkWidget *widget)
+gr_edit (GtkWidget */*button*/, GtkWidget *widget)
 {
     GtkWidget *om = (GtkWidget *) g_object_get_data (G_OBJECT(widget), "menu");
 
@@ -512,7 +516,8 @@ gr_change_widget (SPDesktop *desktop)
 GtkWidget *
 sp_gradient_toolbox_new(SPDesktop *desktop)
 {
-    GtkWidget *tbl = gtk_hbox_new(FALSE, 0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    GtkWidget *tbl = gtk_toolbar_new();
 
     gtk_object_set_data(GTK_OBJECT(tbl), "dtw", desktop->canvas);
     gtk_object_set_data(GTK_OBJECT(tbl), "desktop", desktop);
@@ -521,7 +526,7 @@ sp_gradient_toolbox_new(SPDesktop *desktop)
 
     sp_toolbox_add_label(tbl, _("<b>New:</b>"));
 
-    aux_toolbox_space(tbl, AUX_SPACING);
+    // TODO replace aux_toolbox_space(tbl, AUX_SPACING);
 
     {
     GtkWidget *cvbox = gtk_vbox_new (FALSE, 0);
@@ -531,13 +536,13 @@ sp_gradient_toolbox_new(SPDesktop *desktop)
     GtkWidget *button = sp_button_new_from_data( Inkscape::ICON_SIZE_DECORATION,
                                               SP_BUTTON_TYPE_TOGGLE,
                                               NULL,
-                                              "fill_gradient",
+                                              INKSCAPE_ICON_PAINT_GRADIENT_LINEAR,
                                               _("Create linear gradient"),
                                               tt);
     g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_type), tbl);
     g_object_set_data(G_OBJECT(tbl), "linear", button);
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button),
-              prefs_get_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_LINEAR) == SP_GRADIENT_TYPE_LINEAR);
+              prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR) == SP_GRADIENT_TYPE_LINEAR);
     gtk_box_pack_start(GTK_BOX(cbox), button, FALSE, FALSE, 0);
     }
 
@@ -545,25 +550,25 @@ sp_gradient_toolbox_new(SPDesktop *desktop)
     GtkWidget *button = sp_button_new_from_data( Inkscape::ICON_SIZE_DECORATION,
                                               SP_BUTTON_TYPE_TOGGLE,
                                               NULL,
-                                              "fill_radial",
+                                              INKSCAPE_ICON_PAINT_GRADIENT_RADIAL,
                                               _("Create radial (elliptic or circular) gradient"),
                                               tt);
     g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_type), tbl);
     g_object_set_data(G_OBJECT(tbl), "radial", button);
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button),
-              prefs_get_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_LINEAR) == SP_GRADIENT_TYPE_RADIAL);
+              prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR) == SP_GRADIENT_TYPE_RADIAL);
     gtk_box_pack_start(GTK_BOX(cbox), button, FALSE, FALSE, 0);
     }
 
     gtk_box_pack_start(GTK_BOX(cvbox), cbox, TRUE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(tbl), cvbox, FALSE, FALSE, 0);
+    gtk_toolbar_append_widget( GTK_TOOLBAR(tbl), cvbox, "", "" );
     }
 
-    aux_toolbox_space(tbl, AUX_SPACING);
+    // TODO replace aux_toolbox_space(tbl, AUX_SPACING);
 
     sp_toolbox_add_label(tbl, _("on"), false);
 
-    aux_toolbox_space(tbl, AUX_SPACING);
+    // TODO replace aux_toolbox_space(tbl, AUX_SPACING);
 
     {
         GtkWidget *cvbox = gtk_vbox_new (FALSE, 0);
@@ -573,13 +578,13 @@ sp_gradient_toolbox_new(SPDesktop *desktop)
     GtkWidget *button = sp_button_new_from_data( Inkscape::ICON_SIZE_DECORATION,
                                               SP_BUTTON_TYPE_TOGGLE,
                                               NULL,
-                                              "controls_fill",
+                                              INKSCAPE_ICON_OBJECT_FILL,
                                               _("Create gradient in the fill"),
                                               tt);
     g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_fillstroke), tbl);
     g_object_set_data(G_OBJECT(tbl), "fill", button);
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button),
-                                  prefs_get_int_attribute ("tools.gradient", "newfillorstroke", 1) == 1);
+                                  prefs->getBool("/tools/gradient/newfillorstroke", true));
     gtk_box_pack_start(GTK_BOX(cbox), button, FALSE, FALSE, 0);
     }
 
@@ -587,28 +592,28 @@ sp_gradient_toolbox_new(SPDesktop *desktop)
     GtkWidget *button = sp_button_new_from_data( Inkscape::ICON_SIZE_DECORATION,
                                               SP_BUTTON_TYPE_TOGGLE,
                                               NULL,
-                                              "controls_stroke",
+                                              INKSCAPE_ICON_OBJECT_STROKE,
                                               _("Create gradient in the stroke"),
                                               tt);
     g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_fillstroke), tbl);
     g_object_set_data(G_OBJECT(tbl), "stroke", button);
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button),
-                                  prefs_get_int_attribute ("tools.gradient", "newfillorstroke", 1) == 0);
+                                  !prefs->getBool("/tools/gradient/newfillorstroke", true));
     gtk_box_pack_start(GTK_BOX(cbox), button, FALSE, FALSE, 0);
     }
 
     gtk_box_pack_start(GTK_BOX(cvbox), cbox, TRUE, TRUE, 3);
-    gtk_box_pack_start(GTK_BOX(tbl), cvbox, FALSE, FALSE, 0);
+    gtk_toolbar_append_widget( GTK_TOOLBAR(tbl), cvbox, "", "" );
     }
 
 
     sp_toolbox_add_label(tbl, _("<b>Change:</b>"));
 
-    aux_toolbox_space(tbl, AUX_SPACING);
+    // TODO replace aux_toolbox_space(tbl, AUX_SPACING);
 
     {
         GtkWidget *vectors = gr_change_widget (desktop);
-        gtk_box_pack_start (GTK_BOX (tbl), vectors, FALSE, FALSE, 0);
+        gtk_toolbar_append_widget( GTK_TOOLBAR(tbl), vectors, "", "" );
     }
 
     gtk_widget_show_all(tbl);