From cc60029939b6e4128cd6f05b6b7d6657b1a319db Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 22 Jun 2011 16:14:50 -0500 Subject: Commenting out the main function to make it more explanitory --- src/messages-service.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/messages-service.c') diff --git a/src/messages-service.c b/src/messages-service.c index e3352e8..25300ff 100644 --- a/src/messages-service.c +++ b/src/messages-service.c @@ -1437,8 +1437,10 @@ service_shutdown (IndicatorService * service, gpointer user_data) int main (int argc, char ** argv) { + /* Glib init */ g_type_init(); + /* Create the Indicator Service interface */ service = indicator_service_new_version(INDICATOR_MESSAGES_DBUS_NAME, 1); g_signal_connect(service, INDICATOR_SERVICE_SIGNAL_SHUTDOWN, G_CALLBACK(service_shutdown), NULL); @@ -1448,31 +1450,39 @@ main (int argc, char ** argv) bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); textdomain (GETTEXT_PACKAGE); + /* Create the Seen DB */ seen_db_init(); + /* Bring up the service DBus interface */ dbus_interface = message_service_dbus_new(); - listener = indicate_listener_ref_default(); - serverList = NULL; - + /* Build the base menu */ root_menuitem = dbusmenu_menuitem_new(); DbusmenuServer * server = dbusmenu_server_new(INDICATOR_MESSAGES_DBUS_OBJECT); dbusmenu_server_set_root(server, root_menuitem); + /* Start up the libindicate listener */ + listener = indicate_listener_ref_default(); + serverList = NULL; + g_signal_connect(listener, INDICATE_LISTENER_SIGNAL_INDICATOR_ADDED, G_CALLBACK(indicator_added), root_menuitem); g_signal_connect(listener, INDICATE_LISTENER_SIGNAL_INDICATOR_REMOVED, G_CALLBACK(indicator_removed), root_menuitem); g_signal_connect(listener, INDICATE_LISTENER_SIGNAL_SERVER_ADDED, G_CALLBACK(server_added), root_menuitem); g_signal_connect(listener, INDICATE_LISTENER_SIGNAL_SERVER_REMOVED, G_CALLBACK(server_removed), root_menuitem); + /* Find launchers by looking through the config directories + in the idle loop */ g_idle_add(blacklist_init, NULL); g_idle_add(build_launchers, SYSTEM_APPS_DIR); g_idle_add(build_launchers, SYSTEM_APPS_DIR_OLD); gchar * userdir = g_build_filename(g_get_user_config_dir(), USER_APPS_DIR, NULL); g_idle_add(build_launchers, userdir); + /* Let's run a mainloop */ mainloop = g_main_loop_new(NULL, FALSE); g_main_loop_run(mainloop); + /* Clean up */ g_free(userdir); return 0; -- cgit v1.2.3 From 4aad2ce250a7b7033745cbea39f6752d9b2092f7 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sat, 2 Jul 2011 06:16:50 -0500 Subject: Call the status items build function --- src/messages-service.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/messages-service.c') diff --git a/src/messages-service.c b/src/messages-service.c index 25300ff..0db4a7e 100644 --- a/src/messages-service.c +++ b/src/messages-service.c @@ -40,6 +40,7 @@ with this program. If not, see . #include "dirs.h" #include "messages-service-dbus.h" #include "seen-db.h" +#include "status-items.h" static IndicatorService * service = NULL; static IndicateListener * listener = NULL; @@ -1461,6 +1462,8 @@ main (int argc, char ** argv) DbusmenuServer * server = dbusmenu_server_new(INDICATOR_MESSAGES_DBUS_OBJECT); dbusmenu_server_set_root(server, root_menuitem); + status_items_build(); + /* Start up the libindicate listener */ listener = indicate_listener_ref_default(); serverList = NULL; -- cgit v1.2.3 From 8ae2a2a48815b9fe84e779dad8c581b222ee70e7 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sat, 2 Jul 2011 09:11:23 -0500 Subject: Connecting a callback and cleaning up --- src/messages-service.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/messages-service.c') diff --git a/src/messages-service.c b/src/messages-service.c index 0db4a7e..4ccd0f1 100644 --- a/src/messages-service.c +++ b/src/messages-service.c @@ -1433,6 +1433,12 @@ service_shutdown (IndicatorService * service, gpointer user_data) return; } +static void +status_update_callback (void) +{ + return; +} + /* Oh, if you don't know what main() is for we really shouldn't be talking. */ int @@ -1462,7 +1468,7 @@ main (int argc, char ** argv) DbusmenuServer * server = dbusmenu_server_new(INDICATOR_MESSAGES_DBUS_OBJECT); dbusmenu_server_set_root(server, root_menuitem); - status_items_build(); + status_items_build(&status_update_callback); /* Start up the libindicate listener */ listener = indicate_listener_ref_default(); @@ -1486,6 +1492,7 @@ main (int argc, char ** argv) g_main_loop_run(mainloop); /* Clean up */ + status_items_cleanup(); g_free(userdir); return 0; -- cgit v1.2.3 From ca536289f57fdddd161c525159cfdcfc0bfe373e Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 13 Jul 2011 12:02:21 -0500 Subject: Putting status items into the menu --- src/messages-service.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/messages-service.c') diff --git a/src/messages-service.c b/src/messages-service.c index 4ccd0f1..fd22555 100644 --- a/src/messages-service.c +++ b/src/messages-service.c @@ -48,6 +48,7 @@ static GList * serverList = NULL; static GList * launcherList = NULL; static DbusmenuMenuitem * root_menuitem = NULL; +static DbusmenuMenuitem * status_separator = NULL; static GMainLoop * mainloop = NULL; static MessageServiceDbus * dbus_interface = NULL; @@ -1468,7 +1469,15 @@ main (int argc, char ** argv) DbusmenuServer * server = dbusmenu_server_new(INDICATOR_MESSAGES_DBUS_OBJECT); dbusmenu_server_set_root(server, root_menuitem); - status_items_build(&status_update_callback); + /* Add status items */ + GList * statusitems = status_items_build(&status_update_callback); + while (statusitems != NULL) { + dbusmenu_menuitem_child_append(root_menuitem, DBUSMENU_MENUITEM(statusitems->data)); + statusitems = g_list_next(statusitems); + } + status_separator = dbusmenu_menuitem_new(); + dbusmenu_menuitem_property_set(status_separator, DBUSMENU_MENUITEM_PROP_TYPE, DBUSMENU_CLIENT_TYPES_SEPARATOR); + dbusmenu_menuitem_child_append(root_menuitem, status_separator); /* Start up the libindicate listener */ listener = indicate_listener_ref_default(); -- cgit v1.2.3 From 1bcc5cd6dd75328604cc964a4af2529d7adafb1c Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 13 Jul 2011 13:12:46 -0500 Subject: Priming with the status separator --- src/messages-service.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/messages-service.c') diff --git a/src/messages-service.c b/src/messages-service.c index fd22555..3e89845 100644 --- a/src/messages-service.c +++ b/src/messages-service.c @@ -838,6 +838,11 @@ resort_menu (DbusmenuMenuitem * menushell) DbusmenuMenuitem * last_separator = NULL; g_debug("Reordering Menu:"); + + if (DBUSMENU_IS_MENUITEM(status_separator)) { + position = dbusmenu_menuitem_get_position(status_separator, root_menuitem); + g_debug("\tPriming with location of status separator: %d", position); + } for (serverentry = serverList; serverentry != NULL; serverentry = serverentry->next) { serverList_t * si = (serverList_t *)serverentry->data; -- cgit v1.2.3 From 753c2e40e087e49f7d0fe93edb2461d290d972af Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 13 Jul 2011 14:26:30 -0500 Subject: Off by one error, because, well, this is a computer program and that's what happens. --- src/messages-service.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/messages-service.c') diff --git a/src/messages-service.c b/src/messages-service.c index 3e89845..63549e3 100644 --- a/src/messages-service.c +++ b/src/messages-service.c @@ -840,7 +840,7 @@ resort_menu (DbusmenuMenuitem * menushell) g_debug("Reordering Menu:"); if (DBUSMENU_IS_MENUITEM(status_separator)) { - position = dbusmenu_menuitem_get_position(status_separator, root_menuitem); + position = dbusmenu_menuitem_get_position(status_separator, root_menuitem) + 1; g_debug("\tPriming with location of status separator: %d", position); } -- cgit v1.2.3