mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 22:27:35 +00:00
LibGUI: Add GUI::Menubar::try_add_menu()
This is a fallible variant of Menubar::add_menu() that returns ErrorOr.
This commit is contained in:
parent
b81ce827b6
commit
bc79be362d
3 changed files with 50 additions and 17 deletions
43
Userland/Libraries/LibGUI/Menubar.cpp
Normal file
43
Userland/Libraries/LibGUI/Menubar.cpp
Normal file
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
|
||||
* Copyright (c) 2021, sin-ack <sin-ack@protonmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <LibGUI/Menubar.h>
|
||||
|
||||
namespace GUI {
|
||||
|
||||
Menubar::Menubar()
|
||||
{
|
||||
}
|
||||
|
||||
Menubar::~Menubar()
|
||||
{
|
||||
}
|
||||
|
||||
ErrorOr<NonnullRefPtr<Menu>> Menubar::try_add_menu(Badge<Window>, String name)
|
||||
{
|
||||
auto menu = TRY(try_add<Menu>(move(name)));
|
||||
TRY(m_menus.try_append(menu));
|
||||
return menu;
|
||||
}
|
||||
|
||||
Menu& Menubar::add_menu(Badge<Window>, String name)
|
||||
{
|
||||
auto& menu = add<Menu>(move(name));
|
||||
m_menus.append(menu);
|
||||
return menu;
|
||||
}
|
||||
|
||||
void Menubar::for_each_menu(Function<IterationDecision(Menu&)> callback)
|
||||
{
|
||||
for (auto& menu : m_menus) {
|
||||
if (callback(menu) == IterationDecision::Break) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue