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