Menubar.h 697 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/Forward.h>
  8. #include <AK/NonnullRefPtrVector.h>
  9. #include <LibCore/Object.h>
  10. #include <LibGUI/Forward.h>
  11. namespace GUI {
  12. class Menubar : public Core::Object {
  13. C_OBJECT(Menubar);
  14. public:
  15. ~Menubar();
  16. Menu& add_menu(String name);
  17. void notify_added_to_window(Badge<Window>);
  18. void notify_removed_from_window(Badge<Window>);
  19. int menubar_id() const { return m_menubar_id; }
  20. private:
  21. Menubar();
  22. int realize_menubar();
  23. void unrealize_menubar();
  24. int m_menubar_id { -1 };
  25. NonnullRefPtrVector<Menu> m_menus;
  26. };
  27. }