[gtk+/wip/otte/icon-size: 20/20] xxx: WIP



commit 907290d6a89ff5e7f2915aaaa92e2b206cdac89b
Author: Benjamin Otte <otte redhat com>
Date:   Sun Jul 30 16:53:07 2017 +0100

    xxx: WIP

 gtk/a11y/gtkimageaccessible.c |   42 ++--------------------------------------
 gtk/gtkicontheme.h            |    7 ------
 gtk/gtkimage.c                |    9 ++++++++
 gtk/gtkimageprivate.h         |    3 ++
 gtk/gtkprintunixdialog.c      |   23 ----------------------
 gtk/gtktoolbutton.c           |   17 +--------------
 6 files changed, 17 insertions(+), 84 deletions(-)
---
diff --git a/gtk/a11y/gtkimageaccessible.c b/gtk/a11y/gtkimageaccessible.c
index a83a993..696eb17 100644
--- a/gtk/a11y/gtkimageaccessible.c
+++ b/gtk/a11y/gtkimageaccessible.c
@@ -20,7 +20,7 @@
 #include <string.h>
 #include <gtk/gtk.h>
 #include "gtkimageaccessible.h"
-#include "gtktoolbarprivate.h"
+#include "gtkimageprivate.h"
 #include "gtkintl.h"
 
 struct _GtkImageAccessiblePrivate
@@ -252,7 +252,6 @@ gtk_image_accessible_get_image_size (AtkImage *image,
 {
   GtkWidget* widget;
   GtkImage *gtk_image;
-  GtkImageType image_type;
 
   widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (image));
   if (widget == NULL)
@@ -264,43 +263,8 @@ gtk_image_accessible_get_image_size (AtkImage *image,
 
   gtk_image = GTK_IMAGE (widget);
 
-  image_type = gtk_image_get_storage_type (gtk_image);
-  switch (image_type)
-    {
-    case GTK_IMAGE_PIXBUF:
-      {
-        GdkPixbuf *pixbuf;
-
-        pixbuf = gtk_image_get_pixbuf (gtk_image);
-        *height = gdk_pixbuf_get_height (pixbuf);
-        *width = gdk_pixbuf_get_width (pixbuf);
-        break;
-      }
-    case GTK_IMAGE_ICON_NAME:
-    case GTK_IMAGE_GICON:
-      {
-        GtkIconSize size;
-
-        g_object_get (gtk_image, "icon-size", &size, NULL);
-        gtk_icon_size_lookup (size, width, height);
-        break;
-      }
-    case GTK_IMAGE_ANIMATION:
-      {
-        GdkPixbufAnimation *animation;
-
-        animation = gtk_image_get_animation (gtk_image);
-        *height = gdk_pixbuf_animation_get_height (animation);
-        *width = gdk_pixbuf_animation_get_width (animation);
-        break;
-      }
-    default:
-      {
-        *height = -1;
-        *width = -1;
-        break;
-      }
-    }
+  if (gtk_image_get_storage_type (gtk_image) != GTK_IMAGE_EMPTY)
+    gtk_image_get_image_size (gtk_image, width, height);
 }
 
 static gboolean
diff --git a/gtk/gtkicontheme.h b/gtk/gtkicontheme.h
index a76a978..015c12e 100644
--- a/gtk/gtkicontheme.h
+++ b/gtk/gtkicontheme.h
@@ -341,13 +341,6 @@ GdkPixbuf *           gtk_icon_info_load_symbolic_for_context_finish (GtkIconInf
                                                                      gboolean         *was_symbolic,
                                                                      GError          **error);
 
-#ifndef GDK_MULTIHEAD_SAFE
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_icon_size_lookup (GtkIconSize  size,
-                               gint        *width,
-                               gint        *height);
-#endif /* GDK_MULTIHEAD_SAFE */
-
 
 G_END_DECLS
 
diff --git a/gtk/gtkimage.c b/gtk/gtkimage.c
index 6d9cdbf..6d31fa6 100644
--- a/gtk/gtkimage.c
+++ b/gtk/gtkimage.c
@@ -1650,3 +1650,12 @@ gtk_image_get_icon_size (GtkImage *image)
 
   return image->priv->icon_size;
 }
+
+void
+gtk_image_get_image_size (GtkImage *image,
+                          int      *width,
+                          int      *height)
+{
+  _gtk_icon_helper_get_size (image->priv->icon_helper,
+                             width, height);
+}
diff --git a/gtk/gtkimageprivate.h b/gtk/gtkimageprivate.h
index 2157839..93a15ab 100644
--- a/gtk/gtkimageprivate.h
+++ b/gtk/gtkimageprivate.h
@@ -34,6 +34,9 @@ G_BEGIN_DECLS
 
 void            gtk_image_set_from_definition           (GtkImage               *image,
                                                          GtkImageDefinition     *def);
+void            gtk_image_get_image_size                (GtkImage               *image,
+                                                         int                    *width,
+                                                         int                    *height);
 
 G_END_DECLS
 
diff --git a/gtk/gtkprintunixdialog.c b/gtk/gtkprintunixdialog.c
index 4d06655..46076d4 100644
--- a/gtk/gtkprintunixdialog.c
+++ b/gtk/gtkprintunixdialog.c
@@ -135,7 +135,6 @@ static void     gtk_print_unix_dialog_get_property (GObject            *object,
                                                     guint               prop_id,
                                                     GValue             *value,
                                                     GParamSpec         *pspec);
-static void     gtk_print_unix_dialog_style_updated (GtkWidget          *widget);
 static void     unschedule_idle_mark_conflicts     (GtkPrintUnixDialog *dialog);
 static void     selected_printer_changed           (GtkTreeSelection   *selection,
                                                     GtkPrintUnixDialog *dialog);
@@ -407,7 +406,6 @@ gtk_print_unix_dialog_class_init (GtkPrintUnixDialogClass *class)
   object_class->set_property = gtk_print_unix_dialog_set_property;
   object_class->get_property = gtk_print_unix_dialog_get_property;
 
-  widget_class->style_updated = gtk_print_unix_dialog_style_updated;
   widget_class->destroy = gtk_print_unix_dialog_destroy;
 
   g_object_class_install_property (object_class,
@@ -2308,27 +2306,6 @@ draw_collate (GtkDrawingArea *da,
 }
 
 static void
-gtk_print_unix_dialog_style_updated (GtkWidget *widget)
-{
-  GTK_WIDGET_CLASS (gtk_print_unix_dialog_parent_class)->style_updated (widget);
-
-  if (gtk_widget_has_screen (widget))
-    {
-      GtkPrintUnixDialog *dialog = (GtkPrintUnixDialog *)widget;
-      GtkPrintUnixDialogPrivate *priv = dialog->priv;
-      gint size;
-      gfloat scale;
-
-      gtk_icon_size_lookup (GTK_ICON_SIZE_LARGE, &size, NULL);
-      scale = size / 48.0;
-
-      gtk_widget_set_size_request (priv->collate_image,
-                                   (50 + 20) * scale,
-                                   (15 + 26) * scale);
-    }
-}
-
-static void
 update_page_range_entry_sensitivity (GtkWidget *button,
                                     GtkPrintUnixDialog *dialog)
 {
diff --git a/gtk/gtktoolbutton.c b/gtk/gtktoolbutton.c
index 6161029..159865b 100644
--- a/gtk/gtktoolbutton.c
+++ b/gtk/gtktoolbutton.c
@@ -724,22 +724,9 @@ clone_image_menu_size (GtkImage *image)
     }
   else if (storage_type == GTK_IMAGE_PIXBUF)
     {
-      gint width, height;
+      GdkPixbuf *src_pixbuf = gtk_image_get_pixbuf (image);
       
-      if (gtk_icon_size_lookup (GTK_ICON_SIZE_NORMAL, &width, &height))
-       {
-         GdkPixbuf *src_pixbuf, *dest_pixbuf;
-         GtkWidget *cloned_image;
-
-         src_pixbuf = gtk_image_get_pixbuf (image);
-         dest_pixbuf = gdk_pixbuf_scale_simple (src_pixbuf, width, height,
-                                                GDK_INTERP_BILINEAR);
-
-         cloned_image = gtk_image_new_from_pixbuf (dest_pixbuf);
-         g_object_unref (dest_pixbuf);
-
-         return cloned_image;
-       }
+      return gtk_image_new_from_pixbuf (src_pixbuf);
     }
 
   return NULL;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]