gui, widgets: Connect GimpColorNotebook to icon size changes
Inspired by Mark Sweeney's work. GimpColorNotebook has existing code to update the color selector tab icon sizes via CSS. However, it was not set up to be notified of icon size changes from the GUI. Since GimpColorNotebook is in libgimpwidgets, we call its style_updated () function from the style_updated () functions of the two widgets its created in - GimpColorEditor and GimpColorDialog.
This commit is contained in:
parent
c31faab2c0
commit
c5efa0b874
3 changed files with 45 additions and 6 deletions
|
|
@ -480,6 +480,8 @@ themes_apply_theme (Gimp *gimp,
|
|||
"\n"
|
||||
"* { -GimpDockbook-tab-icon-size: %s; }"
|
||||
"\n"
|
||||
"* { -GimpColorNotebook-tab-icon-size: %s; }"
|
||||
"\n"
|
||||
"* { -GimpEditor-button-icon-size: %s; }"
|
||||
"\n"
|
||||
"toolpalette button { padding: %dpx; }"
|
||||
|
|
@ -487,7 +489,7 @@ themes_apply_theme (Gimp *gimp,
|
|||
"button, tab { padding: %dpx; }"
|
||||
"\n"
|
||||
"paned separator { padding: %dpx; }",
|
||||
tool_icon_size, tab_icon_size, button_icon_size,
|
||||
tool_icon_size, tab_icon_size, tab_icon_size, button_icon_size,
|
||||
pal_padding, tab_padding, sep_padding);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -79,6 +79,8 @@ static void gimp_color_dialog_get_property (GObject *object,
|
|||
GValue *value,
|
||||
GParamSpec *pspec);
|
||||
|
||||
static void gimp_color_dialog_style_updated (GtkWidget *widget);
|
||||
|
||||
static void gimp_color_dialog_response (GtkDialog *dialog,
|
||||
gint response_id);
|
||||
|
||||
|
|
@ -123,13 +125,16 @@ gimp_color_dialog_class_init (GimpColorDialogClass *klass)
|
|||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
GtkDialogClass *dialog_class = GTK_DIALOG_CLASS (klass);
|
||||
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
||||
|
||||
object_class->constructed = gimp_color_dialog_constructed;
|
||||
object_class->finalize = gimp_color_dialog_finalize;
|
||||
object_class->set_property = gimp_color_dialog_set_property;
|
||||
object_class->get_property = gimp_color_dialog_get_property;
|
||||
|
||||
dialog_class->response = gimp_color_dialog_response;
|
||||
dialog_class->response = gimp_color_dialog_response;
|
||||
|
||||
widget_class->style_updated = gimp_color_dialog_style_updated;
|
||||
|
||||
color_dialog_signals[UPDATE] =
|
||||
g_signal_new ("update",
|
||||
|
|
@ -328,6 +333,19 @@ gimp_color_dialog_get_property (GObject *object,
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_dialog_style_updated (GtkWidget *widget)
|
||||
{
|
||||
GimpColorDialog *dialog = GIMP_COLOR_DIALOG (widget);
|
||||
GimpColorNotebook *notebook;
|
||||
|
||||
GTK_WIDGET_CLASS (parent_class)->style_updated (widget);
|
||||
|
||||
notebook =
|
||||
GIMP_COLOR_NOTEBOOK (gimp_color_selection_get_notebook (GIMP_COLOR_SELECTION (dialog->selection)));
|
||||
GTK_WIDGET_GET_CLASS (notebook)->style_updated (GTK_WIDGET (notebook));
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_color_dialog_response (GtkDialog *gtk_dialog,
|
||||
gint response_id)
|
||||
|
|
@ -787,10 +805,23 @@ gimp_color_dialog_show (GimpColorDialog *dialog)
|
|||
g_signal_connect_object (user_context, "image-changed",
|
||||
G_CALLBACK (gimp_color_dialog_image_changed),
|
||||
dialog, 0);
|
||||
g_signal_connect_object (viewable_dialog->context->gimp->config,
|
||||
"notify::theme",
|
||||
G_CALLBACK (gimp_color_dialog_style_updated),
|
||||
dialog, G_CONNECT_AFTER | G_CONNECT_SWAPPED);
|
||||
g_signal_connect_object (viewable_dialog->context->gimp->config,
|
||||
"notify::override-theme-icon-size",
|
||||
G_CALLBACK (gimp_color_dialog_style_updated),
|
||||
dialog, G_CONNECT_AFTER | G_CONNECT_SWAPPED);
|
||||
g_signal_connect_object (viewable_dialog->context->gimp->config,
|
||||
"notify::custom-icon-size",
|
||||
G_CALLBACK (gimp_color_dialog_style_updated),
|
||||
dialog, G_CONNECT_AFTER | G_CONNECT_SWAPPED);
|
||||
|
||||
gimp_color_dialog_image_changed (viewable_dialog->context,
|
||||
image, dialog);
|
||||
gimp_color_dialog_update_base_type (dialog);
|
||||
gimp_color_dialog_style_updated (dialog);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -809,5 +840,8 @@ gimp_color_dialog_hide (GimpColorDialog *dialog)
|
|||
g_signal_handlers_disconnect_by_func (user_context,
|
||||
G_CALLBACK (gimp_color_dialog_image_changed),
|
||||
dialog);
|
||||
g_signal_handlers_disconnect_by_func (viewable_dialog->context->gimp->config,
|
||||
G_CALLBACK (gimp_color_dialog_style_updated),
|
||||
dialog);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -540,10 +540,11 @@ gimp_color_editor_new (GimpContext *context)
|
|||
static void
|
||||
gimp_color_editor_style_updated (GtkWidget *widget)
|
||||
{
|
||||
GimpColorEditor *editor = GIMP_COLOR_EDITOR (widget);
|
||||
GtkIconSize button_icon_size;
|
||||
gint icon_width = 40;
|
||||
gint icon_height = 38;
|
||||
GimpColorEditor *editor = GIMP_COLOR_EDITOR (widget);
|
||||
GimpColorNotebook *notebook = GIMP_COLOR_NOTEBOOK (editor->notebook);
|
||||
GtkIconSize button_icon_size;
|
||||
gint icon_width = 40;
|
||||
gint icon_height = 38;
|
||||
|
||||
GTK_WIDGET_CLASS (parent_class)->style_updated (widget);
|
||||
|
||||
|
|
@ -557,6 +558,8 @@ gimp_color_editor_style_updated (GtkWidget *widget)
|
|||
gtk_widget_set_size_request (editor->fg_bg,
|
||||
(gint) (icon_width * 1.75),
|
||||
(gint) (icon_height * 1.75));
|
||||
|
||||
GTK_WIDGET_GET_CLASS (notebook)->style_updated (GTK_WIDGET (notebook));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue