summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2020-04-21 16:01:00 +0200
committerAndreas Kling <kling@serenityos.org>2020-04-21 16:19:18 +0200
commit52a250cb614805134ef7e253a1866d69bcb99b9f (patch)
treeb04b88e62af46c7f67182db79382c4637a7f99be
parenta19690170f879ee16df5dd910064b00b92f793ca (diff)
downloadserenity-52a250cb614805134ef7e253a1866d69bcb99b9f.zip
LibGUI: Make MenuBar a Core::Object
This makes it show up in Inspector with all the menus inside it. :^)
-rw-r--r--Applications/Browser/main.cpp2
-rw-r--r--Applications/Calculator/main.cpp2
-rw-r--r--Applications/Calendar/main.cpp2
-rw-r--r--Applications/ChanViewer/main.cpp2
-rw-r--r--Applications/DisplayProperties/main.cpp2
-rw-r--r--Applications/FileManager/main.cpp2
-rw-r--r--Applications/FontEditor/main.cpp2
-rw-r--r--Applications/Help/main.cpp2
-rw-r--r--Applications/HexEditor/HexEditorWidget.cpp2
-rw-r--r--Applications/IRCClient/IRCAppWindow.cpp2
-rw-r--r--Applications/PaintBrush/main.cpp2
-rw-r--r--Applications/Piano/main.cpp2
-rw-r--r--Applications/QuickShow/main.cpp2
-rw-r--r--Applications/SoundPlayer/main.cpp2
-rw-r--r--Applications/SystemMonitor/main.cpp2
-rw-r--r--Applications/Terminal/main.cpp2
-rw-r--r--Applications/TextEditor/TextEditorWidget.cpp2
-rw-r--r--DevTools/HackStudio/main.cpp2
-rw-r--r--DevTools/ProfileViewer/main.cpp2
-rw-r--r--DevTools/VisualBuilder/main.cpp2
-rw-r--r--Games/Minesweeper/main.cpp2
-rw-r--r--Games/Snake/main.cpp2
-rw-r--r--Games/Solitaire/main.cpp2
-rw-r--r--Libraries/LibGUI/Application.cpp2
-rw-r--r--Libraries/LibGUI/Application.h4
-rw-r--r--Libraries/LibGUI/MenuBar.cpp11
-rw-r--r--Libraries/LibGUI/MenuBar.h9
-rw-r--r--Userland/html.cpp2
28 files changed, 36 insertions, 38 deletions
diff --git a/Applications/Browser/main.cpp b/Applications/Browser/main.cpp
index b0afac6929..06a88877ea 100644
--- a/Applications/Browser/main.cpp
+++ b/Applications/Browser/main.cpp
@@ -228,7 +228,7 @@ int main(int argc, char** argv)
statusbar.set_text(String::format("Loading (%d pending resources...)", Web::ResourceLoader::the().pending_loads()));
};
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("Browser");
app_menu.add_action(GUI::Action::create("Reload", { Mod_None, Key_F5 }, Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"), [&](auto&) {
diff --git a/Applications/Calculator/main.cpp b/Applications/Calculator/main.cpp
index e8a06f2677..7ff679d1fb 100644
--- a/Applications/Calculator/main.cpp
+++ b/Applications/Calculator/main.cpp
@@ -65,7 +65,7 @@ int main(int argc, char** argv)
window->show();
window->set_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/app-calculator.png"));
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("Calculator");
app_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) {
diff --git a/Applications/Calendar/main.cpp b/Applications/Calendar/main.cpp
index 132bc00511..3a0b64ff08 100644
--- a/Applications/Calendar/main.cpp
+++ b/Applications/Calendar/main.cpp
@@ -65,7 +65,7 @@ int main(int argc, char** argv)
window->show();
window->set_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/app-calendar.png"));
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("Calendar");
app_menu.add_action(GUI::Action::create("Add Event", { Mod_Ctrl | Mod_Shift, Key_E },
diff --git a/Applications/ChanViewer/main.cpp b/Applications/ChanViewer/main.cpp
index c950eefcb9..438c0ac1d8 100644
--- a/Applications/ChanViewer/main.cpp
+++ b/Applications/ChanViewer/main.cpp
@@ -92,7 +92,7 @@ int main(int argc, char** argv)
window->show();
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("ChanViewer");
app_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) {
diff --git a/Applications/DisplayProperties/main.cpp b/Applications/DisplayProperties/main.cpp
index 2e064ef54b..3a90bfffdb 100644
--- a/Applications/DisplayProperties/main.cpp
+++ b/Applications/DisplayProperties/main.cpp
@@ -60,7 +60,7 @@ int main(int argc, char** argv)
window->set_main_widget(instance.root_widget());
window->set_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/app-display-properties.png"));
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("Display Properties");
app_menu.add_action(GUI::CommonActions::make_quit_action([&](const GUI::Action&) {
diff --git a/Applications/FileManager/main.cpp b/Applications/FileManager/main.cpp
index fca3215f97..c37b8d3deb 100644
--- a/Applications/FileManager/main.cpp
+++ b/Applications/FileManager/main.cpp
@@ -534,7 +534,7 @@ int run_in_windowed_mode(RefPtr<Core::ConfigFile> config, String initial_locatio
},
window);
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("File Manager");
app_menu.add_action(mkdir_action);
diff --git a/Applications/FontEditor/main.cpp b/Applications/FontEditor/main.cpp
index da5f4a3850..9185733d33 100644
--- a/Applications/FontEditor/main.cpp
+++ b/Applications/FontEditor/main.cpp
@@ -74,7 +74,7 @@ int main(int argc, char** argv)
window->show();
window->set_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/app-font-editor.png"));
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("Font Editor");
app_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) {
diff --git a/Applications/Help/main.cpp b/Applications/Help/main.cpp
index 1a828c0bf4..daf6819f65 100644
--- a/Applications/Help/main.cpp
+++ b/Applications/Help/main.cpp
@@ -177,7 +177,7 @@ int main(int argc, char* argv[])
toolbar.add_action(*go_back_action);
toolbar.add_action(*go_forward_action);
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("Help");
app_menu.add_action(GUI::Action::create("About", [&](const GUI::Action&) {
diff --git a/Applications/HexEditor/HexEditorWidget.cpp b/Applications/HexEditor/HexEditorWidget.cpp
index 0102820adc..43d80dae0a 100644
--- a/Applications/HexEditor/HexEditorWidget.cpp
+++ b/Applications/HexEditor/HexEditorWidget.cpp
@@ -132,7 +132,7 @@ HexEditorWidget::HexEditorWidget()
dbg() << "Wrote document to " << save_path.value();
});
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("Hex Editor");
app_menu.add_action(*m_new_action);
app_menu.add_action(*m_open_action);
diff --git a/Applications/IRCClient/IRCAppWindow.cpp b/Applications/IRCClient/IRCAppWindow.cpp
index b33b28de83..05fa68dd6d 100644
--- a/Applications/IRCClient/IRCAppWindow.cpp
+++ b/Applications/IRCClient/IRCAppWindow.cpp
@@ -259,7 +259,7 @@ void IRCAppWindow::setup_actions()
void IRCAppWindow::setup_menus()
{
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("IRC Client");
app_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) {
dbgprintf("Terminal: Quit menu activated!\n");
diff --git a/Applications/PaintBrush/main.cpp b/Applications/PaintBrush/main.cpp
index 52b284413d..c4d6cffb85 100644
--- a/Applications/PaintBrush/main.cpp
+++ b/Applications/PaintBrush/main.cpp
@@ -74,7 +74,7 @@ int main(int argc, char** argv)
window->show();
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("PaintBrush");
app_menu.add_action(GUI::CommonActions::make_open_action([&](auto&) {
diff --git a/Applications/Piano/main.cpp b/Applications/Piano/main.cpp
index dc84893bae..3fef83134a 100644
--- a/Applications/Piano/main.cpp
+++ b/Applications/Piano/main.cpp
@@ -92,7 +92,7 @@ int main(int argc, char** argv)
});
audio_thread.start();
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("Piano");
app_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) {
diff --git a/Applications/QuickShow/main.cpp b/Applications/QuickShow/main.cpp
index 3568899260..a60421e319 100644
--- a/Applications/QuickShow/main.cpp
+++ b/Applications/QuickShow/main.cpp
@@ -234,7 +234,7 @@ int main(int argc, char** argv)
main_toolbar.add_action(zoom_in_action);
main_toolbar.add_action(zoom_out_action);
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("QuickShow");
app_menu.add_action(open_action);
diff --git a/Applications/SoundPlayer/main.cpp b/Applications/SoundPlayer/main.cpp
index 75d558693c..c2ad025f34 100644
--- a/Applications/SoundPlayer/main.cpp
+++ b/Applications/SoundPlayer/main.cpp
@@ -64,7 +64,7 @@ int main(int argc, char** argv)
window->set_rect(300, 300, 350, 140);
window->set_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/app-sound-player.png"));
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("SoundPlayer");
auto& player = window->set_main_widget<SoundPlayerWidget>(window, audio_client);
diff --git a/Applications/SystemMonitor/main.cpp b/Applications/SystemMonitor/main.cpp
index 6b94e44d78..eefd7a4980 100644
--- a/Applications/SystemMonitor/main.cpp
+++ b/Applications/SystemMonitor/main.cpp
@@ -174,7 +174,7 @@ int main(int argc, char** argv)
toolbar.add_action(stop_action);
toolbar.add_action(continue_action);
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("System Monitor");
app_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) {
GUI::Application::the().quit(0);
diff --git a/Applications/Terminal/main.cpp b/Applications/Terminal/main.cpp
index a5d5bf1600..a89a5c3a79 100644
--- a/Applications/Terminal/main.cpp
+++ b/Applications/Terminal/main.cpp
@@ -243,7 +243,7 @@ int main(int argc, char** argv)
terminal.set_opacity(new_opacity);
window->set_has_alpha_channel(new_opacity < 255);
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("Terminal");
app_menu.add_action(GUI::Action::create("Open new terminal", { Mod_Ctrl | Mod_Shift, Key_N }, Gfx::Bitmap::load_from_file("/res/icons/16x16/app-terminal.png"), [&](auto&) {
diff --git a/Applications/TextEditor/TextEditorWidget.cpp b/Applications/TextEditor/TextEditorWidget.cpp
index f7b90a7b48..bf1ce9d864 100644
--- a/Applications/TextEditor/TextEditorWidget.cpp
+++ b/Applications/TextEditor/TextEditorWidget.cpp
@@ -341,7 +341,7 @@ TextEditorWidget::TextEditorWidget()
m_line_wrapping_setting_action->set_checkable(true);
m_line_wrapping_setting_action->set_checked(m_editor->is_line_wrapping_enabled());
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("Text Editor");
app_menu.add_action(*m_new_action);
app_menu.add_action(*m_open_action);
diff --git a/DevTools/HackStudio/main.cpp b/DevTools/HackStudio/main.cpp
index d69f6b9da7..0edabf04cf 100644
--- a/DevTools/HackStudio/main.cpp
+++ b/DevTools/HackStudio/main.cpp
@@ -491,7 +491,7 @@ int main(int argc, char** argv)
locator.open();
});
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("HackStudio");
app_menu.add_action(open_action);
app_menu.add_action(save_action);
diff --git a/DevTools/ProfileViewer/main.cpp b/DevTools/ProfileViewer/main.cpp
index 2d966085db..325f3dfad9 100644
--- a/DevTools/ProfileViewer/main.cpp
+++ b/DevTools/ProfileViewer/main.cpp
@@ -80,7 +80,7 @@ int main(int argc, char** argv)
disassembly_view.set_model(profile->disassembly_model());
};
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("ProfileViewer");
app_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app.quit(); }));
diff --git a/DevTools/VisualBuilder/main.cpp b/DevTools/VisualBuilder/main.cpp
index c697602e80..c008dda49b 100644
--- a/DevTools/VisualBuilder/main.cpp
+++ b/DevTools/VisualBuilder/main.cpp
@@ -56,7 +56,7 @@ int main(int argc, char** argv)
propbox->table_view().set_model(widget ? &widget->property_model() : nullptr);
};
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("Visual Builder");
app_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) {
GUI::Application::the().quit(0);
diff --git a/Games/Minesweeper/main.cpp b/Games/Minesweeper/main.cpp
index 04aec36a39..72fe4bbab5 100644
--- a/Games/Minesweeper/main.cpp
+++ b/Games/Minesweeper/main.cpp
@@ -80,7 +80,7 @@ int main(int argc, char** argv)
window->resize(size);
});
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("Minesweeper");
diff --git a/Games/Snake/main.cpp b/Games/Snake/main.cpp
index 4e94e0a23d..8db863c990 100644
--- a/Games/Snake/main.cpp
+++ b/Games/Snake/main.cpp
@@ -57,7 +57,7 @@ int main(int argc, char** argv)
auto& game = window->set_main_widget<SnakeGame>();
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("Snake");
diff --git a/Games/Solitaire/main.cpp b/Games/Solitaire/main.cpp
index 479beeac03..25c98272a5 100644
--- a/Games/Solitaire/main.cpp
+++ b/Games/Solitaire/main.cpp
@@ -51,7 +51,7 @@ int main(int argc, char** argv)
window->set_title(String::format("Score: %u - Solitaire", score));
});
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("Solitaire");
app_menu.add_action(GUI::Action::create("Restart game", [&](auto&) { widget->setup(); }));
diff --git a/Libraries/LibGUI/Application.cpp b/Libraries/LibGUI/Application.cpp
index b560677082..322869b91f 100644
--- a/Libraries/LibGUI/Application.cpp
+++ b/Libraries/LibGUI/Application.cpp
@@ -79,7 +79,7 @@ void Application::quit(int exit_code)
m_event_loop->quit(exit_code);
}
-void Application::set_menubar(OwnPtr<MenuBar>&& menubar)
+void Application::set_menubar(RefPtr<MenuBar> menubar)
{
if (m_menubar)
m_menubar->notify_removed_from_application({});
diff --git a/Libraries/LibGUI/Application.h b/Libraries/LibGUI/Application.h
index 400ed6fb5e..422bbc06e4 100644
--- a/Libraries/LibGUI/Application.h
+++ b/Libraries/LibGUI/Application.h
@@ -45,7 +45,7 @@ public:
int exec();
void quit(int = 0);
- void set_menubar(OwnPtr<MenuBar>&&);
+ void set_menubar(RefPtr<MenuBar>);
Action* action_for_key_event(const KeyEvent&);
void register_global_shortcut_action(Badge<Action>, Action&);
@@ -70,7 +70,7 @@ public:
private:
OwnPtr<Core::EventLoop> m_event_loop;
- OwnPtr<MenuBar> m_menubar;
+ RefPtr<MenuBar> m_menubar;
RefPtr<Gfx::PaletteImpl> m_palette;
RefPtr<Gfx::PaletteImpl> m_system_palette;
HashMap<Shortcut, Action*> m_global_shortcut_actions;
diff --git a/Libraries/LibGUI/MenuBar.cpp b/Libraries/LibGUI/MenuBar.cpp
index 316e4d2d42..ea8c9649b5 100644
--- a/Libraries/LibGUI/MenuBar.cpp
+++ b/Libraries/LibGUI/MenuBar.cpp
@@ -43,14 +43,9 @@ MenuBar::~MenuBar()
Menu& MenuBar::add_menu(String name)
{
- auto menu = Menu::construct(move(name));
- append_menu(menu);
- return *menu;
-}
-
-void MenuBar::append_menu(NonnullRefPtr<Menu> menu)
-{
- m_menus.append(move(menu));
+ auto& menu = add<Menu>(move(name));
+ m_menus.append(menu);
+ return menu;
}
int MenuBar::realize_menubar()
diff --git a/Libraries/LibGUI/MenuBar.h b/Libraries/LibGUI/MenuBar.h
index 695911a18e..20c1b5678b 100644
--- a/Libraries/LibGUI/MenuBar.h
+++ b/Libraries/LibGUI/MenuBar.h
@@ -28,22 +28,25 @@
#include <AK/Forward.h>
#include <AK/NonnullRefPtrVector.h>
+#include <LibCore/Object.h>
#include <LibGUI/Forward.h>
namespace GUI {
-class MenuBar {
+class MenuBar : public Core::Object {
+ C_OBJECT(MenuBar);
+
public:
- MenuBar();
~MenuBar();
Menu& add_menu(String name);
- void append_menu(NonnullRefPtr<Menu>);
void notify_added_to_application(Badge<Application>);
void notify_removed_from_application(Badge<Application>);
private:
+ MenuBar();
+
int realize_menubar();
void unrealize_menubar();
diff --git a/Userland/html.cpp b/Userland/html.cpp
index dc1ccd175b..9fe2b1a363 100644
--- a/Userland/html.cpp
+++ b/Userland/html.cpp
@@ -72,7 +72,7 @@ int main(int argc, char** argv)
window->set_title("HTML");
window->show();
- auto menubar = make<GUI::MenuBar>();
+ auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("HTML");
app_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) {