[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