Mercurial > pidgin
diff finch/libgnt/gntmenu.c @ 21212:b65f1bff6412
Allow binding key-shortcuts to menuitems.
For example, to bind ctrl+m to the 'Options -> Send IM...' menu, you would add:
[buddylist::menu]
c-m = send-im
in ~/.gntrc
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Wed, 03 Oct 2007 06:51:26 +0000 |
parents | 44b4e8bd759b |
children | 4c7604b4841c |
line wrap: on
line diff
--- a/finch/libgnt/gntmenu.c Wed Oct 03 05:42:31 2007 +0000 +++ b/finch/libgnt/gntmenu.c Wed Oct 03 06:51:26 2007 +0000 @@ -459,3 +459,33 @@ menu->list = g_list_append(menu->list, item); } +GntMenuItem *gnt_menu_get_item(GntMenu *menu, const char *id) +{ + GntMenuItem *item = NULL; + GList *iter = menu->list; + + if (!id || !*id) + return NULL; + + for (; iter; iter = iter->next) { + GntMenu *sub; + item = iter->data; + sub = gnt_menuitem_get_submenu(item); + if (sub) { + item = gnt_menu_get_item(sub, id); + if (item) + break; + } else { + const char *itid = gnt_menuitem_get_id(item); + if (itid && strcmp(itid, id) == 0) + break; + } + item = NULL; + } + + if (item) + menuitem_activate(menu, item); + + return item; +} +