Display when the battery is charging
This commit is contained in:
parent
1425058415
commit
95bd1f18a2
@ -85,7 +85,8 @@ static int _panel_destroy(PhonePlugin * plugin);
|
|||||||
static int _panel_event(PhonePlugin * plugin, PhoneEvent * event);
|
static int _panel_event(PhonePlugin * plugin, PhoneEvent * event);
|
||||||
static void _panel_settings(PhonePlugin * plugin);
|
static void _panel_settings(PhonePlugin * plugin);
|
||||||
|
|
||||||
static void _panel_set_battery_level(Panel * panel, gdouble level);
|
static void _panel_set_battery_level(Panel * panel, gdouble level,
|
||||||
|
gboolean charging);
|
||||||
static void _panel_set_operator(Panel * panel, ModemRegistrationStatus status,
|
static void _panel_set_operator(Panel * panel, ModemRegistrationStatus status,
|
||||||
char const * _operator);
|
char const * _operator);
|
||||||
static void _panel_set_signal_level(Panel * panel, gdouble level);
|
static void _panel_set_signal_level(Panel * panel, gdouble level);
|
||||||
@ -279,7 +280,8 @@ static int _event_modem_event(PhonePlugin * plugin, ModemEvent * event)
|
|||||||
{
|
{
|
||||||
case MODEM_EVENT_TYPE_BATTERY_LEVEL:
|
case MODEM_EVENT_TYPE_BATTERY_LEVEL:
|
||||||
_panel_set_battery_level(panel,
|
_panel_set_battery_level(panel,
|
||||||
event->battery_level.level);
|
event->battery_level.level,
|
||||||
|
event->battery_level.charging);
|
||||||
break;
|
break;
|
||||||
case MODEM_EVENT_TYPE_REGISTRATION:
|
case MODEM_EVENT_TYPE_REGISTRATION:
|
||||||
media = event->registration.media;
|
media = event->registration.media;
|
||||||
@ -300,48 +302,56 @@ static int _event_modem_event(PhonePlugin * plugin, ModemEvent * event)
|
|||||||
|
|
||||||
|
|
||||||
/* panel_set_battery_level */
|
/* panel_set_battery_level */
|
||||||
static void _set_battery_image(Panel * panel, PanelBattery battery);
|
static void _set_battery_image(Panel * panel, PanelBattery battery,
|
||||||
|
gboolean charging);
|
||||||
|
|
||||||
static void _panel_set_battery_level(Panel * panel, gdouble level)
|
static void _panel_set_battery_level(Panel * panel, gdouble level,
|
||||||
|
gboolean charging)
|
||||||
{
|
{
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf(stderr, "DEBUG: %s(plugin, %lf)\n", __func__, level);
|
fprintf(stderr, "DEBUG: %s(plugin, %lf)\n", __func__, level);
|
||||||
#endif
|
#endif
|
||||||
if(level < 0.0)
|
if(level < 0.0)
|
||||||
_set_battery_image(panel, PANEL_BATTERY_UNKNOWN);
|
_set_battery_image(panel, PANEL_BATTERY_UNKNOWN, charging);
|
||||||
else if(level <= 0.01)
|
else if(level <= 0.01)
|
||||||
_set_battery_image(panel, PANEL_BATTERY_EMPTY);
|
_set_battery_image(panel, PANEL_BATTERY_EMPTY, charging);
|
||||||
else if(level <= 0.1)
|
else if(level <= 0.1)
|
||||||
_set_battery_image(panel, PANEL_BATTERY_CAUTION);
|
_set_battery_image(panel, PANEL_BATTERY_CAUTION, charging);
|
||||||
else if(level <= 0.2)
|
else if(level <= 0.2)
|
||||||
_set_battery_image(panel, PANEL_BATTERY_LOW);
|
_set_battery_image(panel, PANEL_BATTERY_LOW, charging);
|
||||||
else if(level <= 0.75)
|
else if(level <= 0.75)
|
||||||
_set_battery_image(panel, PANEL_BATTERY_GOOD);
|
_set_battery_image(panel, PANEL_BATTERY_GOOD, charging);
|
||||||
else if(level <= 1.0)
|
else if(level <= 1.0)
|
||||||
_set_battery_image(panel, PANEL_BATTERY_FULL);
|
_set_battery_image(panel, PANEL_BATTERY_FULL, charging);
|
||||||
else
|
else
|
||||||
_set_battery_image(panel, PANEL_BATTERY_ERROR);
|
_set_battery_image(panel, PANEL_BATTERY_ERROR, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _set_battery_image(Panel * panel, PanelBattery battery)
|
static void _set_battery_image(Panel * panel, PanelBattery battery,
|
||||||
|
gboolean charging)
|
||||||
{
|
{
|
||||||
char const * icons[PANEL_BATTERY_COUNT] =
|
struct
|
||||||
{
|
{
|
||||||
"stock_dialog-question",
|
char const * icon;
|
||||||
"battery-missing",
|
char const * charging;
|
||||||
"battery-empty",
|
} icons[PANEL_BATTERY_COUNT] =
|
||||||
"battery-caution",
|
{
|
||||||
"battery-low",
|
{ "stock_dialog-question", "stock_dialog-question" },
|
||||||
"battery-good",
|
{ "battery-missing", "battery-missing" },
|
||||||
"battery-full"
|
{ "battery-empty", "battery-caution-charging" },
|
||||||
|
{ "battery-caution", "battery-caution-charging" },
|
||||||
|
{ "battery-low", "battery-low-charging" },
|
||||||
|
{ "battery-good", "battery-good-charging" },
|
||||||
|
{ "battery-full", "battery-full-charging" }
|
||||||
};
|
};
|
||||||
|
|
||||||
if(panel->battery_level == battery)
|
if(panel->battery_level == battery)
|
||||||
return;
|
return;
|
||||||
panel->battery_level = battery;
|
panel->battery_level = battery;
|
||||||
/* XXX may not be the correct size */
|
/* XXX may not be the correct size */
|
||||||
gtk_image_set_from_icon_name(GTK_IMAGE(panel->battery_image),
|
gtk_image_set_from_icon_name(GTK_IMAGE(panel->battery_image), charging
|
||||||
icons[battery], GTK_ICON_SIZE_SMALL_TOOLBAR);
|
? icons[battery].charging : icons[battery].icon,
|
||||||
|
GTK_ICON_SIZE_SMALL_TOOLBAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user