mirror of https://github.com/GNOME/gimp.git
libgimpwidgets, app: change "stock-size" property of...
... GimpCellRendererToggle into "icon-size". In particular making it a pixel size instead of a GtkIconSize. This enum is limited to a few presets (registering new values is deprecated since GTK+ 3.10), with names completely semantically wrong. It is better to specify icon sizes (before scaling) in pixels directly, which goes also with named icons instead of stock ones.
This commit is contained in:
parent
343bfbf259
commit
d1372c6c24
|
@ -288,9 +288,9 @@ gimp_component_editor_set_view_size (GimpComponentEditor *editor,
|
||||||
GtkWidget *tree_widget;
|
GtkWidget *tree_widget;
|
||||||
GtkStyleContext *tree_style;
|
GtkStyleContext *tree_style;
|
||||||
GtkBorder border;
|
GtkBorder border;
|
||||||
GtkIconSize icon_size;
|
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
gboolean iter_valid;
|
gboolean iter_valid;
|
||||||
|
gint icon_size;
|
||||||
|
|
||||||
g_return_if_fail (GIMP_IS_COMPONENT_EDITOR (editor));
|
g_return_if_fail (GIMP_IS_COMPONENT_EDITOR (editor));
|
||||||
g_return_if_fail (view_size > 0 &&
|
g_return_if_fail (view_size > 0 &&
|
||||||
|
@ -304,17 +304,10 @@ gimp_component_editor_set_view_size (GimpComponentEditor *editor,
|
||||||
gtk_style_context_get_border (tree_style, 0, &border);
|
gtk_style_context_get_border (tree_style, 0, &border);
|
||||||
gtk_style_context_restore (tree_style);
|
gtk_style_context_restore (tree_style);
|
||||||
|
|
||||||
icon_size = gimp_get_icon_size (tree_widget,
|
g_object_get (editor->eye_cell, "icon-size", &icon_size, NULL);
|
||||||
GIMP_ICON_VISIBLE,
|
icon_size = MIN (icon_size, MAX (view_size - (border.left + border.right),
|
||||||
GTK_ICON_SIZE_BUTTON,
|
view_size - (border.top + border.bottom)));
|
||||||
view_size -
|
g_object_set (editor->eye_cell, "icon-size", icon_size, NULL);
|
||||||
(border.left + border.right),
|
|
||||||
view_size -
|
|
||||||
(border.top + border.bottom));
|
|
||||||
|
|
||||||
g_object_set (editor->eye_cell,
|
|
||||||
"stock-size", icon_size,
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
for (iter_valid = gtk_tree_model_get_iter_first (editor->model, &iter);
|
for (iter_valid = gtk_tree_model_get_iter_first (editor->model, &iter);
|
||||||
iter_valid;
|
iter_valid;
|
||||||
|
|
|
@ -959,8 +959,8 @@ gimp_container_tree_view_set_view_size (GimpContainerView *view)
|
||||||
|
|
||||||
for (list = tree_view->priv->toggle_cells; list; list = g_list_next (list))
|
for (list = tree_view->priv->toggle_cells; list; list = g_list_next (list))
|
||||||
{
|
{
|
||||||
gchar *icon_name;
|
gchar *icon_name;
|
||||||
GtkIconSize icon_size;
|
gint icon_size;
|
||||||
|
|
||||||
g_object_get (list->data, "icon-name", &icon_name, NULL);
|
g_object_get (list->data, "icon-name", &icon_name, NULL);
|
||||||
|
|
||||||
|
@ -974,15 +974,10 @@ gimp_container_tree_view_set_view_size (GimpContainerView *view)
|
||||||
gtk_style_context_get_border (style, 0, &border);
|
gtk_style_context_get_border (style, 0, &border);
|
||||||
gtk_style_context_restore (style);
|
gtk_style_context_restore (style);
|
||||||
|
|
||||||
icon_size = gimp_get_icon_size (tree_widget,
|
g_object_get (list->data, "icon-size", &icon_size, NULL);
|
||||||
icon_name,
|
icon_size = MIN (icon_size, MAX (view_size - (border.left + border.right),
|
||||||
GTK_ICON_SIZE_BUTTON,
|
view_size - (border.top + border.bottom)));
|
||||||
view_size -
|
g_object_set (list->data, "icon-size", icon_size, NULL);
|
||||||
(border.left + border.right),
|
|
||||||
view_size -
|
|
||||||
(border.top + border.bottom));
|
|
||||||
|
|
||||||
g_object_set (list->data, "stock-size", icon_size, NULL);
|
|
||||||
|
|
||||||
g_free (icon_name);
|
g_free (icon_name);
|
||||||
}
|
}
|
||||||
|
|
|
@ -259,7 +259,7 @@ gimp_tool_editor_new (GimpContainer *container,
|
||||||
GtkTreeViewColumn *column;
|
GtkTreeViewColumn *column;
|
||||||
GtkCellRenderer *eye_cell;
|
GtkCellRenderer *eye_cell;
|
||||||
GtkBorder border;
|
GtkBorder border;
|
||||||
GtkIconSize icon_size;
|
gint icon_size;
|
||||||
|
|
||||||
tree_style = gtk_widget_get_style_context (tree_widget);
|
tree_style = gtk_widget_get_style_context (tree_widget);
|
||||||
gtk_style_context_get_border (tree_style, 0, &border);
|
gtk_style_context_get_border (tree_style, 0, &border);
|
||||||
|
@ -269,13 +269,11 @@ gimp_tool_editor_new (GimpContainer *container,
|
||||||
|
|
||||||
eye_cell = gimp_cell_renderer_toggle_new (GIMP_ICON_VISIBLE);
|
eye_cell = gimp_cell_renderer_toggle_new (GIMP_ICON_VISIBLE);
|
||||||
|
|
||||||
icon_size = gimp_get_icon_size (GTK_WIDGET (tool_editor),
|
g_object_get (eye_cell, "icon-size", &icon_size, NULL);
|
||||||
GIMP_ICON_VISIBLE,
|
icon_size = MIN (icon_size, MAX (view_size - (border.left + border.right),
|
||||||
GTK_ICON_SIZE_BUTTON,
|
view_size - (border.top + border.bottom)));
|
||||||
view_size - (border.left + border.right),
|
g_object_set (eye_cell, "icon-size", icon_size, NULL);
|
||||||
view_size - (border.top + border.bottom));
|
|
||||||
|
|
||||||
g_object_set (eye_cell, "stock-size", icon_size, NULL);
|
|
||||||
gtk_tree_view_column_pack_start (column, eye_cell, FALSE);
|
gtk_tree_view_column_pack_start (column, eye_cell, FALSE);
|
||||||
gtk_tree_view_column_set_cell_data_func (column, eye_cell,
|
gtk_tree_view_column_set_cell_data_func (column, eye_cell,
|
||||||
gimp_tool_editor_eye_data_func,
|
gimp_tool_editor_eye_data_func,
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
|
||||||
#define DEFAULT_ICON_SIZE GTK_ICON_SIZE_BUTTON
|
#define DEFAULT_ICON_SIZE 16
|
||||||
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
|
@ -52,7 +52,7 @@ enum
|
||||||
{
|
{
|
||||||
PROP_0,
|
PROP_0,
|
||||||
PROP_ICON_NAME,
|
PROP_ICON_NAME,
|
||||||
PROP_STOCK_SIZE,
|
PROP_ICON_SIZE,
|
||||||
PROP_OVERRIDE_BACKGROUND
|
PROP_OVERRIDE_BACKGROUND
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ enum
|
||||||
struct _GimpCellRendererTogglePrivate
|
struct _GimpCellRendererTogglePrivate
|
||||||
{
|
{
|
||||||
gchar *icon_name;
|
gchar *icon_name;
|
||||||
GtkIconSize stock_size;
|
gint icon_size;
|
||||||
gboolean override_background;
|
gboolean override_background;
|
||||||
|
|
||||||
GdkPixbuf *pixbuf;
|
GdkPixbuf *pixbuf;
|
||||||
|
@ -143,10 +143,10 @@ gimp_cell_renderer_toggle_class_init (GimpCellRendererToggleClass *klass)
|
||||||
GIMP_PARAM_READWRITE |
|
GIMP_PARAM_READWRITE |
|
||||||
G_PARAM_CONSTRUCT));
|
G_PARAM_CONSTRUCT));
|
||||||
|
|
||||||
g_object_class_install_property (object_class, PROP_STOCK_SIZE,
|
g_object_class_install_property (object_class, PROP_ICON_SIZE,
|
||||||
g_param_spec_int ("stock-size",
|
g_param_spec_int ("icon-size",
|
||||||
"Stock Size",
|
"Icon Size",
|
||||||
"The icon size to use",
|
"The desired icon size to use in pixel (before applying scaling factor)",
|
||||||
0, G_MAXINT,
|
0, G_MAXINT,
|
||||||
DEFAULT_ICON_SIZE,
|
DEFAULT_ICON_SIZE,
|
||||||
GIMP_PARAM_READWRITE |
|
GIMP_PARAM_READWRITE |
|
||||||
|
@ -196,8 +196,8 @@ gimp_cell_renderer_toggle_get_property (GObject *object,
|
||||||
g_value_set_string (value, priv->icon_name);
|
g_value_set_string (value, priv->icon_name);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROP_STOCK_SIZE:
|
case PROP_ICON_SIZE:
|
||||||
g_value_set_int (value, priv->stock_size);
|
g_value_set_int (value, priv->icon_size);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROP_OVERRIDE_BACKGROUND:
|
case PROP_OVERRIDE_BACKGROUND:
|
||||||
|
@ -226,8 +226,8 @@ gimp_cell_renderer_toggle_set_property (GObject *object,
|
||||||
priv->icon_name = g_value_dup_string (value);
|
priv->icon_name = g_value_dup_string (value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROP_STOCK_SIZE:
|
case PROP_ICON_SIZE:
|
||||||
priv->stock_size = g_value_get_int (value);
|
priv->icon_size = g_value_get_int (value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROP_OVERRIDE_BACKGROUND:
|
case PROP_OVERRIDE_BACKGROUND:
|
||||||
|
@ -499,10 +499,6 @@ gimp_cell_renderer_toggle_create_pixbuf (GimpCellRendererToggle *toggle,
|
||||||
GtkIconInfo *icon_info;
|
GtkIconInfo *icon_info;
|
||||||
gchar *icon_name;
|
gchar *icon_name;
|
||||||
gint scale_factor;
|
gint scale_factor;
|
||||||
gint width, height;
|
|
||||||
|
|
||||||
if (! gtk_icon_size_lookup (priv->stock_size, &width, &height))
|
|
||||||
gtk_icon_size_lookup (DEFAULT_ICON_SIZE, &width, &height);
|
|
||||||
|
|
||||||
scale_factor = gtk_widget_get_scale_factor (widget);
|
scale_factor = gtk_widget_get_scale_factor (widget);
|
||||||
screen = gtk_widget_get_screen (widget);
|
screen = gtk_widget_get_screen (widget);
|
||||||
|
@ -511,7 +507,7 @@ gimp_cell_renderer_toggle_create_pixbuf (GimpCellRendererToggle *toggle,
|
||||||
/* Look for symbolic and fallback to color icon. */
|
/* Look for symbolic and fallback to color icon. */
|
||||||
icon_name = g_strdup_printf ("%s-symbolic", priv->icon_name);
|
icon_name = g_strdup_printf ("%s-symbolic", priv->icon_name);
|
||||||
icon_info = gtk_icon_theme_lookup_icon_for_scale (icon_theme, icon_name,
|
icon_info = gtk_icon_theme_lookup_icon_for_scale (icon_theme, icon_name,
|
||||||
MIN (width, height), scale_factor,
|
priv->icon_size, scale_factor,
|
||||||
GTK_ICON_LOOKUP_GENERIC_FALLBACK);
|
GTK_ICON_LOOKUP_GENERIC_FALLBACK);
|
||||||
|
|
||||||
g_free (icon_name);
|
g_free (icon_name);
|
||||||
|
|
Loading…
Reference in New Issue