[gnome-panel] menu: use prefer-symbolic-icons setting
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-panel] menu: use prefer-symbolic-icons setting
- Date: Mon, 23 Dec 2019 12:46:13 +0000 (UTC)
commit 1e0aa6f51ea566b79da0b87fb156a7b6758dffc2
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Mon Dec 23 14:43:50 2019 +0200
menu: use prefer-symbolic-icons setting
modules/menu/gp-menu-bar-applet.c | 40 +++++++++++++++++++++++++++++-------
modules/menu/gp-menu-button-applet.c | 23 ++++++++++++++++++++-
modules/menu/gp-user-menu-applet.c | 40 +++++++++++++++++++++++++++++-------
3 files changed, 88 insertions(+), 15 deletions(-)
---
diff --git a/modules/menu/gp-menu-bar-applet.c b/modules/menu/gp-menu-bar-applet.c
index c3f12799d..e3a1c74f7 100644
--- a/modules/menu/gp-menu-bar-applet.c
+++ b/modules/menu/gp-menu-bar-applet.c
@@ -20,6 +20,7 @@
#include <glib/gi18n-lib.h>
#include <libgnome-panel/gp-action.h>
#include <libgnome-panel/gp-image-menu-item.h>
+#include <libgnome-panel/gp-utils.h>
#include "gp-menu-bar-applet.h"
#include "gp-menu-bar.h"
@@ -91,31 +92,56 @@ get_settings_menu (void)
}
static void
-panel_icon_size_cb (GpApplet *applet,
- GParamSpec *pspec,
- GtkWidget *icon)
+update_icon (GpApplet *applet,
+ GtkWidget *icon)
{
+ const char *icon_name;
guint icon_size;
+ icon_name = "start-here";
+ if (gp_applet_get_prefer_symbolic_icons (applet))
+ icon_name = "start-here-symbolic";
+
icon_size = gp_applet_get_panel_icon_size (applet);
+
+ gtk_image_set_from_icon_name (GTK_IMAGE (icon), icon_name, GTK_ICON_SIZE_MENU);
gtk_image_set_pixel_size (GTK_IMAGE (icon), icon_size);
}
+static void
+prefer_symbolic_icons_cb (GpApplet *applet,
+ GParamSpec *pspec,
+ GtkWidget *icon)
+{
+ update_icon (applet, icon);
+}
+
+static void
+panel_icon_size_cb (GpApplet *applet,
+ GParamSpec *pspec,
+ GtkWidget *icon)
+{
+ update_icon (applet, icon);
+}
+
static void
append_applications_item (GpMenuBarApplet *applet)
{
- guint icon_size;
GtkWidget *icon;
const gchar *tooltip;
gchar *menu;
- icon_size = gp_applet_get_panel_icon_size (GP_APPLET (applet));
- icon = gtk_image_new_from_icon_name ("start-here", GTK_ICON_SIZE_MENU);
- gtk_image_set_pixel_size (GTK_IMAGE (icon), icon_size);
+ icon = gtk_image_new ();
+ gp_add_text_color_class (icon);
+
+ g_signal_connect (applet, "notify::prefer-symbolic-icons",
+ G_CALLBACK (prefer_symbolic_icons_cb), icon);
g_signal_connect (applet, "notify::panel-icon-size",
G_CALLBACK (panel_icon_size_cb), icon);
+ update_icon (GP_APPLET (applet), icon);
+
applet->applications_item = gp_image_menu_item_new_with_label (_("Applications"));
gtk_menu_shell_append (GTK_MENU_SHELL (applet->menu_bar), applet->applications_item);
gp_image_menu_item_set_image (GP_IMAGE_MENU_ITEM (applet->applications_item), icon);
diff --git a/modules/menu/gp-menu-button-applet.c b/modules/menu/gp-menu-button-applet.c
index 0f42b2922..c7e141446 100644
--- a/modules/menu/gp-menu-button-applet.c
+++ b/modules/menu/gp-menu-button-applet.c
@@ -25,6 +25,7 @@
#include <glib/gi18n-lib.h>
#include <libgnome-panel/gp-image-menu-item.h>
+#include <libgnome-panel/gp-utils.h>
#include "gp-lock-logout.h"
#include "gp-menu-button.h"
@@ -118,7 +119,15 @@ update_icon (GpMenuButtonApplet *menu_button)
icon = gp_menu_get_icon (GP_MENU (priv->menu));
if (icon == NULL)
- icon = g_themed_icon_new ("start-here");
+ {
+ const char *icon_name;
+
+ icon_name = "start-here";
+ if (gp_applet_get_prefer_symbolic_icons (GP_APPLET (menu_button)))
+ icon_name = "start-here-symbolic";
+
+ icon = g_themed_icon_new (icon_name);
+ }
gtk_image_set_from_gicon (GTK_IMAGE (priv->image), icon, GTK_ICON_SIZE_MENU);
@@ -431,6 +440,14 @@ arrow_size_from_icon_size (guint icon_size)
return 16 * (icon_size / 36.0);
}
+static void
+prefer_symbolic_icons_cb (GpApplet *applet,
+ GParamSpec *pspec,
+ GpMenuButtonApplet *menu_button)
+{
+ update_icon (menu_button);
+}
+
static void
panel_icon_size_cb (GpApplet *applet,
GParamSpec *pspec,
@@ -559,6 +576,7 @@ setup_button (GpMenuButtonApplet *menu_button)
gtk_widget_show (overlay);
priv->image = gtk_image_new ();
+ gp_add_text_color_class (priv->image);
gtk_container_add (GTK_CONTAINER (overlay), priv->image);
gtk_widget_show (priv->image);
@@ -606,6 +624,9 @@ gp_menu_button_applet_setup (GpMenuButtonApplet *menu_button)
g_signal_connect (priv->settings, "changed",
G_CALLBACK (settings_changed_cb), menu_button);
+ g_signal_connect (menu_button, "notify::prefer-symbolic-icons",
+ G_CALLBACK (prefer_symbolic_icons_cb), menu_button);
+
g_signal_connect (menu_button, "notify::panel-icon-size",
G_CALLBACK (panel_icon_size_cb), menu_button);
diff --git a/modules/menu/gp-user-menu-applet.c b/modules/menu/gp-user-menu-applet.c
index 4e69fa430..b396955a0 100644
--- a/modules/menu/gp-user-menu-applet.c
+++ b/modules/menu/gp-user-menu-applet.c
@@ -23,6 +23,7 @@
#include "gp-user-menu.h"
#include <libgnome-panel/gp-image-menu-item.h>
+#include <libgnome-panel/gp-utils.h>
struct _GpUserMenuApplet
{
@@ -51,32 +52,57 @@ button_press_event_cb (GtkWidget *widget,
}
static void
-panel_icon_size_cb (GpApplet *applet,
- GParamSpec *pspec,
- GtkWidget *icon)
+update_icon (GpApplet *applet,
+ GtkWidget *icon)
{
+ const char *icon_name;
guint icon_size;
+ icon_name = "computer";
+ if (gp_applet_get_prefer_symbolic_icons (applet))
+ icon_name = "computer-symbolic";
+
icon_size = gp_applet_get_panel_icon_size (applet);
+
+ gtk_image_set_from_icon_name (GTK_IMAGE (icon), icon_name, GTK_ICON_SIZE_MENU);
gtk_image_set_pixel_size (GTK_IMAGE (icon), icon_size);
}
+static void
+prefer_symbolic_icons_cb (GpApplet *applet,
+ GParamSpec *pspec,
+ GtkWidget *icon)
+{
+ update_icon (applet, icon);
+}
+
+static void
+panel_icon_size_cb (GpApplet *applet,
+ GParamSpec *pspec,
+ GtkWidget *icon)
+{
+ update_icon (applet, icon);
+}
+
static void
append_user_item (GpUserMenuApplet *applet)
{
- guint icon_size;
GtkWidget *icon;
gchar *user_name;
GtkWidget *item;
GtkWidget *menu;
- icon_size = gp_applet_get_panel_icon_size (GP_APPLET (applet));
- icon = gtk_image_new_from_icon_name ("computer", GTK_ICON_SIZE_MENU);
- gtk_image_set_pixel_size (GTK_IMAGE (icon), icon_size);
+ icon = gtk_image_new ();
+ gp_add_text_color_class (icon);
+
+ g_signal_connect (applet, "notify::prefer-symbolic-icons",
+ G_CALLBACK (prefer_symbolic_icons_cb), icon);
g_signal_connect (applet, "notify::panel-icon-size",
G_CALLBACK (panel_icon_size_cb), icon);
+ update_icon (GP_APPLET (applet), icon);
+
user_name = gp_menu_utils_get_user_name ();
item = gp_image_menu_item_new_with_label (user_name);
g_free (user_name);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]