From a7e92c991d3970710eb94ecae1a3c7bd66ea1d3c Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 14 Aug 2013 23:06:54 -0500 Subject: Create the status section of the desktop menu --- src/im-desktop-menu.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) (limited to 'src/im-desktop-menu.c') diff --git a/src/im-desktop-menu.c b/src/im-desktop-menu.c index 6cc51cd..ad6318e 100644 --- a/src/im-desktop-menu.c +++ b/src/im-desktop-menu.c @@ -18,6 +18,7 @@ */ #include "im-desktop-menu.h" +#include typedef ImMenuClass ImDesktopMenuClass; @@ -174,13 +175,54 @@ im_desktop_menu_remove_all (ImApplicationList *applist, } } +static GMenu * +create_status_section (void) +{ + GMenu *menu; + GMenuItem *item; + struct status_item { + gchar *label; + gchar *action; + gchar *icon_name; + } status_items[] = { + { _("Available"), "indicator.status::available", "user-available" }, + { _("Away"), "indicator.status::away", "user-away" }, + { _("Busy"), "indicator.status::busy", "user-busy" }, + { _("Invisible"), "indicator.status::invisible", "user-invisible" }, + { _("Offline"), "indicator.status::offline", "user-offline" } + }; + int i; + + menu = g_menu_new (); + + item = g_menu_item_new (NULL, NULL); + g_menu_item_set_attribute (item, "x-canonical-type", "s", "IdoMenuItem"); + + for (i = 0; i < G_N_ELEMENTS (status_items); i++) { + g_menu_item_set_label (item, status_items[i].label); + g_menu_item_set_detailed_action (item, status_items[i].action); + g_menu_item_set_attribute (item, "x-canonical-icon", "s", status_items[i].icon_name); + g_menu_append_item (menu, item); + } + + g_object_unref (item); + return menu; +} + static void im_desktop_menu_constructed (GObject *object) { ImDesktopMenu *menu = IM_DESKTOP_MENU (object); ImApplicationList *applist; - /* TODO: chat section */ + { + GMenu *status_section; + + status_section = create_status_section(); + im_menu_append_section (IM_MENU (menu), G_MENU_MODEL (status_section)); + + g_object_unref (status_section); + } { GMenu *clear_section; -- cgit v1.2.3