| 27 |
#include <gtk--/menuitem.h> |
#include <gtk--/menuitem.h> |
| 28 |
#include <iostream> |
#include <iostream> |
| 29 |
|
|
| 30 |
MMIMenuLinkEditor::MMIMenuLinkEditor(LinkEditorMenu_t const &menus) : |
MMIMenuLinkEditor::MMIMenuLinkEditor(LinkEditorMenu_t const &menus, OneFamilyLink * const mmi) : |
| 31 |
Menu() |
Menu() |
| 32 |
{ |
{ |
| 33 |
std::cerr << "Entree dans MMIMenuLinkEditor()" << std::endl; |
Gtk::Menu * submenu = 0; |
|
Gtk::Menu * submenu = this; |
|
| 34 |
for (LinkEditorMenu_t::const_iterator submenu_iter = menus.begin(); |
for (LinkEditorMenu_t::const_iterator submenu_iter = menus.begin(); |
| 35 |
submenu_iter != menus.end(); submenu_iter++) |
submenu_iter != menus.end(); submenu_iter++) |
| 36 |
{ |
{ |
| 37 |
for (MenuItems_t::const_iterator menu_iter = submenu_iter->begin(); |
if (submenu == 0) |
|
menu_iter != submenu_iter->end(); menu_iter++) |
|
| 38 |
{ |
{ |
| 39 |
Gtk::MenuItem * menu_item = manage(new Gtk::MenuItem(*menu_iter)); |
submenu = this; |
|
submenu->append(*menu_item); |
|
| 40 |
} |
} |
| 41 |
Gtk::MenuItem * menu_item = manage(new Gtk::MenuItem(_("More"))); |
else |
|
if (submenu_iter + 1 != menus.end()) |
|
| 42 |
{ |
{ |
| 43 |
|
Gtk::MenuItem * menu_item = manage(new Gtk::MenuItem(_("More"))); |
| 44 |
|
submenu->append(*menu_item); |
| 45 |
submenu = manage(new Gtk::Menu()); |
submenu = manage(new Gtk::Menu()); |
| 46 |
menu_item->set_submenu(*submenu); |
menu_item->set_submenu(*submenu); |
| 47 |
} |
} |
| 48 |
|
for (MenuItems_t::const_iterator menu_iter = submenu_iter->begin(); |
| 49 |
|
menu_iter != submenu_iter->end(); menu_iter++) |
| 50 |
|
{ |
| 51 |
|
std::string menu_label = menu_iter->first; |
| 52 |
|
std::string menu_id = menu_iter->second; |
| 53 |
|
Gtk::MenuItem * menu_item = manage(new Gtk::MenuItem(menu_label)); |
| 54 |
|
menu_item->activate.connect(SigC::bind(SigC::slot(mmi, &OneFamilyLink::menu_link_editor_activated), menu_id)); |
| 55 |
|
submenu->append(*menu_item); |
| 56 |
|
} |
| 57 |
} |
} |
| 58 |
show_all(); |
show_all(); |
|
std::cerr << "MMIMenuLinkEditor() done" << std::endl; |
|
| 59 |
return; |
return; |
| 60 |
} |
} |