This is an automated email from the git hooks/post-receive script. b l u e s a b r e p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository panel-plugins/xfce4-pulseaudio-plugin.
commit f9f3dae153d2df70f1c81103383f7b7c0fe8f6ba Author: Sean Davis <[email protected]> Date: Mon Sep 11 06:32:35 2017 -0400 Display the scale menu item as a volume low to high slider --- panel-plugin/pulseaudio-menu.c | 4 +- panel-plugin/scalemenuitem.c | 123 +++++++++-------------------------------- panel-plugin/scalemenuitem.h | 9 +-- 3 files changed, 30 insertions(+), 106 deletions(-) diff --git a/panel-plugin/pulseaudio-menu.c b/panel-plugin/pulseaudio-menu.c index ccefadf..e3ba3b9 100644 --- a/panel-plugin/pulseaudio-menu.c +++ b/panel-plugin/pulseaudio-menu.c @@ -464,7 +464,7 @@ pulseaudio_menu_new (PulseaudioVolume *volume, /* output volume slider */ mi = scale_menu_item_new_with_range (0.0, volume_max, 1.0); - scale_menu_item_set_image_from_icon_name (SCALE_MENU_ITEM (mi), "audio-volume-medium-symbolic"); + scale_menu_item_set_base_icon_name (SCALE_MENU_ITEM (mi), "audio-volume"); /* range slider */ menu->range_output = scale_menu_item_get_scale (SCALE_MENU_ITEM (mi)); @@ -506,7 +506,7 @@ pulseaudio_menu_new (PulseaudioVolume *volume, /* input volume slider */ mi = scale_menu_item_new_with_range (0.0, volume_max, 1.0); - scale_menu_item_set_image_from_icon_name (SCALE_MENU_ITEM (mi), "microphone-sensitivity-medium-symbolic"); + scale_menu_item_set_base_icon_name (SCALE_MENU_ITEM (mi), "microphone-sensitivity"); /* range slider */ menu->range_input = scale_menu_item_get_scale (SCALE_MENU_ITEM (mi)); diff --git a/panel-plugin/scalemenuitem.c b/panel-plugin/scalemenuitem.c index 492dc8a..4eb54b7 100644 --- a/panel-plugin/scalemenuitem.c +++ b/panel-plugin/scalemenuitem.c @@ -53,8 +53,9 @@ static void update_packing (ScaleMenuItem * sel struct _ScaleMenuItemPrivate { GtkWidget *scale; - GtkWidget *percentage_label; GtkWidget *hbox; + GtkWidget *left_image; + GtkWidget *right_image; gboolean grabbed; gboolean ignore_value_changed; }; @@ -73,9 +74,7 @@ enum { static guint signals[LAST_SIGNAL] = { 0 }; -G_GNUC_BEGIN_IGNORE_DEPRECATIONS -G_DEFINE_TYPE (ScaleMenuItem, scale_menu_item, GTK_TYPE_IMAGE_MENU_ITEM) -G_GNUC_END_IGNORE_DEPRECATIONS +G_DEFINE_TYPE (ScaleMenuItem, scale_menu_item, GTK_TYPE_MENU_ITEM) #define GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SCALE_MENU_ITEM, ScaleMenuItemPrivate)) @@ -190,18 +189,10 @@ update_packing (ScaleMenuItem *self) priv->hbox = GTK_WIDGET(hbox); /* add the new layout */ - if (priv->percentage_label) - { - /* [ICON] <----slider----> [percentage]% */ - gtk_box_pack_start (hbox, priv->scale, TRUE, TRUE, 0); - gtk_box_pack_start (hbox, priv->percentage_label, FALSE, FALSE, 0); - } - else - { - /* [ICON] <----slider----> */ - gtk_box_pack_start (hbox, priv->scale, TRUE, TRUE, 0); - } - + /* [ICON] <----slider----> */ + gtk_box_pack_start (hbox, priv->left_image, FALSE, FALSE, 0); + gtk_box_pack_start (hbox, priv->scale, TRUE, TRUE, 0); + gtk_box_pack_start (hbox, priv->right_image, FALSE, FALSE, 0); gtk_widget_show_all (priv->hbox); @@ -351,6 +342,12 @@ scale_menu_item_new_with_range (gdouble min, priv->scale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, min, max, step); priv->hbox = NULL; + priv->left_image = gtk_image_new (); + priv->right_image = gtk_image_new (); + + g_object_ref (priv->left_image); + g_object_ref (priv->right_image); + g_signal_connect (priv->scale, "value-changed", G_CALLBACK (scale_menu_item_scale_value_changed), scale_item); g_object_ref (priv->scale); gtk_widget_set_size_request (priv->scale, 100, -1); @@ -386,80 +383,6 @@ scale_menu_item_get_scale (ScaleMenuItem *menuitem) return priv->scale; } - -/** - * scale_menu_item_get_percentage_label: - * @menuitem: The #ScaleMenuItem - * - * Retrieves a string of the text for the percentage label widget. - * - * Return Value: The label text. - **/ -const gchar* -scale_menu_item_get_percentage_label (ScaleMenuItem *menuitem) -{ - ScaleMenuItemPrivate *priv; - - g_return_val_if_fail (IS_SCALE_MENU_ITEM (menuitem), NULL); - - priv = GET_PRIVATE (menuitem); - - return gtk_label_get_text (GTK_LABEL (priv->percentage_label)); -} - -static GtkWidget * -scale_menu_item_label_new (const gchar *str) -{ - GtkWidget *label = gtk_label_new (str); - - /* align left */ - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_widget_set_halign (label, GTK_ALIGN_START); - - return label; -} - - -/** - * scale_menu_item_set_percentage_label: - * @menuitem: The #ScaleMenuItem - * @label: The label text - * - * Sets the text for the percentage label widget. If label is NULL - * then the percentage label is removed from the #ScaleMenuItem. - **/ -void -scale_menu_item_set_percentage_label (ScaleMenuItem *menuitem, - const gchar *label) -{ - ScaleMenuItemPrivate *priv; - - g_return_if_fail (IS_SCALE_MENU_ITEM (menuitem)); - - priv = GET_PRIVATE (menuitem); - - if (label == NULL && priv->percentage_label) - { - /* remove label */ - g_object_unref (priv->percentage_label); - priv->percentage_label = NULL; - return; - } - - if (priv->percentage_label && label) - { - gtk_label_set_text (GTK_LABEL (priv->percentage_label), label); - } - else if (label) - { - /* create label */ - priv->percentage_label = scale_menu_item_label_new (label); - } - - update_packing (menuitem); -} - - /** * scale_menu_item_set_value: * @@ -486,15 +409,21 @@ scale_menu_item_set_value (ScaleMenuItem *item, } void -scale_menu_item_set_image_from_icon_name (ScaleMenuItem *item, - const gchar *icon_name) +scale_menu_item_set_base_icon_name (ScaleMenuItem *item, + const gchar *base_icon_name) { - GtkWidget *img = NULL; + ScaleMenuItemPrivate *priv; + gchar *icon_name; g_return_if_fail (IS_SCALE_MENU_ITEM (item)); - img = gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_MENU); -G_GNUC_BEGIN_IGNORE_DEPRECATIONS - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), img); -G_GNUC_END_IGNORE_DEPRECATIONS + priv = GET_PRIVATE (item); + + icon_name = g_strconcat(base_icon_name, "-low-symbolic", NULL); + gtk_image_set_from_icon_name (GTK_IMAGE (priv->left_image), icon_name, GTK_ICON_SIZE_MENU); + g_free (icon_name); + + icon_name = g_strconcat(base_icon_name, "-high-symbolic", NULL); + gtk_image_set_from_icon_name (GTK_IMAGE (priv->right_image), icon_name, GTK_ICON_SIZE_MENU); + g_free (icon_name); } diff --git a/panel-plugin/scalemenuitem.h b/panel-plugin/scalemenuitem.h index 482b95b..4fa6339 100644 --- a/panel-plugin/scalemenuitem.h +++ b/panel-plugin/scalemenuitem.h @@ -65,16 +65,11 @@ GtkWidget *scale_menu_item_new_with_range (gdouble min, GtkWidget *scale_menu_item_get_scale (ScaleMenuItem *menuitem); -const gchar *scale_menu_item_get_percentage_label (ScaleMenuItem *menuitem); - -void scale_menu_item_set_percentage_label (ScaleMenuItem *menuitem, - const gchar *label); - void scale_menu_item_set_value (ScaleMenuItem *item, gdouble value); -void scale_menu_item_set_image_from_icon_name (ScaleMenuItem *menuitem, - const gchar *icon_name); +void scale_menu_item_set_base_icon_name (ScaleMenuItem *item, + const gchar *base_icon_name); G_END_DECLS -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list [email protected] https://mail.xfce.org/mailman/listinfo/xfce4-commits
