-
Iterator de Menu
Bonjour,
j'ai un peu de mal avec les strutures de Menu, MenuItem et les Menu_Helpers etc...
J'aurais besoin de recuperer un MenuItem dans une MenuBar (générée par glade ) pour y ajouter un fils et tout ce qui va avec.
Donc je pars de :
/* Gtk::Menu_Helpers::MenuList::iterator iter = bar->items().begin();
for ( ; iter != bar->items().end(); iter++) {
//Test
}
*/
Et dans mon test je sais pas en quoi caster l'iterator et comment récuper un menuItem par son nom...
Any idea ?
-
ok j'ai trouvé, si ca peut aider :
Gtk::Menu *menuItemImport_menu;
Gtk::MenuItem * menuItemLoad;
Gtk::Menu_Helpers::MenuList::iterator iter = bar->items().begin();
for ( ; iter != bar->items().end(); iter++) {
cout << "Menu Name " << iter->get_name() << endl;
if( iter->get_name() == "file")
{
Gtk::Menu *menuFile = iter->get_submenu();
if( iter ->has_submenu())
{
cout << "subMenu " << menuFile->get_title();
Gtk::Menu_Helpers::MenuList::iterator iterFile = menuFile->items().begin();
for ( ; iterFile != menuFile->items().end(); iterFile++) {
cout << "Item Name " << iterFile->get_name() << endl;
if ( iterFile->get_name() == "import")
{
menuItemImport_menu = Gtk::manage(new class Gtk::Menu());
iterFile->set_submenu(*menuItemImport_menu);
menuItemImport_menu->items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("Load 3ds")));
menuItemLoad = (Gtk::MenuItem *)&menuItemImport_menu->items().back();
menuItemLoad->show();
menuItemLoad->signal_activate().connect(sigc::mem_fun(this, &Import3ds::open3ds));
}
}
}
}
}