[Xfce4-commits] r27094 - in xfce4-mixer/trunk: . panel-plugin
Jannis Pohlmann
jannis at xfce.org
Sat Jun 21 02:47:45 CEST 2008
Author: jannis
Date: 2008-06-21 00:47:45 +0000 (Sat, 21 Jun 2008)
New Revision: 27094
Modified:
xfce4-mixer/trunk/ChangeLog
xfce4-mixer/trunk/TODO
xfce4-mixer/trunk/panel-plugin/xfce-volume-button.c
Log:
* panel-plugin/xfce-volume-button.c: Add support for toggling
between minimum and last known volume using the middle
mouse button.
Modified: xfce4-mixer/trunk/ChangeLog
===================================================================
--- xfce4-mixer/trunk/ChangeLog 2008-06-21 00:17:03 UTC (rev 27093)
+++ xfce4-mixer/trunk/ChangeLog 2008-06-21 00:47:45 UTC (rev 27094)
@@ -1,5 +1,11 @@
2008-06-21 Jannis Pohlmann <jannis at xfce.org>
+ * panel-plugin/xfce-volume-button.c: Add support for toggling
+ between minimum and last known volume using the middle
+ mouse button.
+
+2008-06-21 Jannis Pohlmann <jannis at xfce.org>
+
* panel-plugin/xfce-volume-button.c: Add support for GDK_Home
and GDK_End for changing the volume to the maximum/minimum
level.
Modified: xfce4-mixer/trunk/TODO
===================================================================
--- xfce4-mixer/trunk/TODO 2008-06-21 00:17:03 UTC (rev 27093)
+++ xfce4-mixer/trunk/TODO 2008-06-21 00:47:45 UTC (rev 27094)
@@ -4,8 +4,7 @@
by updating the corresponding mixer widgets
* Write panel plugin
+ 1) Monitor GStreamer for changes
-* Implement Xfconf support
-
* Allow changing controls from the console, probably via something like:
--change-control=SOUNDCARD NAME:TRACK NAME:NEW VALUE
Modified: xfce4-mixer/trunk/panel-plugin/xfce-volume-button.c
===================================================================
--- xfce4-mixer/trunk/panel-plugin/xfce-volume-button.c 2008-06-21 00:17:03 UTC (rev 27093)
+++ xfce4-mixer/trunk/panel-plugin/xfce-volume-button.c 2008-06-21 00:47:45 UTC (rev 27094)
@@ -58,6 +58,9 @@
static void xfce_volume_button_key_pressed (GtkWidget *widget,
GdkEventKey *event,
XfceVolumeButton *button);
+static void xfce_volume_button_button_pressed (GtkWidget *widget,
+ GdkEventButton *event,
+ XfceVolumeButton *button);
static void xfce_volume_button_enter (GtkWidget *widget,
GdkEventCrossing *event);
static void xfce_volume_button_leave (GtkWidget *widget,
@@ -89,6 +92,8 @@
GtkWidget *image;
GtkObject *adjustment;
+
+ gdouble previous_value;
};
@@ -168,6 +173,7 @@
gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
g_signal_connect (G_OBJECT (button), "key-press-event", G_CALLBACK (xfce_volume_button_key_pressed), button);
+ g_signal_connect (G_OBJECT (button), "button-press-event", G_CALLBACK (xfce_volume_button_button_pressed), button);
g_signal_connect (G_OBJECT (button), "enter-notify-event", G_CALLBACK (xfce_volume_button_enter), NULL);
g_signal_connect (G_OBJECT (button), "leave-notify-event", G_CALLBACK (xfce_volume_button_leave), NULL);
g_signal_connect (G_OBJECT (button), "scroll-event", G_CALLBACK (xfce_volume_button_scrolled), button);
@@ -245,6 +251,8 @@
break;
}
+ button->previous_value = value;
+
xfce_volume_button_update (button);
g_signal_emit_by_name (button, "volume-changed", gtk_adjustment_get_value (GTK_ADJUSTMENT (button->adjustment)));
@@ -253,6 +261,39 @@
static void
+xfce_volume_button_button_pressed (GtkWidget *widget,
+ GdkEventButton *event,
+ XfceVolumeButton *button)
+{
+ gdouble value;
+ gdouble min_value;
+
+ g_return_if_fail (IS_XFCE_VOLUME_BUTTON (button));
+
+ g_object_get (G_OBJECT (button->adjustment), "value", &value, "lower", &min_value, NULL);
+
+ if (event->button == 2)
+ {
+ if (gtk_adjustment_get_value (GTK_ADJUSTMENT (button->adjustment)) == min_value)
+ {
+ gtk_adjustment_set_value (GTK_ADJUSTMENT (button->adjustment), button->previous_value);
+ button->previous_value = value;
+ }
+ else
+ {
+ gtk_adjustment_set_value (GTK_ADJUSTMENT (button->adjustment), min_value);
+ button->previous_value = value;
+ }
+ }
+
+ xfce_volume_button_update (button);
+
+ g_signal_emit_by_name (button, "volume-changed", gtk_adjustment_get_value (GTK_ADJUSTMENT (button->adjustment)));
+}
+
+
+
+static void
xfce_volume_button_enter (GtkWidget *widget,
GdkEventCrossing *event)
{
More information about the Xfce4-commits
mailing list