From e9f91cffa10b6d00743674faf516dff8e3e13311 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jard=C3=B3n?= Date: Mon, 27 Jun 2011 12:19:09 +0100 Subject: power-service: Add more items to the menu --- src/power-service.c | 55 +++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 41 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/power-service.c b/src/power-service.c index f63c995..bca079b 100644 --- a/src/power-service.c +++ b/src/power-service.c @@ -43,9 +43,6 @@ static DbusmenuServer *server = NULL; /*TODO Do we need this?*/ /*static PowerServiceDbus *dbus_interface = NULL;*/ -/* Global Items */ -static DbusmenuMenuitem *settings = NULL; - /* Repsonds to the service object saying it's time to shutdown. It stops the mainloop. */ static void @@ -57,24 +54,54 @@ service_shutdown (IndicatorService *service, g_main_loop_quit(mainloop); } +static void +spawn_on_activate_cb (DbusmenuMenuitem *mi, + guint timestamp, + gpointer user_data) +{ + GError * error = NULL; + + if (!g_spawn_command_line_async (user_data, &error)) + { + g_warning ("Unable to start %s: %s", (char *)user_data, error->message); + g_error_free (error); + } +} + static void build_menus (DbusmenuMenuitem *root_menuitem) { - /*TODO*/ + DbusmenuMenuitem *power_mi = NULL; + DbusmenuMenuitem *separator_mi = NULL; + DbusmenuMenuitem *settings_mi = NULL; - settings = dbusmenu_menuitem_new(); - dbusmenu_menuitem_property_set (settings, + power_mi = dbusmenu_menuitem_new (); + dbusmenu_menuitem_property_set (power_mi, + DBUSMENU_MENUITEM_PROP_LABEL, + _("Laptop Battery 0:25")); /*TODO*/ + g_signal_connect (G_OBJECT (power_mi), + DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, + G_CALLBACK (spawn_on_activate_cb), + "gnome-power-statistic"); + + settings_mi = dbusmenu_menuitem_new(); + dbusmenu_menuitem_property_set (settings_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Power Settings...")); - /* insensitive until we check for available apps */ -/* - dbusmenu_menuitem_property_set_bool (settings, DBUSMENU_MENUITEM_PROP_ENABLED, FALSE); - g_signal_connect (G_OBJECT (settings), + g_signal_connect (G_OBJECT (power_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, - G_CALLBACK (activate_cb), - "indicator-power-preferences"); -*/ - dbusmenu_menuitem_child_append (root_menuitem, settings); + G_CALLBACK (spawn_on_activate_cb), + "gnome-power-preferences"); + + separator_mi = dbusmenu_menuitem_new (); + dbusmenu_menuitem_property_set (separator_mi, + DBUSMENU_MENUITEM_PROP_TYPE, + DBUSMENU_CLIENT_TYPES_SEPARATOR); + + + dbusmenu_menuitem_child_append (root_menuitem, power_mi); + dbusmenu_menuitem_child_append (root_menuitem, separator_mi); + dbusmenu_menuitem_child_append (root_menuitem, settings_mi); } gint -- cgit v1.2.3