[Xfce4-commits] [panel-plugins/xfce4-pulseaudio-plugin] 16/21: Tidy up ScaleMenuItem

noreply at xfce.org noreply at xfce.org
Sat Sep 23 21:27:42 CEST 2017


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 c1d87fa041b73fe665213dabaa710b70f36939e2
Author: Sean Davis <smd.seandavis at gmail.com>
Date:   Tue Sep 12 22:01:37 2017 -0400

    Tidy up ScaleMenuItem
---
 panel-plugin/scalemenuitem.c | 419 +++++++++++++++++++++++--------------------
 panel-plugin/scalemenuitem.h |   4 +-
 2 files changed, 227 insertions(+), 196 deletions(-)

diff --git a/panel-plugin/scalemenuitem.c b/panel-plugin/scalemenuitem.c
index 5f27bcd..5b014cf 100644
--- a/panel-plugin/scalemenuitem.c
+++ b/panel-plugin/scalemenuitem.c
@@ -38,18 +38,6 @@
 
 
 
-static gboolean scale_menu_item_button_press_event      (GtkWidget          *menuitem,
-                                                         GdkEventButton     *event);
-static gboolean scale_menu_item_button_release_event    (GtkWidget          *menuitem,
-                                                         GdkEventButton     *event);
-static gboolean scale_menu_item_motion_notify_event     (GtkWidget          *menuitem,
-                                                         GdkEventMotion     *event);
-static void     scale_menu_item_parent_set              (GtkWidget          *item,
-                                                         GtkWidget          *previous_parent);
-
-
-
-
 struct _ScaleMenuItemPrivate {
   GtkWidget            *scale;
   GtkWidget            *hbox;
@@ -63,10 +51,6 @@ struct _ScaleMenuItemPrivate {
 
 
 
-static void scale_menu_item_finalize (GObject *object);
-
-
-
 enum {
   SLIDER_GRABBED,
   SLIDER_RELEASED,
@@ -77,7 +61,6 @@ enum {
 
 
 
-
 static guint signals[LAST_SIGNAL] = { 0 };
 
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
@@ -88,49 +71,161 @@ G_GNUC_END_IGNORE_DEPRECATIONS
 
 
 
-static void
-scale_menu_item_update_icon (ScaleMenuItem *self)
+/* Static Declarations */
+static void         scale_menu_item_finalize                (GObject            *object);
+static void         scale_menu_item_update_icon             (ScaleMenuItem      *self);
+static void         scale_menu_item_scale_value_changed     (GtkRange           *range,
+                                                             gpointer            user_data);
+static gboolean     scale_menu_item_button_press_event      (GtkWidget          *item,
+                                                             GdkEventButton     *event);
+static gboolean     scale_menu_item_button_release_event    (GtkWidget          *item,
+                                                             GdkEventButton     *event);
+static gboolean     scale_menu_item_motion_notify_event     (GtkWidget          *item,
+                                                             GdkEventMotion     *event);
+static void         menu_hidden                             (GtkWidget          *menu,
+                                                             ScaleMenuItem      *scale);
+static void         scale_menu_item_parent_set              (GtkWidget          *item,
+                                                             GtkWidget          *previous_parent);
+
+
+
+/* Public API */
+GtkWidget*
+scale_menu_item_new_with_range (gdouble min,
+                                gdouble max,
+                                gdouble step)
 {
-  ScaleMenuItemPrivate *priv = GET_PRIVATE (self);
-  gchar                *icon_name = NULL;
-  gdouble               value = gtk_range_get_value (GTK_RANGE (priv->scale));
+  ScaleMenuItem        *scale_item;
+  ScaleMenuItemPrivate *priv;
 
-  /* Update the menuitem icon */
-  if (scale_menu_item_get_muted (self) || value <= 0.0)
-    {
-      icon_name = g_strconcat(priv->icon_name, "-muted-symbolic", NULL);
-    }
-  else if (value < 30.0)
-    {
-      icon_name = g_strconcat(priv->icon_name, "-low-symbolic", NULL);
-    }
-  else if (value < 70.0)
-    {
-      icon_name = g_strconcat(priv->icon_name, "-medium-symbolic", NULL);
-    }
-  else
-    {
-      icon_name = g_strconcat(priv->icon_name, "-high-symbolic", NULL);
-    }
+  TRACE("entering");
 
-  gtk_image_set_from_icon_name (GTK_IMAGE (priv->image), icon_name, GTK_ICON_SIZE_MENU);
-  g_free (icon_name);
+  scale_item = SCALE_MENU_ITEM (g_object_new (TYPE_SCALE_MENU_ITEM, NULL));
+
+  priv = GET_PRIVATE (scale_item);
+
+  /* Configure the menu item image */
+  priv->image = gtk_image_new ();
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (scale_item), priv->image);
+G_GNUC_END_IGNORE_DEPRECATIONS
+
+  /* Configure the menu item scale */
+  priv->scale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, min, max, step);
+  gtk_widget_set_size_request (priv->scale, 100, -1);
+  gtk_range_set_inverted (GTK_RANGE(priv->scale), FALSE);
+  gtk_scale_set_draw_value (GTK_SCALE(priv->scale), FALSE);
+
+  if (max > 100.0)
+    gtk_scale_add_mark (GTK_SCALE (priv->scale), 100.0, GTK_POS_BOTTOM, NULL);
+
+  /* Configure the mute toggle */
+  priv->mute_toggle = gtk_switch_new ();
+
+  /* Pack the scale widget */
+  priv->hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+  priv->vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+  gtk_box_pack_start (GTK_BOX (priv->hbox), priv->scale, TRUE, TRUE, 0);
+  gtk_box_set_center_widget (GTK_BOX (priv->vbox), priv->mute_toggle);
+  gtk_box_pack_start (GTK_BOX (priv->hbox), priv->vbox, FALSE, FALSE, 0);
+  gtk_container_add (GTK_CONTAINER (scale_item), priv->hbox);
+  gtk_widget_show_all (priv->hbox);
+
+  /* Connect events */
+  g_signal_connect (priv->scale, "value-changed", G_CALLBACK (scale_menu_item_scale_value_changed), scale_item);
+  gtk_widget_add_events (GTK_WIDGET(scale_item), GDK_SCROLL_MASK|GDK_POINTER_MOTION_MASK|GDK_BUTTON_MOTION_MASK);
+
+  /* Keep references to the widgets */
+  g_object_ref (priv->image);
+  g_object_ref (priv->scale);
+  g_object_ref (priv->mute_toggle);
+  g_object_ref (priv->hbox);
+  g_object_ref (priv->vbox);
+
+  return GTK_WIDGET(scale_item);
 }
 
 
 
-static void
-scale_menu_item_scale_value_changed (GtkRange *range,
-                                     gpointer  user_data)
+gdouble
+scale_menu_item_get_value (ScaleMenuItem *item)
 {
-  ScaleMenuItem        *self = SCALE_MENU_ITEM (user_data);
-  gdouble               value = gtk_range_get_value (range);
+  ScaleMenuItemPrivate *priv;
 
-  g_signal_emit (self, signals[VALUE_CHANGED], 0, value);
+  g_return_val_if_fail (IS_SCALE_MENU_ITEM (item), 0.0);
 
-  scale_menu_item_update_icon (self);
+  priv = GET_PRIVATE (item);
+
+  return gtk_range_get_value (GTK_RANGE (priv->scale));
+}
+
+
+
+void
+scale_menu_item_set_value (ScaleMenuItem *item,
+                           gdouble        value)
+{
+  ScaleMenuItemPrivate *priv;
+
+  g_return_if_fail (IS_SCALE_MENU_ITEM (item));
+
+  priv = GET_PRIVATE (item);
+
+  gtk_range_set_value (GTK_RANGE (priv->scale), value);
+}
+
+
+
+gboolean
+scale_menu_item_get_muted (ScaleMenuItem *item)
+{
+  ScaleMenuItemPrivate *priv;
+
+  g_return_val_if_fail (IS_SCALE_MENU_ITEM (item), TRUE);
+
+  priv = GET_PRIVATE (item);
+
+  return !gtk_switch_get_active (GTK_SWITCH (priv->mute_toggle));
+}
+
+
+
+void
+scale_menu_item_set_muted (ScaleMenuItem *item,
+                           gboolean       muted)
+{
+  ScaleMenuItemPrivate *priv;
+
+  g_return_if_fail (IS_SCALE_MENU_ITEM (item));
+
+  priv = GET_PRIVATE (item);
+
+  gtk_switch_set_active (GTK_SWITCH (priv->mute_toggle), !muted);
+
+  scale_menu_item_update_icon (item);
 }
 
+
+
+void
+scale_menu_item_set_base_icon_name (ScaleMenuItem *item,
+                                    const gchar   *base_icon_name)
+{
+  ScaleMenuItemPrivate *priv;
+
+  g_return_if_fail (IS_SCALE_MENU_ITEM (item));
+
+  priv = GET_PRIVATE (item);
+
+  if (priv->icon_name)
+    g_free (priv->icon_name);
+
+  priv->icon_name = g_strdup (base_icon_name);
+}
+
+
+
+/* Private API */
 static void
 scale_menu_item_class_init (ScaleMenuItemClass *item_class)
 {
@@ -192,21 +287,22 @@ scale_menu_item_class_init (ScaleMenuItemClass *item_class)
    /**
     * ScaleMenuItem::toggled:
     * @menuitem: the #ScaleMenuItem emitting the signal.
-    * @value: the new value
     *
     * Emitted whenever the mute switch is toggled.
     */
    signals[TOGGLED] = g_signal_new ("toggled",
-                                     G_OBJECT_CLASS_TYPE (gobject_class),
-                                     G_SIGNAL_RUN_FIRST,
-                                     0,
-                                     NULL, NULL,
-                                     g_cclosure_marshal_VOID__VOID,
-                                     G_TYPE_NONE, 0);
+                                    G_OBJECT_CLASS_TYPE (gobject_class),
+                                    G_SIGNAL_RUN_FIRST,
+                                    0,
+                                    NULL, NULL,
+                                    g_cclosure_marshal_VOID__VOID,
+                                    G_TYPE_NONE, 0);
 
   g_type_class_add_private (item_class, sizeof (ScaleMenuItemPrivate));
 }
 
+
+
 static void
 scale_menu_item_init (ScaleMenuItem *self)
 {
@@ -222,6 +318,8 @@ scale_menu_item_init (ScaleMenuItem *self)
   priv->icon_name = NULL;
 }
 
+
+
 static void
 scale_menu_item_finalize (GObject *object)
 {
@@ -243,8 +341,55 @@ scale_menu_item_finalize (GObject *object)
   (*G_OBJECT_CLASS (scale_menu_item_parent_class)->finalize) (object);
 }
 
+
+
+static void
+scale_menu_item_update_icon (ScaleMenuItem *self)
+{
+  ScaleMenuItemPrivate *priv = GET_PRIVATE (self);
+  gchar                *icon_name = NULL;
+  gdouble               value = gtk_range_get_value (GTK_RANGE (priv->scale));
+
+  /* Update the menuitem icon */
+  if (scale_menu_item_get_muted (self) || value <= 0.0)
+    {
+      icon_name = g_strconcat(priv->icon_name, "-muted-symbolic", NULL);
+    }
+  else if (value < 30.0)
+    {
+      icon_name = g_strconcat(priv->icon_name, "-low-symbolic", NULL);
+    }
+  else if (value < 70.0)
+    {
+      icon_name = g_strconcat(priv->icon_name, "-medium-symbolic", NULL);
+    }
+  else
+    {
+      icon_name = g_strconcat(priv->icon_name, "-high-symbolic", NULL);
+    }
+
+  gtk_image_set_from_icon_name (GTK_IMAGE (priv->image), icon_name, GTK_ICON_SIZE_MENU);
+  g_free (icon_name);
+}
+
+
+
+static void
+scale_menu_item_scale_value_changed (GtkRange *range,
+                                     gpointer  user_data)
+{
+  ScaleMenuItem *self = SCALE_MENU_ITEM (user_data);
+  gdouble        value = gtk_range_get_value (range);
+
+  g_signal_emit (self, signals[VALUE_CHANGED], 0, value);
+
+  scale_menu_item_update_icon (self);
+}
+
+
+
 static gboolean
-scale_menu_item_button_press_event (GtkWidget      *menuitem,
+scale_menu_item_button_press_event (GtkWidget      *item,
                                     GdkEventButton *event)
 {
   ScaleMenuItemPrivate *priv;
@@ -253,19 +398,19 @@ scale_menu_item_button_press_event (GtkWidget      *menuitem,
 
   TRACE("entering");
 
-  g_return_val_if_fail (IS_SCALE_MENU_ITEM (menuitem), FALSE);
+  g_return_val_if_fail (IS_SCALE_MENU_ITEM (item), FALSE);
 
-  priv = GET_PRIVATE (menuitem);
+  priv = GET_PRIVATE (item);
 
   gtk_widget_get_allocation (priv->mute_toggle, &alloc);
-  gtk_widget_translate_coordinates (GTK_WIDGET (menuitem), priv->mute_toggle, event->x, event->y, &x, &y);
+  gtk_widget_translate_coordinates (GTK_WIDGET (item), priv->mute_toggle, event->x, event->y, &x, &y);
   if (x > 0 && x < alloc.width && y > 0 && y < alloc.height)
     {
       return TRUE;
     }
 
   gtk_widget_get_allocation (priv->scale, &alloc);
-  gtk_widget_translate_coordinates (menuitem, priv->scale, event->x, event->y, &x, &y);
+  gtk_widget_translate_coordinates (item, priv->scale, event->x, event->y, &x, &y);
   if (x > 0 && x < alloc.width && y > 0 && y < alloc.height)
     {
       gtk_widget_event (priv->scale, (GdkEvent*) event);
@@ -274,14 +419,16 @@ scale_menu_item_button_press_event (GtkWidget      *menuitem,
   if (!priv->grabbed)
     {
       priv->grabbed = TRUE;
-      g_signal_emit (menuitem, signals[SLIDER_GRABBED], 0);
+      g_signal_emit (item, signals[SLIDER_GRABBED], 0);
     }
 
   return TRUE;
 }
 
+
+
 static gboolean
-scale_menu_item_button_release_event (GtkWidget      *menuitem,
+scale_menu_item_button_release_event (GtkWidget      *item,
                                       GdkEventButton *event)
 {
   ScaleMenuItemPrivate *priv;
@@ -290,21 +437,21 @@ scale_menu_item_button_release_event (GtkWidget      *menuitem,
 
   TRACE("entering");
 
-  g_return_val_if_fail (IS_SCALE_MENU_ITEM (menuitem), FALSE);
+  g_return_val_if_fail (IS_SCALE_MENU_ITEM (item), FALSE);
 
-  priv = GET_PRIVATE (menuitem);
+  priv = GET_PRIVATE (item);
 
   gtk_widget_get_allocation (priv->mute_toggle, &alloc);
-  gtk_widget_translate_coordinates (GTK_WIDGET (menuitem), priv->mute_toggle, event->x, event->y, &x, &y);
+  gtk_widget_translate_coordinates (GTK_WIDGET (item), priv->mute_toggle, event->x, event->y, &x, &y);
   if (x > 0 && x < alloc.width && y > 0 && y < alloc.height)
     {
       gtk_switch_set_active (GTK_SWITCH (priv->mute_toggle), !gtk_switch_get_active (GTK_SWITCH (priv->mute_toggle)));
-      g_signal_emit (menuitem, signals[TOGGLED], 0);
+      g_signal_emit (item, signals[TOGGLED], 0);
       return TRUE;
     }
 
   gtk_widget_get_allocation (priv->scale, &alloc);
-  gtk_widget_translate_coordinates (menuitem, priv->scale, event->x, event->y, &x, &y);
+  gtk_widget_translate_coordinates (item, priv->scale, event->x, event->y, &x, &y);
   if (x > 0 && x < alloc.width && y > 0 && y < alloc.height)
     {
       gtk_widget_event (priv->scale, (GdkEvent*) event);
@@ -313,14 +460,16 @@ scale_menu_item_button_release_event (GtkWidget      *menuitem,
   if (priv->grabbed)
     {
       priv->grabbed = FALSE;
-      g_signal_emit (menuitem, signals[SLIDER_RELEASED], 0);
+      g_signal_emit (item, signals[SLIDER_RELEASED], 0);
     }
 
   return TRUE;
 }
 
+
+
 static gboolean
-scale_menu_item_motion_notify_event (GtkWidget      *menuitem,
+scale_menu_item_motion_notify_event (GtkWidget      *item,
                                      GdkEventMotion *event)
 {
   ScaleMenuItemPrivate *priv;
@@ -328,13 +477,13 @@ scale_menu_item_motion_notify_event (GtkWidget      *menuitem,
   GtkAllocation         alloc;
   gint                  x, y;
 
-  g_return_val_if_fail (IS_SCALE_MENU_ITEM (menuitem), FALSE);
+  g_return_val_if_fail (IS_SCALE_MENU_ITEM (item), FALSE);
 
-  priv = GET_PRIVATE (menuitem);
+  priv = GET_PRIVATE (item);
   scale = priv->scale;
 
   gtk_widget_get_allocation (priv->scale, &alloc);
-  gtk_widget_translate_coordinates (menuitem, priv->scale, event->x, event->y, &x, &y);
+  gtk_widget_translate_coordinates (item, priv->scale, event->x, event->y, &x, &y);
 
   if (x > 0 && x < alloc.width && y > 0 && y < alloc.height)
     {
@@ -344,6 +493,8 @@ scale_menu_item_motion_notify_event (GtkWidget      *menuitem,
   return TRUE;
 }
 
+
+
 static void
 menu_hidden (GtkWidget     *menu,
              ScaleMenuItem *scale)
@@ -362,6 +513,8 @@ menu_hidden (GtkWidget     *menu,
     }
 }
 
+
+
 static void
 scale_menu_item_parent_set (GtkWidget *item,
                             GtkWidget *previous_parent)
@@ -383,125 +536,3 @@ scale_menu_item_parent_set (GtkWidget *item,
       g_signal_connect (parent, "hide", G_CALLBACK (menu_hidden), item);
     }
 }
-
-
-
-GtkWidget*
-scale_menu_item_new_with_range (gdouble           min,
-                                gdouble           max,
-                                gdouble           step)
-{
-  ScaleMenuItem        *scale_item;
-  ScaleMenuItemPrivate *priv;
-
-  TRACE("entering");
-
-  scale_item = SCALE_MENU_ITEM (g_object_new (TYPE_SCALE_MENU_ITEM, NULL));
-
-  priv = GET_PRIVATE (scale_item);
-
-  /* Configure the menu item image */
-  priv->image = gtk_image_new ();
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (scale_item), priv->image);
-G_GNUC_END_IGNORE_DEPRECATIONS
-
-  /* Configure the menu item scale */
-  priv->scale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, min, max, step);
-  gtk_widget_set_size_request (priv->scale, 100, -1);
-  gtk_range_set_inverted (GTK_RANGE(priv->scale), FALSE);
-  gtk_scale_set_draw_value (GTK_SCALE(priv->scale), FALSE);
-
-  if (max > 100.0)
-    gtk_scale_add_mark (GTK_SCALE (priv->scale), 100.0, GTK_POS_BOTTOM, NULL);
-
-  /* Configure the mute toggle */
-  priv->mute_toggle = gtk_switch_new ();
-
-  /* Pack the scale widget */
-  priv->hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
-  priv->vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-  gtk_box_pack_start (GTK_BOX (priv->hbox), priv->scale, TRUE, TRUE, 0);
-  gtk_box_set_center_widget (GTK_BOX (priv->vbox), priv->mute_toggle);
-  gtk_box_pack_start (GTK_BOX (priv->hbox), priv->vbox, FALSE, FALSE, 0);
-  gtk_container_add (GTK_CONTAINER (scale_item), priv->hbox);
-  gtk_widget_show_all (priv->hbox);
-
-  /* Connect events */
-  g_signal_connect (priv->scale, "value-changed", G_CALLBACK (scale_menu_item_scale_value_changed), scale_item);
-  gtk_widget_add_events (GTK_WIDGET(scale_item), GDK_SCROLL_MASK|GDK_POINTER_MOTION_MASK|GDK_BUTTON_MOTION_MASK);
-
-  /* Keep references to the widgets */
-  g_object_ref (priv->image);
-  g_object_ref (priv->scale);
-  g_object_ref (priv->mute_toggle);
-  g_object_ref (priv->hbox);
-  g_object_ref (priv->vbox);
-
-  return GTK_WIDGET(scale_item);
-}
-
-void
-scale_menu_item_set_base_icon_name (ScaleMenuItem *item,
-                                    const gchar   *base_icon_name)
-{
-  ScaleMenuItemPrivate *priv;
-
-  g_return_if_fail (IS_SCALE_MENU_ITEM (item));
-
-  priv = GET_PRIVATE (item);
-
-  priv->icon_name = g_strdup (base_icon_name);
-}
-
-gdouble
-scale_menu_item_get_value (ScaleMenuItem *item)
-{
-  ScaleMenuItemPrivate *priv;
-
-  g_return_val_if_fail (IS_SCALE_MENU_ITEM (item), 0.0);
-
-  priv = GET_PRIVATE (item);
-
-  return gtk_range_get_value (GTK_RANGE (priv->scale));
-}
-
-void
-scale_menu_item_set_value (ScaleMenuItem *item,
-                           gdouble        value)
-{
-  ScaleMenuItemPrivate *priv;
-
-  g_return_if_fail (IS_SCALE_MENU_ITEM (item));
-
-  priv = GET_PRIVATE (item);
-
-  gtk_range_set_value (GTK_RANGE (priv->scale), value);
-}
-
-gboolean
-scale_menu_item_get_muted (ScaleMenuItem *menuitem)
-{
-  ScaleMenuItemPrivate *priv;
-
-  g_return_val_if_fail (IS_SCALE_MENU_ITEM (menuitem), TRUE);
-
-  priv = GET_PRIVATE (menuitem);
-
-  return !gtk_switch_get_active (GTK_SWITCH (priv->mute_toggle));
-}
-
-void
-scale_menu_item_set_muted (ScaleMenuItem *menuitem,
-                           gboolean       muted)
-{
-  ScaleMenuItemPrivate *priv;
-
-  g_return_if_fail (IS_SCALE_MENU_ITEM (menuitem));
-
-  priv = GET_PRIVATE (menuitem);
-
-  gtk_switch_set_active (GTK_SWITCH (priv->mute_toggle), !muted);
-
-  scale_menu_item_update_icon (menuitem);
-}
diff --git a/panel-plugin/scalemenuitem.h b/panel-plugin/scalemenuitem.h
index c9d40b3..0c320e3 100644
--- a/panel-plugin/scalemenuitem.h
+++ b/panel-plugin/scalemenuitem.h
@@ -67,8 +67,8 @@ gdouble      scale_menu_item_get_value             (ScaleMenuItem *item);
 void         scale_menu_item_set_value             (ScaleMenuItem *item,
                                                     gdouble        value);
 
-gboolean     scale_menu_item_get_muted             (ScaleMenuItem *menuitem);
-void         scale_menu_item_set_muted             (ScaleMenuItem *menuitem,
+gboolean     scale_menu_item_get_muted             (ScaleMenuItem *item);
+void         scale_menu_item_set_muted             (ScaleMenuItem *item,
                                                     gboolean       muted);
 
 void         scale_menu_item_set_base_icon_name    (ScaleMenuItem *item,

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list