[gnome-shell] StIcon: Remove content-image capability



commit a9a8b1ec6aa19ca92816140edd9f020620e10eb4
Author: Owen W. Taylor <otaylor fishsoup net>
Date:   Sat Oct 30 20:08:49 2010 -0400

    StIcon: Remove content-image capability
    
    The ability to set a "content image" on an icon relies on the ability
    to have custom theme properties of a "border image" (9-slice) type.
    We don't have this, and the capability of a bordered image specified
    by the theme can be achieved more naturally with standard CSS facilities.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=633865

 src/st/st-icon.c |   74 +++++------------------------------------------------
 1 files changed, 7 insertions(+), 67 deletions(-)
---
diff --git a/src/st/st-icon.c b/src/st/st-icon.c
index 2534fef..f175117 100644
--- a/src/st/st-icon.c
+++ b/src/st/st-icon.c
@@ -51,7 +51,6 @@ G_DEFINE_TYPE_WITH_CODE (StIcon, st_icon, ST_TYPE_WIDGET,
 struct _StIconPrivate
 {
   ClutterActor *icon_texture;
-  gboolean      is_content_image;
 
   gchar        *icon_name;
   gint          icon_size;
@@ -70,13 +69,6 @@ st_stylable_iface_init (StStylableIface *iface)
 
       is_initialized = TRUE;
 
-      pspec = g_param_spec_boxed ("x-st-content-image",
-                                   "Content Image",
-                                   "Image used as the button",
-                                   ST_TYPE_BORDER_IMAGE,
-                                   G_PARAM_READWRITE);
-      st_stylable_iface_install_property (iface, ST_TYPE_ICON, pspec);
-
       pspec = g_param_spec_string ("x-st-icon-name",
                                    "Icon name",
                                    "Icon name to load from the theme",
@@ -189,15 +181,10 @@ st_icon_get_preferred_height (ClutterActor *actor,
                                      &width,
                                      &height);
 
-      if (!priv->is_content_image)
-        {
-          if (width <= height)
-            pref_height = priv->icon_size;
-          else
-            pref_height = height / (gfloat)width * priv->icon_size;
-        }
+      if (width <= height)
+        pref_height = priv->icon_size;
       else
-        pref_height = height;
+        pref_height = height / (gfloat)width * priv->icon_size;
     }
   else
     pref_height = 0;
@@ -230,15 +217,10 @@ st_icon_get_preferred_width (ClutterActor *actor,
                                      &width,
                                      &height);
 
-      if (!priv->is_content_image)
-        {
-          if (height <= width)
-            pref_width = priv->icon_size;
-          else
-            pref_width = width / (gfloat)height * priv->icon_size;
-        }
+      if (height <= width)
+        pref_width = priv->icon_size;
       else
-        pref_width = width;
+        pref_width = width / (gfloat)height * priv->icon_size;
     }
   else
     pref_width = 0;
@@ -283,8 +265,7 @@ st_icon_paint (ClutterActor *actor)
   StIconPrivate *priv = ST_ICON (actor)->priv;
 
   /* Chain up to paint background */
-  if (!priv->is_content_image)
-    CLUTTER_ACTOR_CLASS (st_icon_parent_class)->paint (actor);
+  CLUTTER_ACTOR_CLASS (st_icon_parent_class)->paint (actor);
 
   if (priv->icon_texture)
     clutter_actor_paint (priv->icon_texture);
@@ -352,13 +333,6 @@ st_icon_update (StIcon *icon)
 {
   StIconPrivate *priv = icon->priv;
 
-  if (priv->is_content_image)
-    {
-      priv->is_content_image = FALSE;
-      g_signal_connect (st_icon_theme_get_default (), "notify::theme-name",
-                        G_CALLBACK (st_icon_notify_theme_name_cb), icon);
-    }
-
   /* Get rid of the old one */
   if (priv->icon_texture)
     {
@@ -393,49 +367,15 @@ st_icon_style_changed_cb (StWidget *widget)
   StIcon *self = ST_ICON (widget);
   StIconPrivate *priv = self->priv;
 
-  StBorderImage *content_image = NULL;
   gboolean changed = FALSE;
   gchar *icon_name = NULL;
   gint icon_size = -1;
 
   st_stylable_get (ST_STYLABLE (widget),
-                   "x-st-content-image", &content_image,
                    "x-st-icon-name", &icon_name,
                    "x-st-icon-size", &icon_size,
                    NULL);
 
-  /* Content-image overrides drawing of the icon, so
-   * don't bother reading those properties if it's set.
-   */
-  if (content_image)
-    {
-      GError *error = NULL;
-
-      priv->is_content_image = TRUE;
-      g_signal_handlers_disconnect_by_func (st_icon_theme_get_default (),
-                                            st_icon_notify_theme_name_cb,
-                                            self);
-
-      if (priv->icon_texture)
-        clutter_actor_destroy (priv->icon_texture);
-
-      priv->icon_texture = clutter_texture_new_from_file (content_image->uri,
-                                                          &error);
-      if (priv->icon_texture)
-        clutter_actor_set_parent (priv->icon_texture, CLUTTER_ACTOR (widget));
-
-      if (error)
-        {
-          g_warning ("Could not load content image: %s", error->message);
-          g_error_free (error);
-        }
-
-      g_boxed_free (ST_TYPE_BORDER_IMAGE, content_image);
-      g_free (icon_name);
-
-      return;
-    }
-
   if (icon_name && (!priv->icon_name ||
                     !g_str_equal (icon_name, priv->icon_name)))
     {



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