Mercurial > pidgin
comparison 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 |
comparison
equal
deleted
inserted
replaced
21210:5a12b881ac39 | 21212:b65f1bff6412 |
---|---|
457 void gnt_menu_add_item(GntMenu *menu, GntMenuItem *item) | 457 void gnt_menu_add_item(GntMenu *menu, GntMenuItem *item) |
458 { | 458 { |
459 menu->list = g_list_append(menu->list, item); | 459 menu->list = g_list_append(menu->list, item); |
460 } | 460 } |
461 | 461 |
462 GntMenuItem *gnt_menu_get_item(GntMenu *menu, const char *id) | |
463 { | |
464 GntMenuItem *item = NULL; | |
465 GList *iter = menu->list; | |
466 | |
467 if (!id || !*id) | |
468 return NULL; | |
469 | |
470 for (; iter; iter = iter->next) { | |
471 GntMenu *sub; | |
472 item = iter->data; | |
473 sub = gnt_menuitem_get_submenu(item); | |
474 if (sub) { | |
475 item = gnt_menu_get_item(sub, id); | |
476 if (item) | |
477 break; | |
478 } else { | |
479 const char *itid = gnt_menuitem_get_id(item); | |
480 if (itid && strcmp(itid, id) == 0) | |
481 break; | |
482 } | |
483 item = NULL; | |
484 } | |
485 | |
486 if (item) | |
487 menuitem_activate(menu, item); | |
488 | |
489 return item; | |
490 } | |
491 |