| 335 | */ |
| 336 | template <class TMenuItem = ui::MenuItem> |
| 337 | TMenuItem* createSubmenuItem(std::string text, std::string rightText, std::function<void(ui::Menu* menu)> createMenu, bool disabled = false) { |
| 338 | struct Item : TMenuItem { |
| 339 | std::function<void(ui::Menu* menu)> createMenu; |
| 340 | |
| 341 | ui::Menu* createChildMenu() override { |
| 342 | ui::Menu* menu = new ui::Menu; |
| 343 | createMenu(menu); |
| 344 | return menu; |
| 345 | } |
| 346 | }; |
| 347 | |
| 348 | Item* item = createMenuItem<Item>(text, rightText + (rightText.empty() ? "" : " ") + RIGHT_ARROW); |
| 349 | item->createMenu = createMenu; |
| 350 | item->disabled = disabled; |
| 351 | return item; |
| 352 | } |
| 353 | |
| 354 | |
| 355 | /** Creates a MenuItem that when hovered, opens a submenu with several MenuItems indexed by an integer. |
no test coverage detected