[gnome-panel] lignome-panel: add prefer-symbolic-icons property



commit a1c7d56ee66d3ed93334732c941f076e011c8190
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Mon Dec 23 14:42:30 2019 +0200

    lignome-panel: add prefer-symbolic-icons property

 data/org.gnome.gnome-panel.gschema.xml |  6 ++++
 libgnome-panel/gp-applet.c             | 66 ++++++++++++++++++++++++++++++++++
 libgnome-panel/gp-applet.h             | 54 ++++++++++++++--------------
 3 files changed, 100 insertions(+), 26 deletions(-)
---
diff --git a/data/org.gnome.gnome-panel.gschema.xml b/data/org.gnome.gnome-panel.gschema.xml
index 457332f83..08c4bbfa3 100644
--- a/data/org.gnome.gnome-panel.gschema.xml
+++ b/data/org.gnome.gnome-panel.gschema.xml
@@ -34,6 +34,12 @@
       <summary>Enable tooltips</summary>
       <description>If true, tooltips are shown for objects in panels. Tooltips can be disabled for the whole 
desktop with the gtk-enable-tooltips property in GTK+.</description>
     </key>
+
+    <key name="prefer-symbolic-icons" type="b">
+      <default>false</default>
+      <summary>Prefer symbolic icons in panels</summary>
+    </key>
+
     <key name="confirm-panel-removal" type="b">
       <default>true</default>
       <summary>Confirm panel removal</summary>
diff --git a/libgnome-panel/gp-applet.c b/libgnome-panel/gp-applet.c
index cd3897830..f5f6347ca 100644
--- a/libgnome-panel/gp-applet.c
+++ b/libgnome-panel/gp-applet.c
@@ -77,6 +77,8 @@ typedef struct
 
   gboolean            enable_tooltips;
 
+  gboolean            prefer_symbolic_icons;
+
   guint               panel_icon_size;
   guint               menu_icon_size;
 } GpAppletPrivate;
@@ -95,6 +97,8 @@ enum
 
   PROP_ENABLE_TOOLTIPS,
 
+  PROP_PREFER_SYMBOLIC_ICONS,
+
   PROP_PANEL_ICON_SIZE,
   PROP_MENU_ICON_SIZE,
 
@@ -136,6 +140,25 @@ update_enable_tooltips (GpApplet *applet)
                             properties[PROP_ENABLE_TOOLTIPS]);
 }
 
+static void
+update_prefer_symbolic_icons (GpApplet *applet)
+{
+  GpAppletPrivate *priv;
+  gboolean prefer_symbolic_icons;
+
+  priv = gp_applet_get_instance_private (applet);
+  prefer_symbolic_icons = g_settings_get_boolean (priv->general_settings,
+                                                  "prefer-symbolic-icons");
+
+  if (priv->prefer_symbolic_icons == prefer_symbolic_icons)
+    return;
+
+  priv->prefer_symbolic_icons = prefer_symbolic_icons;
+
+  g_object_notify_by_pspec (G_OBJECT (applet),
+                            properties[PROP_PREFER_SYMBOLIC_ICONS]);
+}
+
 static void
 update_menu_icon_size (GpApplet *applet)
 {
@@ -217,6 +240,9 @@ general_settings_changed_cb (GSettings   *settings,
   if (key == NULL || g_strcmp0 (key, "enable-tooltips") == 0)
     update_enable_tooltips (applet);
 
+  if (key == NULL || g_strcmp0 (key, "prefer-symbolic-icons") == 0)
+    update_prefer_symbolic_icons (applet);
+
   if (key == NULL || g_strcmp0 (key, "menu-icon-size") == 0)
     update_menu_icon_size (applet);
 
@@ -404,6 +430,10 @@ gp_applet_get_property (GObject    *object,
         g_value_set_boolean (value, priv->enable_tooltips);
         break;
 
+      case PROP_PREFER_SYMBOLIC_ICONS:
+        g_value_set_boolean (value, priv->prefer_symbolic_icons);
+        break;
+
       case PROP_PANEL_ICON_SIZE:
         g_value_set_uint (value, priv->panel_icon_size);
         break;
@@ -467,6 +497,9 @@ gp_applet_set_property (GObject      *object,
       case PROP_ENABLE_TOOLTIPS:
         break;
 
+      case PROP_PREFER_SYMBOLIC_ICONS:
+        break;
+
       case PROP_PANEL_ICON_SIZE:
         break;
 
@@ -656,6 +689,20 @@ install_properties (GObjectClass *object_class)
                           G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY |
                           G_PARAM_STATIC_STRINGS);
 
+  /**
+   * GpApplet:prefer-symbolic-icons:
+   *
+   * Whether the applet should prefer symbolic icons in panels.
+   */
+  properties[PROP_PREFER_SYMBOLIC_ICONS] =
+    g_param_spec_boolean ("prefer-symbolic-icons",
+                          "Prefer symbolic icons",
+                          "Prefer symbolic icons",
+                          FALSE,
+                          G_PARAM_READABLE |
+                          G_PARAM_EXPLICIT_NOTIFY |
+                          G_PARAM_STATIC_STRINGS);
+
   /**
    * GpApplet:panel-icon-size:
    *
@@ -1246,6 +1293,25 @@ gp_applet_get_menu (GpApplet *applet)
   return gtk_menu_new_from_model (G_MENU_MODEL (object));
 }
 
+/**
+ * gp_applet_get_prefer_symbolic_icons:
+ * @applet: a #GpApplet
+ *
+ * Returns whether the applet should prefer symbolic icons in panels.
+ *
+ * Returns: whether the applet should prefer symbolic icons in panels.
+ */
+gboolean
+gp_applet_get_prefer_symbolic_icons (GpApplet *applet)
+{
+  GpAppletPrivate *priv;
+
+  g_return_val_if_fail (GP_IS_APPLET (applet), FALSE);
+  priv = gp_applet_get_instance_private (applet);
+
+  return priv->prefer_symbolic_icons;
+}
+
 /**
  * gp_applet_get_panel_icon_size:
  * @applet: a #GpApplet
diff --git a/libgnome-panel/gp-applet.h b/libgnome-panel/gp-applet.h
index 6712161c2..e99ecaf29 100644
--- a/libgnome-panel/gp-applet.h
+++ b/libgnome-panel/gp-applet.h
@@ -80,44 +80,46 @@ struct _GpAppletClass
   gpointer padding[10];
 };
 
-gboolean         gp_applet_get_locked_down          (GpApplet           *applet);
+gboolean         gp_applet_get_locked_down           (GpApplet           *applet);
 
-GtkOrientation   gp_applet_get_orientation          (GpApplet           *applet);
+GtkOrientation   gp_applet_get_orientation           (GpApplet           *applet);
 
-GtkPositionType  gp_applet_get_position             (GpApplet           *applet);
+GtkPositionType  gp_applet_get_position              (GpApplet           *applet);
 
-void             gp_applet_set_flags                (GpApplet           *applet,
-                                                     GpAppletFlags       flags);
+void             gp_applet_set_flags                 (GpApplet           *applet,
+                                                      GpAppletFlags       flags);
 
-void             gp_applet_set_size_hints           (GpApplet           *applet,
-                                                     const gint         *size_hints,
-                                                     guint               n_elements,
-                                                     gint                base_size);
+void             gp_applet_set_size_hints            (GpApplet           *applet,
+                                                      const gint         *size_hints,
+                                                      guint               n_elements,
+                                                      gint                base_size);
 
-GSettings       *gp_applet_settings_new             (GpApplet           *applet,
-                                                     const gchar        *schema);
+GSettings       *gp_applet_settings_new              (GpApplet           *applet,
+                                                      const gchar        *schema);
 
-void             gp_applet_request_focus            (GpApplet           *applet,
-                                                     guint32             timestamp);
+void             gp_applet_request_focus             (GpApplet           *applet,
+                                                      guint32             timestamp);
 
-void             gp_applet_setup_menu               (GpApplet           *applet,
-                                                     const gchar        *xml,
-                                                     const GActionEntry *entries);
+void             gp_applet_setup_menu                (GpApplet           *applet,
+                                                      const gchar        *xml,
+                                                      const GActionEntry *entries);
 
-void             gp_applet_setup_menu_from_file     (GpApplet           *applet,
-                                                     const gchar        *filename,
-                                                     const GActionEntry *entries);
+void             gp_applet_setup_menu_from_file      (GpApplet           *applet,
+                                                      const gchar        *filename,
+                                                      const GActionEntry *entries);
 
-void             gp_applet_setup_menu_from_resource (GpApplet           *applet,
-                                                     const gchar        *resource_path,
-                                                     const GActionEntry *entries);
+void             gp_applet_setup_menu_from_resource  (GpApplet           *applet,
+                                                      const gchar        *resource_path,
+                                                      const GActionEntry *entries);
 
-GAction         *gp_applet_menu_lookup_action       (GpApplet           *applet,
-                                                     const gchar        *action_name);
+GAction         *gp_applet_menu_lookup_action        (GpApplet           *applet,
+                                                      const gchar        *action_name);
 
-guint            gp_applet_get_panel_icon_size      (GpApplet           *applet);
+gboolean         gp_applet_get_prefer_symbolic_icons (GpApplet           *applet);
 
-guint            gp_applet_get_menu_icon_size       (GpApplet           *applet);
+guint            gp_applet_get_panel_icon_size       (GpApplet           *applet);
+
+guint            gp_applet_get_menu_icon_size        (GpApplet           *applet);
 
 G_END_DECLS
 


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