diff options
author | Lars Uebernickel <lars.uebernickel@canonical.com> | 2013-08-13 09:43:22 +0200 |
---|---|---|
committer | Lars Uebernickel <lars.uebernickel@canonical.com> | 2013-08-13 09:43:22 +0200 |
commit | 046ef6f5581ab2634d5ef097e6c449316c2404bf (patch) | |
tree | bbcbc8b9943b39d10e055d9ea469bb51a385e2d0 /src/im-menu.c | |
parent | 0b24c6a91ff91400568cab9b4d192a0a85db918e (diff) | |
download | ayatana-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.c | 29 |
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); +} |