1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-28 05:35:06 +00:00

LibGUI: Simplify submenu construction

The API for adding a submenu to a menu is now:

auto& submenu = menu.add_submenu("Name");
submenu.add_action(my_action);
This commit is contained in:
Andreas Kling 2020-04-29 11:48:11 +02:00
parent 13dcd9a037
commit f0cde70c18
9 changed files with 57 additions and 65 deletions

View file

@ -71,9 +71,11 @@ void Menu::add_action(NonnullRefPtr<Action> action)
#endif
}
void Menu::add_submenu(NonnullRefPtr<Menu> submenu)
Menu& Menu::add_submenu(const String& name)
{
m_items.append(make<MenuItem>(m_menu_id, move(submenu)));
auto submenu = Menu::construct(name);
m_items.append(make<MenuItem>(m_menu_id, submenu));
return submenu;
}
void Menu::add_separator()

View file

@ -54,7 +54,7 @@ public:
void add_action(NonnullRefPtr<Action>);
void add_separator();
void add_submenu(NonnullRefPtr<Menu>);
Menu& add_submenu(const String& name);
void popup(const Gfx::Point& screen_position);
void dismiss();

View file

@ -37,7 +37,7 @@ MenuItem::MenuItem(unsigned menu_id, Type type)
{
}
MenuItem::MenuItem(unsigned menu_id, NonnullRefPtr<Action>&& action)
MenuItem::MenuItem(unsigned menu_id, NonnullRefPtr<Action> action)
: m_type(Type::Action)
, m_menu_id(menu_id)
, m_action(move(action))
@ -49,7 +49,7 @@ MenuItem::MenuItem(unsigned menu_id, NonnullRefPtr<Action>&& action)
m_checked = m_action->is_checked();
}
MenuItem::MenuItem(unsigned menu_id, NonnullRefPtr<Menu>&& submenu)
MenuItem::MenuItem(unsigned menu_id, NonnullRefPtr<Menu> submenu)
: m_type(Type::Submenu)
, m_menu_id(menu_id)
, m_submenu(move(submenu))

View file

@ -42,8 +42,8 @@ public:
};
MenuItem(unsigned menu_id, Type);
MenuItem(unsigned menu_id, NonnullRefPtr<Action>&&);
MenuItem(unsigned menu_id, NonnullRefPtr<Menu>&&);
MenuItem(unsigned menu_id, NonnullRefPtr<Action>);
MenuItem(unsigned menu_id, NonnullRefPtr<Menu>);
~MenuItem();
Type type() const { return m_type; }