From 0ddbdf18a2cfcf54f591b1372bb3eb9dde9728e2 Mon Sep 17 00:00:00 2001 From: Jabiertxof Date: Thu, 8 Nov 2018 19:36:18 +0100 Subject: This improve symbolic icon rendering moving it to CSS only. There is places in the UI whar we claim for a Pixbuf. Currently its not possible render them as symbolic without the previos hack --- src/widgets/button.cpp | 2 +- src/widgets/ege-adjustment-action.cpp | 2 +- src/widgets/gradient-selector.cpp | 2 +- src/widgets/ink-action.cpp | 2 +- src/widgets/ink-radio-action.cpp | 2 +- src/widgets/ink-toggle-action.cpp | 5 ++--- src/widgets/paint-selector.cpp | 6 +++--- src/widgets/toolbox.cpp | 12 ++++++++++++ src/widgets/toolbox.h | 1 + 9 files changed, 23 insertions(+), 11 deletions(-) (limited to 'src/widgets') diff --git a/src/widgets/button.cpp b/src/widgets/button.cpp index de7aa8880..8933c2672 100644 --- a/src/widgets/button.cpp +++ b/src/widgets/button.cpp @@ -214,7 +214,7 @@ static void sp_button_set_action(SPButton *button, SPAction *action) button->c_set_sensitive = action->signal_set_sensitive.connect( sigc::bind<0>(sigc::ptr_fun(>k_widget_set_sensitive), GTK_WIDGET(button))); if (action->image) { - child = GTK_WIDGET(sp_get_icon_image(action->image, button->lsize)->gobj()); + child = sp_get_icon_image(action->image, button->lsize); gtk_widget_show(child); gtk_container_add(GTK_CONTAINER(button), child); } diff --git a/src/widgets/ege-adjustment-action.cpp b/src/widgets/ege-adjustment-action.cpp index 15647c245..155f33389 100644 --- a/src/widgets/ege-adjustment-action.cpp +++ b/src/widgets/ege-adjustment-action.cpp @@ -867,7 +867,7 @@ static GtkWidget* create_tool_item( GtkAction* action ) /* Use an icon if available or use short-label */ if ( act->private_data->iconId && strcmp( act->private_data->iconId, "" ) != 0 ) { GtkWidget *icon = - GTK_WIDGET(sp_get_icon_image(act->private_data->iconId, act->private_data->iconSize)->gobj()); + sp_get_icon_image(act->private_data->iconId, act->private_data->iconSize); gtk_box_pack_start( GTK_BOX(hb), icon, FALSE, FALSE, 0 ); } else { GtkWidget* lbl = gtk_label_new( g_value_get_string( &value ) ? g_value_get_string( &value ) : "wwww" ); diff --git a/src/widgets/gradient-selector.cpp b/src/widgets/gradient-selector.cpp index 8da832a26..85c4214a7 100644 --- a/src/widgets/gradient-selector.cpp +++ b/src/widgets/gradient-selector.cpp @@ -95,7 +95,7 @@ static void sp_gradient_selector_class_init(SPGradientSelectorClass *klass) static void gradsel_style_button(GtkWidget *gtkbtn, char const *iconName) { Gtk::Button *btn = Glib::wrap(GTK_BUTTON(gtkbtn)); - GtkWidget *child = GTK_WIDGET(sp_get_icon_image(iconName, GTK_ICON_SIZE_SMALL_TOOLBAR)->gobj()); + GtkWidget *child = sp_get_icon_image(iconName, GTK_ICON_SIZE_SMALL_TOOLBAR); gtk_widget_show(child); btn->add(*manage(Glib::wrap(child))); btn->set_relief(Gtk::RELIEF_NONE); diff --git a/src/widgets/ink-action.cpp b/src/widgets/ink-action.cpp index bbdcd1c66..c879f2c11 100644 --- a/src/widgets/ink-action.cpp +++ b/src/widgets/ink-action.cpp @@ -171,7 +171,7 @@ static GtkWidget* ink_action_create_tool_item( GtkAction* action ) GtkToolButton* button = GTK_TOOL_BUTTON(item); GtkWidget *child = - GTK_WIDGET(sp_get_icon_image(act->private_data->iconId, act->private_data->iconSize)->gobj()); + sp_get_icon_image(act->private_data->iconId, act->private_data->iconSize); gtk_tool_button_set_icon_widget( button, child ); } else { // For now trigger a warning but don't do anything else diff --git a/src/widgets/ink-radio-action.cpp b/src/widgets/ink-radio-action.cpp index 5f8e3448a..fb117594a 100644 --- a/src/widgets/ink-radio-action.cpp +++ b/src/widgets/ink-radio-action.cpp @@ -168,7 +168,7 @@ static GtkWidget* ink_radio_action_create_tool_item( GtkAction* action ) GtkToolButton* button = GTK_TOOL_BUTTON(item); GtkWidget *child = - GTK_WIDGET(sp_get_icon_image(act->private_data->iconId, act->private_data->iconSize)->gobj()); + sp_get_icon_image(act->private_data->iconId, act->private_data->iconSize); gtk_widget_set_hexpand(child, FALSE); gtk_widget_set_vexpand(child, FALSE); gtk_tool_button_set_icon_widget(button, child); diff --git a/src/widgets/ink-toggle-action.cpp b/src/widgets/ink-toggle-action.cpp index fdd3e2498..f7dc36450 100644 --- a/src/widgets/ink-toggle-action.cpp +++ b/src/widgets/ink-toggle-action.cpp @@ -188,7 +188,7 @@ static GtkWidget* ink_toggle_action_create_tool_item( GtkAction* action ) GtkToolButton* button = GTK_TOOL_BUTTON(item); if ( act->private_data->iconId ) { GtkWidget *child = - GTK_WIDGET(sp_get_icon_image(act->private_data->iconId, act->private_data->iconSize)->gobj()); + sp_get_icon_image(act->private_data->iconId, act->private_data->iconSize); gtk_widget_set_hexpand(child, FALSE); gtk_widget_set_vexpand(child, FALSE); @@ -220,8 +220,7 @@ static void ink_toggle_action_update_icon( InkToggleAction* action ) if ( GTK_IS_TOOL_BUTTON(proxies->data) ) { GtkToolButton* button = GTK_TOOL_BUTTON(proxies->data); - GtkWidget *child = GTK_WIDGET( - sp_get_icon_image(action->private_data->iconId, action->private_data->iconSize)->gobj()); + GtkWidget *child = sp_get_icon_image(action->private_data->iconId, action->private_data->iconSize); gtk_widget_set_hexpand(child, FALSE); gtk_widget_set_vexpand(child, FALSE); gtk_widget_show_all(child); diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp index 51061a947..b3e4c302d 100644 --- a/src/widgets/paint-selector.cpp +++ b/src/widgets/paint-selector.cpp @@ -238,7 +238,7 @@ sp_paint_selector_init(SPPaintSelector *psel) // TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty gtk_widget_set_tooltip_text(psel->evenodd, _("Any path self-intersections or subpaths create holes in the fill (fill-rule: evenodd)")); g_object_set_data(G_OBJECT(psel->evenodd), "mode", GUINT_TO_POINTER(SPPaintSelector::FILLRULE_EVENODD)); - w = GTK_WIDGET(sp_get_icon_image("fill-rule-even-odd", GTK_ICON_SIZE_MENU)->gobj()); + w = sp_get_icon_image("fill-rule-even-odd", GTK_ICON_SIZE_MENU); gtk_container_add(GTK_CONTAINER(psel->evenodd), w); gtk_box_pack_start(GTK_BOX(psel->fillrulebox), psel->evenodd, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(psel->evenodd), "toggled", G_CALLBACK(sp_paint_selector_fillrule_toggled), psel); @@ -249,7 +249,7 @@ sp_paint_selector_init(SPPaintSelector *psel) // TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty gtk_widget_set_tooltip_text(psel->nonzero, _("Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)")); g_object_set_data(G_OBJECT(psel->nonzero), "mode", GUINT_TO_POINTER(SPPaintSelector::FILLRULE_NONZERO)); - w = GTK_WIDGET(sp_get_icon_image("fill-rule-nonzero", GTK_ICON_SIZE_MENU)->gobj()); + w = sp_get_icon_image("fill-rule-nonzero", GTK_ICON_SIZE_MENU); gtk_container_add(GTK_CONTAINER(psel->nonzero), w); gtk_box_pack_start(GTK_BOX(psel->fillrulebox), psel->nonzero, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(psel->nonzero), "toggled", G_CALLBACK(sp_paint_selector_fillrule_toggled), psel); @@ -318,7 +318,7 @@ static GtkWidget *sp_paint_selector_style_button_add(SPPaintSelector *psel, gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(b), FALSE); g_object_set_data(G_OBJECT(b), "mode", GUINT_TO_POINTER(mode)); - w = GTK_WIDGET(sp_get_icon_image(pixmap, GTK_ICON_SIZE_BUTTON)->gobj()); + w = sp_get_icon_image(pixmap, GTK_ICON_SIZE_BUTTON); gtk_container_add(GTK_CONTAINER(b), w); gtk_box_pack_start(GTK_BOX(psel->style), b, FALSE, FALSE, 0); diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp index 670693bc4..41b237b29 100644 --- a/src/widgets/toolbox.cpp +++ b/src/widgets/toolbox.cpp @@ -137,6 +137,18 @@ GtkIconSize ToolboxFactory::prefToSize( Glib::ustring const &path, int base ) { return sizeChoices[index]; } +Gtk::IconSize ToolboxFactory::prefToSize_mm( Glib::ustring const &path, int base ) { + static Gtk::IconSize sizeChoices[] = { + Gtk::ICON_SIZE_LARGE_TOOLBAR, + Gtk::ICON_SIZE_SMALL_TOOLBAR, + Gtk::ICON_SIZE_MENU, + Gtk::ICON_SIZE_DIALOG + }; + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + int index = prefs->getIntLimited( path, base, 0, G_N_ELEMENTS(sizeChoices) ); + return sizeChoices[index]; +} + static struct { gchar const *type_name; gchar const *data_name; diff --git a/src/widgets/toolbox.h b/src/widgets/toolbox.h index ff19c802c..a5cc98b5c 100644 --- a/src/widgets/toolbox.h +++ b/src/widgets/toolbox.h @@ -62,6 +62,7 @@ public: static void updateSnapToolbox(SPDesktop *desktop, Inkscape::UI::Tools::ToolBase *eventcontext, GtkWidget *toolbox); static GtkIconSize prefToSize(Glib::ustring const &path, int base = 0 ); + static Gtk::IconSize prefToSize_mm(Glib::ustring const &path, int base = 0 ); private: ToolboxFactory() = delete; -- cgit v1.2.3