[Goodies-commits] r7122 - in xfce4-power-manager/trunk: . panel-plugins/brightness

Ali Abdallah aliov at xfce.org
Mon Apr 6 14:37:30 CEST 2009


Author: aliov
Date: 2009-04-06 12:37:30 +0000 (Mon, 06 Apr 2009)
New Revision: 7122

Modified:
   xfce4-power-manager/trunk/ChangeLog
   xfce4-power-manager/trunk/panel-plugins/brightness/brightness-plugin.c
Log:
Change brightness on scroll mouse events

Modified: xfce4-power-manager/trunk/ChangeLog
===================================================================
--- xfce4-power-manager/trunk/ChangeLog	2009-04-06 08:54:50 UTC (rev 7121)
+++ xfce4-power-manager/trunk/ChangeLog	2009-04-06 12:37:30 UTC (rev 7122)
@@ -1,4 +1,7 @@
 
+2009-04-06 14:37 Ali aliov at xfce.org 
+	 * : Change brightness on scroll mouse events
+
 2009-04-06 10:54 Ali aliov at xfce.org 
 	 * : Fix a warning the inhibit panel plugin when full debug is enabled+make settings dialog correctly resizable
 

Modified: xfce4-power-manager/trunk/panel-plugins/brightness/brightness-plugin.c
===================================================================
--- xfce4-power-manager/trunk/panel-plugins/brightness/brightness-plugin.c	2009-04-06 08:54:50 UTC (rev 7121)
+++ xfce4-power-manager/trunk/panel-plugins/brightness/brightness-plugin.c	2009-04-06 12:37:30 UTC (rev 7122)
@@ -75,6 +75,23 @@
 				G_TYPE_INVALID);
 }
 
+static void
+brightness_plugin_set_tooltip (brightness_t *brightness)
+{
+    gchar *tooltip;
+    
+    if ( brightness->hw_found )
+    {
+	tooltip = g_strdup_printf (_("Current reported brightness level \"%i\""), brightness->current_level);
+	gtk_widget_set_tooltip_text (brightness->button, tooltip);
+	g_free (tooltip);
+    }
+    else
+    {
+	gtk_widget_set_tooltip_text (brightness->button, _("No device found"));
+    }
+}
+
 static gint 
 brightness_plugin_get_level (brightness_t *brightness)
 {
@@ -112,6 +129,10 @@
 	g_critical ("Error setting brightness level: %s\n", error->message);
 	g_error_free (error);
     }
+    else
+    {
+	brightness->current_level = level;
+    }
     
     if ( brightness->xfpm_running )
 	brightness_plugin_update_xfpm_brightness_level (brightness, level);
@@ -294,6 +315,7 @@
 	{
 	    g_warning("Failed to set brightness level\n");
 	}
+	brightness_plugin_set_tooltip (plugin);
     }
 }
 
@@ -383,6 +405,12 @@
 static void
 brightness_plugin_construct_popup (brightness_t *plugin)
 {
+    if ( plugin->win )
+    {
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (plugin->button), FALSE);
+	gtk_widget_destroy (plugin->win);
+    }
+    
     brightness_plugin_create_popup (plugin);
     plugin->open = FALSE;
 
@@ -457,17 +485,54 @@
 	brightness_plugin_construct_popup (brightness);
 	brightness_plugin_set_level (brightness, 9);
 	brightness_plugin_xfpm (brightness);
-	gtk_widget_set_tooltip_text (brightness->button, _("Control your LCD brightness level"));
     }
-    else
+
+    size = xfce_panel_plugin_get_size (brightness->plugin);
+    brightness_plugin_size_changed_cb (brightness->plugin, size, brightness);
+    brightness_plugin_set_tooltip (brightness);
+    
+}
+
+static void
+brightness_plugin_up (brightness_t *brightness)
+{
+    guint level;
+    level = brightness_plugin_get_level (brightness);
+    
+    if ( level != brightness->max_level )
     {
-	gtk_widget_set_tooltip_text (brightness->button, _("No device found"));
+	plus_clicked (NULL, brightness);
     }
+}
+
+static void
+brightness_plugin_down (brightness_t *brightness)
+{
+    guint level;
+    level = brightness_plugin_get_level (brightness);
     
-    size = xfce_panel_plugin_get_size (brightness->plugin);
-    brightness_plugin_size_changed_cb (brightness->plugin, size, brightness);
+    if ( level != 0 )
+    {
+	minus_clicked (NULL, brightness);
+    }
 }
 
+static gboolean
+brightness_plugin_scroll_event_cb (GtkWidget *button, GdkEventScroll *ev, brightness_t *brightness)
+{
+    if ( ev->direction  == GDK_SCROLL_DOWN )
+    {
+	brightness_plugin_down (brightness);
+	return TRUE;
+    }
+    else if ( ev->direction == GDK_SCROLL_UP )
+    {
+	brightness_plugin_up (brightness);
+	return TRUE;
+    }
+    return FALSE;
+}
+
 static void
 brightness_plugin_construct (brightness_t *plugin)
 {
@@ -486,6 +551,8 @@
 
     g_signal_connect (plugin->button, "clicked",
 		      G_CALLBACK (brightness_plugin_button_press_cb), plugin);
+    g_signal_connect (plugin->button, "scroll-event",
+		      G_CALLBACK (brightness_plugin_scroll_event_cb), plugin);
 		      
     mi = gtk_image_menu_item_new_from_stock (GTK_STOCK_REFRESH, NULL);
     gtk_widget_show (mi);
@@ -512,15 +579,11 @@
     if ( brightness->hw_found )
     {
 	brightness_plugin_construct_popup (brightness);
-	brightness_plugin_set_level (brightness, 9);
 	brightness_plugin_xfpm (brightness);
-	gtk_widget_set_tooltip_text (brightness->button, _("Control your LCD brightness level"));
     }
-    else
-    {
-	gtk_widget_set_tooltip_text (brightness->button, _("No device found"));
-    }
     
+    brightness_plugin_set_tooltip (brightness);
+    
     g_signal_connect (plugin, "free-data",
 		      G_CALLBACK(brightness_plugin_free_data_cb), brightness);
 		      




More information about the Goodies-commits mailing list