Update copyright info
[sbrightapplet] / src / simple-brightness-applet.c
index 8dba3ee..97a6f05 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * simple-brightness-applet - simple statusarea applet that allows the user to select the brightness from a range of 1-5
  *
- * Copyright (c) 2009 Faheem Pervez <trippin1@gmail.com>
+ * Copyright (c) 2009-2010 Faheem Pervez <trippin1@gmail.com>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  *
  */
 
-#ifdef HAVE_CONFIG_H
+//#ifdef HAVE_CONFIG_H
 #include <config.h>
-#endif
+//#endif
 
 #include "simple-brightness-applet.h"
 
+#include <glib/gi18n-lib.h>
 #include <string.h>
 #include <libosso.h>
 #include <gconf/gconf-client.h>
@@ -58,7 +59,7 @@ struct _SimpleBrightnessAppletPrivate
        guint gconfnotify_id;
        guint display_keepalive_timeout;
 
-       gboolean dispchkbtn_active;
+       gboolean keepdispon_active;
 
        osso_context_t *osso_context;
 };
@@ -66,12 +67,25 @@ struct _SimpleBrightnessAppletPrivate
 static void simple_brightness_applet_finalize (GObject *object);
 
 /* Callbacks: */
-static gboolean simple_brightness_applet_keep_backlight_alive (SimpleBrightnessApplet *plugin)
+static inline void simple_brightness_applet_show_fail_msg (void)
 {
-       g_return_val_if_fail (plugin->priv->osso_context, FALSE);
+       hildon_banner_show_information (NULL, NULL, _("Failed to keep backlight on"));
+}
 
+static gboolean simple_brightness_applet_keep_backlight_alive (SimpleBrightnessApplet *plugin)
+{
        osso_display_state_on (plugin->priv->osso_context);
-       return (osso_display_blanking_pause (plugin->priv->osso_context) == OSSO_OK);
+       if (osso_display_blanking_pause (plugin->priv->osso_context) != OSSO_OK)
+       {
+               simple_brightness_applet_show_fail_msg ();
+               plugin->priv->display_keepalive_timeout = 0;
+               g_signal_handler_block (plugin->priv->dispchkbtn, plugin->priv->dispchkbtn_toggled_id);
+               plugin->priv->keepdispon_active = FALSE;
+               hildon_check_button_set_active (HILDON_CHECK_BUTTON (plugin->priv->dispchkbtn), FALSE);
+               g_signal_handler_unblock (plugin->priv->dispchkbtn, plugin->priv->dispchkbtn_toggled_id);
+               return FALSE;
+       }
+       return TRUE;
 }
 
 static void simple_brightness_applet_on_gconf_value_changed (GConfClient *gconf_client G_GNUC_UNUSED, guint cnxn_id G_GNUC_UNUSED, GConfEntry *entry G_GNUC_UNUSED, SimpleBrightnessApplet *plugin)
@@ -98,51 +112,48 @@ static void simple_brightness_applet_on_settings_button_clicked (GtkWidget *butt
 
 static void simple_brightness_applet_on_dispchkbtn_toggled (GtkWidget *button G_GNUC_UNUSED, SimpleBrightnessApplet *plugin)
 {
-       GdkPixbuf *pixbuf = NULL;
-
-       plugin->priv->dispchkbtn_active = hildon_check_button_get_active (HILDON_CHECK_BUTTON(plugin->priv->dispchkbtn));
+       GdkPixbuf *pixbuf;
 
+       plugin->priv->keepdispon_active = hildon_check_button_get_active (HILDON_CHECK_BUTTON (plugin->priv->dispchkbtn));
        g_signal_handler_block (plugin->priv->dispchkbtn, plugin->priv->dispchkbtn_toggled_id);
-       
        gtk_widget_hide(plugin->priv->settings_dialog);
 
-       if (plugin->priv->dispchkbtn_active)
-       {
-       simple_brightness_applet_keep_backlight_alive(plugin);
-       plugin->priv->display_keepalive_timeout = g_timeout_add_seconds(50, (GSourceFunc) simple_brightness_applet_keep_backlight_alive, plugin);
-       if (plugin->priv->display_keepalive_timeout == 0)
+       if (plugin->priv->keepdispon_active)
        {
-               hildon_banner_show_information(NULL, NULL, "Failed to keep backlight on");
-               plugin->priv->dispchkbtn_active = FALSE;
-               hildon_check_button_set_active(HILDON_CHECK_BUTTON(plugin->priv->dispchkbtn), plugin->priv->dispchkbtn_active);
-               g_signal_handler_unblock (plugin->priv->dispchkbtn, plugin->priv->dispchkbtn_toggled_id);
-               return;
-       }
+               simple_brightness_applet_keep_backlight_alive (plugin);
+               plugin->priv->display_keepalive_timeout = g_timeout_add_seconds (50, (GSourceFunc) simple_brightness_applet_keep_backlight_alive, plugin);
+               if (plugin->priv->display_keepalive_timeout == 0)
+               {
+                       plugin->priv->keepdispon_active = FALSE;
+                       hildon_check_button_set_active (HILDON_CHECK_BUTTON (plugin->priv->dispchkbtn), FALSE);
+                       simple_brightness_applet_show_fail_msg ();
+                       goto finish;
+               }
 
-               gtk_widget_set_name(plugin->priv->applet_button, "hildon-reject-button-finger");
-               pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default(), "general_brightness", 18, 0, NULL);
+               gtk_widget_set_name (plugin->priv->applet_button, "hildon-reject-button-finger");
+               pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), "general_brightness", 18, 0, NULL);
                if (pixbuf)
                {
-               hd_status_plugin_item_set_status_area_icon (HD_STATUS_PLUGIN_ITEM (plugin), pixbuf);
+                       hd_status_plugin_item_set_status_area_icon (HD_STATUS_PLUGIN_ITEM (plugin), pixbuf);
                        g_object_unref (pixbuf);
-               pixbuf = NULL;
                }
        }
        else
        {
-       if(g_source_remove(plugin->priv->display_keepalive_timeout))
-       {
-               gtk_widget_set_name(plugin->priv->applet_button, "GtkButton-finger");
-               hd_status_plugin_item_set_status_area_icon (HD_STATUS_PLUGIN_ITEM (plugin), NULL);
-               plugin->priv->display_keepalive_timeout = 0;
-       }
-       else
-       {
-               plugin->priv->dispchkbtn_active = TRUE;
-               hildon_check_button_set_active(HILDON_CHECK_BUTTON(plugin->priv->dispchkbtn), plugin->priv->dispchkbtn_active);
-       }               
+               if (g_source_remove (plugin->priv->display_keepalive_timeout))
+               {
+                       gtk_widget_set_name (plugin->priv->applet_button, "GtkButton-finger");
+                       hd_status_plugin_item_set_status_area_icon (HD_STATUS_PLUGIN_ITEM (plugin), NULL);
+                       plugin->priv->display_keepalive_timeout = 0;
+               }
+               else
+               {
+                       plugin->priv->keepdispon_active = TRUE;
+                       hildon_check_button_set_active (HILDON_CHECK_BUTTON (plugin->priv->dispchkbtn), plugin->priv->keepdispon_active);
+               }
        }
 
+finish:
        g_signal_handler_unblock (plugin->priv->dispchkbtn, plugin->priv->dispchkbtn_toggled_id);
        gtk_widget_destroy(plugin->priv->settings_dialog);
 }
@@ -159,15 +170,15 @@ static void simple_brightness_applet_on_button_clicked (GtkWidget *button, Simpl
        gtk_window_set_destroy_with_parent (GTK_WINDOW (plugin->priv->settings_dialog), TRUE);
 
        settings_button = hildon_gtk_button_new (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH);
-       gtk_button_set_label (GTK_BUTTON (settings_button), "Open Display Settings...");
+       gtk_button_set_label (GTK_BUTTON (settings_button), _("Open Display Settings..."));
        gtk_button_set_image (GTK_BUTTON (settings_button), gtk_image_new_from_icon_name ("general_brightness", HILDON_ICON_SIZE_THUMB));
        gtk_box_pack_start (GTK_BOX (GTK_DIALOG (plugin->priv->settings_dialog)->vbox), settings_button, TRUE, TRUE, 0);
        g_signal_connect (settings_button, "clicked", G_CALLBACK (simple_brightness_applet_on_settings_button_clicked), plugin);
 
        plugin->priv->dispchkbtn = hildon_check_button_new (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH);
-       gtk_button_set_label (GTK_BUTTON (plugin->priv->dispchkbtn), "Keep display on");
+       gtk_button_set_label (GTK_BUTTON (plugin->priv->dispchkbtn), _("Keep display on"));
        gtk_button_set_alignment (GTK_BUTTON (plugin->priv->dispchkbtn), 0.5f, 0.5f);
-       hildon_check_button_set_active (HILDON_CHECK_BUTTON (plugin->priv->dispchkbtn), plugin->priv->dispchkbtn_active);
+       hildon_check_button_set_active (HILDON_CHECK_BUTTON (plugin->priv->dispchkbtn), plugin->priv->keepdispon_active);
        gtk_box_pack_start (GTK_BOX (GTK_DIALOG (plugin->priv->settings_dialog)->vbox), plugin->priv->dispchkbtn, TRUE, TRUE, 0);
        plugin->priv->dispchkbtn_toggled_id = g_signal_connect (plugin->priv->dispchkbtn, "toggled", G_CALLBACK (simple_brightness_applet_on_dispchkbtn_toggled), plugin); 
 
@@ -204,9 +215,7 @@ static void simple_brightness_applet_class_init (SimpleBrightnessAppletClass *kl
        g_type_class_add_private (klass, sizeof (SimpleBrightnessAppletPrivate));
 }
 
-static void simple_brightness_applet_class_finalize (SimpleBrightnessAppletClass *klass G_GNUC_UNUSED)
-{
-}
+static void simple_brightness_applet_class_finalize (SimpleBrightnessAppletClass *klass G_GNUC_UNUSED) {}
 
 static void simple_brightness_applet_init (SimpleBrightnessApplet *plugin)
 {
@@ -215,7 +224,10 @@ static void simple_brightness_applet_init (SimpleBrightnessApplet *plugin)
                return;
        memset (plugin->priv, 0, sizeof (SimpleBrightnessAppletPrivate));
 
-       plugin->priv->dispchkbtn_active = FALSE;
+       bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+       bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); 
+
+       plugin->priv->keepdispon_active = FALSE;
 
        plugin->priv->osso_context = osso_initialize (PACKAGE, PACKAGE_VERSION, TRUE, NULL);
        if (G_UNLIKELY (!plugin->priv->osso_context))
@@ -238,7 +250,7 @@ static void simple_brightness_applet_finalize (GObject *object)
                g_signal_handler_disconnect (plugin->priv->brightness_ctrlbar, plugin->priv->brightness_ctrlbar_valchanged_id);
 
        if (plugin->priv->display_keepalive_timeout != 0)
-               g_source_remove(plugin->priv->display_keepalive_timeout);
+               g_source_remove (plugin->priv->display_keepalive_timeout);
 
        if (plugin->priv->gconfnotify_id != 0)
        {
@@ -253,7 +265,7 @@ static void simple_brightness_applet_finalize (GObject *object)
        }
 
        if (plugin->priv->osso_context)
-               osso_deinitialize(plugin->priv->osso_context);
+               osso_deinitialize (plugin->priv->osso_context);
 
        G_OBJECT_CLASS (simple_brightness_applet_parent_class)->finalize (object);
 }