Advertisement
MohammadAG

Untitled

Apr 28th, 2011
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.65 KB | None | 0 0
  1. static void
  2. battery_status_plugin_update_ui (BatteryStatusAreaItem *plugin)
  3. {
  4.     BatteryStatusAreaItemPrivate *priv = BATTERY_STATUS_PLUGIN_GET_PRIVATE (plugin);
  5.     gchar *battery_charge_image_name;
  6.     gchar percentage_text[64];
  7.  
  8.     if (priv->is_charging)
  9.     {
  10.         hildon_button_set_value (HILDON_BUTTON (plugin->priv->button), dgettext ("osso-dsm-ui", "incf_me_battery_charging"));
  11.         return;
  12.     }
  13.  
  14.     switch (priv->number_of_bars)
  15.     {
  16.         case 0:
  17.             battery_charge_image_name = "statusarea_battery_low";
  18.             break;
  19.         case 1:
  20.             battery_charge_image_name = "statusarea_battery_full13";
  21.             break;
  22.         case 2:
  23.             battery_charge_image_name = "statusarea_battery_full25";
  24.             break;
  25.         case 3:
  26.             battery_charge_image_name = "statusarea_battery_full38";
  27.             break;
  28.         case 4:
  29.             battery_charge_image_name = "statusarea_battery_full50";
  30.             break;
  31.         case 5:
  32.             battery_charge_image_name = "statusarea_battery_full63";
  33.             break;
  34.         case 6:
  35.             battery_charge_image_name = "statusarea_battery_full75";
  36.             break;
  37.         case 7:
  38.             battery_charge_image_name = "statusarea_battery_full88";
  39.             break;
  40.         case 8:
  41.             battery_charge_image_name = "statusarea_battery_full100";
  42.             break;
  43.     }
  44.  
  45.     GtkIconTheme *icon_theme = gtk_icon_theme_get_default ();
  46.     GdkPixbuf *pixbuf = gtk_icon_theme_load_icon (icon_theme, battery_charge_image_name,
  47.                     18, GTK_ICON_LOOKUP_NO_SVG, NULL);
  48.     hd_status_plugin_item_set_status_area_icon (HD_STATUS_PLUGIN_ITEM (plugin), pixbuf);
  49.     g_object_unref (pixbuf);
  50.  
  51.     pixbuf = gtk_icon_theme_load_icon (icon_theme, battery_charge_image_name,
  52.                                                   48, GTK_ICON_LOOKUP_NO_SVG, NULL);
  53.     hildon_button_set_image (HILDON_BUTTON (plugin->priv->button),
  54.                              gtk_image_new_from_pixbuf (pixbuf));
  55.     g_object_unref (pixbuf);
  56.  
  57.     g_snprintf (percentage_text, sizeof (percentage_text), "%d%%, %d mAh", priv->percentage, priv->current);
  58.     hildon_button_set_value (HILDON_BUTTON (plugin->priv->button), percentage_text);
  59.  
  60.     g_free (battery_charge_image_name);
  61. }
  62.  
  63. static void
  64. battery_status_plugin_get_values (BatteryStatusAreaItem *plugin)
  65. {
  66.     BatteryStatusAreaItemPrivate *priv = BATTERY_STATUS_PLUGIN_GET_PRIVATE (plugin);
  67.     gboolean is_charging;
  68.     int number_of_bars;
  69.  
  70.     is_charging = libhal_device_get_property_bool (priv->ctx, BME_HAL_UDI, BME_HAL_IS_CHARGING_KEY, NULL);
  71.     if (priv->is_charging != is_charging)
  72.     {
  73.         priv->is_charging = is_charging;
  74.         if (is_charging)
  75.             hildon_banner_show_information (GTK_WIDGET (plugin), NULL, dgettext ("osso-dsm-ui", "incf_ib_battery_charging"));
  76.         else
  77.             hildon_banner_show_information (GTK_WIDGET (plugin), NULL, dgettext ("osso-dsm-ui", "incf_ib_disconnect_charger"));
  78.     }
  79.  
  80.     number_of_bars = libhal_device_get_property_int (priv->ctx, BME_HAL_UDI, BME_HAL_BARS_KEY, NULL);
  81.     if (priv->number_of_bars != number_of_bars)
  82.     {
  83.         priv->number_of_bars = number_of_bars;
  84.         if (priv->number_of_bars == 0)
  85.             hildon_banner_show_information_override_dnd (GTK_WIDGET (plugin), dgettext ("osso-dsm-ui", "incf_ib_battery_low"));
  86.     }
  87.        
  88.     priv->percentage = libhal_device_get_property_int (priv->ctx, BME_HAL_UDI, BME_HAL_PERCENTAGE_KEY, NULL);
  89.     priv->current = libhal_device_get_property_int (priv->ctx, BME_HAL_UDI, BME_HAL_CURRENT_KEY, NULL);
  90.  
  91.     battery_status_plugin_update_ui (plugin);
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement