Menubar.h 737 B

123456789101112131415161718192021222324252627282930313233343536
  1. /*
  2. * Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
  3. * Copyright (c) 2021, sin-ack <sin-ack@protonmail.com>
  4. *
  5. * SPDX-License-Identifier: BSD-2-Clause
  6. */
  7. #pragma once
  8. #include <AK/Badge.h>
  9. #include <AK/IterationDecision.h>
  10. #include <AK/NonnullRefPtrVector.h>
  11. #include <LibCore/Object.h>
  12. #include <LibGUI/Forward.h>
  13. #include <LibGUI/Menu.h>
  14. namespace GUI {
  15. class Menubar : public Core::Object {
  16. C_OBJECT(Menubar);
  17. public:
  18. virtual ~Menubar() override;
  19. ErrorOr<NonnullRefPtr<Menu>> try_add_menu(Badge<Window>, String name);
  20. Menu& add_menu(Badge<Window>, String name);
  21. void for_each_menu(Function<IterationDecision(Menu&)>);
  22. private:
  23. Menubar();
  24. NonnullRefPtrVector<Menu> m_menus;
  25. };
  26. }