submenus?

tdev

15-08-2009 22:54:25

i was trying to create a menu from the code, including submenus and options in that.
Is that possible, and if yes, whats wrong with my code below?

mainmenu = MyGUI::Gui::getInstance().createWidget<MyGUI::MenuBar>("MenuBar", 0, 0, 300, 26, MyGUI::Align::HStretch | MyGUI::Align::Top, "Back");
mainmenu->setRealCoord(0,0,100,0.001);

// File menu
MyGUI::MenuItemPtr mi = mainmenu->createWidget<MyGUI::MenuItem>("MenuBarButton", 0, 0, 60, 22, MyGUI::Align::Default);
MyGUI::PopupMenuPtr pop = mi->createWidget<MyGUI::PopupMenu>(MyGUI::WidgetStyle::Popup, "PopupMenu",MyGUI::IntCoord(0,0,88,68),MyGUI::Align::Default, "Popup");
mi->setItemType(MyGUI::MenuItemType::Popup);
mi->setCaption("File");


pop->addItem("entry1", MyGUI::MenuItemType::Normal, "entry1");
pop->addItem("entry2", MyGUI::MenuItemType::Normal, "entry2");
pop->addItem("entry3", MyGUI::MenuItemType::Normal, "entry3");
pop->addItem("-", MyGUI::MenuItemType::Separator);
pop->addItem("exit", MyGUI::MenuItemType::Normal, "exit");


// view menu
mi = mainmenu->createWidget<MyGUI::MenuItem>("MenuBarButton", 0, 0, 60, 22, MyGUI::Align::Default);
pop = mi->createWidget<MyGUI::PopupMenu>(MyGUI::WidgetStyle::Popup, "PopupMenu",MyGUI::IntCoord(0,0,88,68),MyGUI::Align::Default, "Popup");
mi->setItemType(MyGUI::MenuItemType::Popup);
mi->setCaption("View");


MyGUI::MenuItemPtr mi2 = pop->addItem("Camera Mode", MyGUI::MenuItemType::Normal, "cm");
MyGUI::PopupMenuPtr pop2 = mi2->createWidget<MyGUI::PopupMenu>(MyGUI::WidgetStyle::Popup, "PopupMenu",MyGUI::IntCoord(0,0,88,68),MyGUI::Align::Default, "Popup");

pop2->createWidget<MyGUI::Button>("CheckBox",MyGUI::IntCoord(0,0,88,68),MyGUI::Align::Default, "Internal Camera");
pop2->createWidget<MyGUI::Button>("CheckBox",MyGUI::IntCoord(0,0,88,68),MyGUI::Align::Default, "External Camera");


thank you very much!

Altren

17-08-2009 16:25:16

1) You should create submenus through MenuCtr interface, not by direct creating.
2) You can create widgets over popup menus, but better change skin for Menu line.
3) Better use skin with <Property key="NeedMouse" value = "false" /> (same as in PopupMenuLineIcon skin) for better focusing behaviour.