aboutsummaryrefslogtreecommitdiff
path: root/src/im-menu.c
diff options
context:
space:
mode:
authorLars Uebernickel <lars.uebernickel@canonical.com>2013-08-13 09:43:22 +0200
committerLars Uebernickel <lars.uebernickel@canonical.com>2013-08-13 09:43:22 +0200
commit046ef6f5581ab2634d5ef097e6c449316c2404bf (patch)
treebbcbc8b9943b39d10e055d9ea469bb51a385e2d0 /src/im-menu.c
parent0b24c6a91ff91400568cab9b4d192a0a85db918e (diff)
downloadayatana-indicator-messages-046ef6f5581ab2634d5ef097e6c449316c2404bf.tar.gz
ayatana-indicator-messages-046ef6f5581ab2634d5ef097e6c449316c2404bf.tar.bz2
ayatana-indicator-messages-046ef6f5581ab2634d5ef097e6c449316c2404bf.zip
Add desktop menu
Only shows application launchers right now.
Diffstat (limited to 'src/im-menu.c')
-rw-r--r--src/im-menu.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/im-menu.c b/src/im-menu.c
index 4c660e5..ac23a29 100644
--- a/src/im-menu.c
+++ b/src/im-menu.c
@@ -113,6 +113,7 @@ im_menu_init (ImMenu *menu)
root = g_menu_item_new (NULL, "indicator.messages");
g_menu_item_set_attribute (root, "x-canonical-type", "s", "com.canonical.indicator.root");
+ g_menu_item_set_attribute (root, "action-namespace", "s", "indicator");
g_menu_item_set_submenu (root, G_MENU_MODEL (priv->menu));
g_menu_append_item (priv->toplevel_menu, root);
@@ -160,3 +161,31 @@ im_menu_append_section (ImMenu *menu,
g_menu_append_section (priv->menu, NULL, section);
}
+
+void
+im_menu_insert_section (ImMenu *menu,
+ gint position,
+ const gchar *namespace,
+ GMenuModel *section)
+{
+ ImMenuPrivate *priv;
+ GMenuItem *item;
+
+ g_return_if_fail (IM_IS_MENU (menu));
+ g_return_if_fail (G_IS_MENU_MODEL (section));
+
+ priv = im_menu_get_instance_private (menu);
+
+ /* count from the back if position is < 0 */
+ if (position < 0)
+ position = g_menu_model_get_n_items (G_MENU_MODEL (priv->menu)) + position;
+
+ item = g_menu_item_new_section (NULL, section);
+
+ if (namespace)
+ g_menu_item_set_attribute (item, "action-namespace", "s", namespace);
+
+ g_menu_insert_item (priv->menu, position, item);
+
+ g_object_unref (item);
+}