/*
* 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>
guint gconfnotify_id;
guint display_keepalive_timeout;
- gboolean dispchkbtn_active;
+ gboolean keepdispon_active;
osso_context_t *osso_context;
};
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)
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);
}
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);
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)
{
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))
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)
{
}
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);
}