WMenu submenus
Added by Paul de Wit about 6 years ago
I created a menu with two main items that each have submenu (Wt 4.0.0-rc2). The submenus contain a few items:
L1_item_1
L2_item_1
L2_item_2
L2_item_3
L1_item_2
L2_item_A
L2_item_B
L2_item_C
The selected L2 item is highlighted using CSS (.itemselected selector)
The problem is that there can be 2 selected items in the above menu, one in each submenu. E.g., when first L2_item_2 is selected and then L2_item_B, then both L2_item_2 and L2_item_B are highlighted. If then L2_item_1 is selected, it results in higlighted items L2_item_1 and L2_item_B.
In this memnu, there should be only 1 selected item.
This is the code outline:
auto L1_menu = Wt::cpp14::make_unique<WMenu>();
L1_menu->setInternalPathEnabled();
L1_menu->setInternalBasePath("/some-id");
for-loop
Wt::WMenuItem *L1_menuitem = L1_menu->addItem( tr(L1-id) );
L1_menuitem->setPathComponent( L1-id );
L1_menuitem->addStyleClass("menu-L1");
auto L2_menu = Wt::cpp14::make_unique<Wt::WMenu>();
L2_menu->setInternalPathEnabled();
L2_menu->setInternalBasePath( /some-id/L1-id );
for-loop
Wt::WMenuItem *L2_menuitem = L2_menu->addItem( ... );
L2_menuitem->setPathComponent( L2-id );
L2_menuitem->addStyleClass( ... );
L1_menuitem->setMenu(std::move(L2_menu));