1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 10:37:45 +00:00

LibGUI: Make GUI::Application a Core::Object

Having this on the stack makes whole-program teardown iffy. Turning it
into a Core::Object allows anyone who needs it to extends its lifetime.
This commit is contained in:
Andreas Kling 2020-07-04 14:05:19 +02:00
parent 0d577ab781
commit 1dd1595043
51 changed files with 140 additions and 138 deletions

View file

@ -190,7 +190,7 @@ void Cube::timer_event(Core::TimerEvent&)
int main(int argc, char** argv)
{
GUI::Application app(argc, argv);
auto app = GUI::Application::construct(argc, argv);
auto window = GUI::Window::construct();
window->set_double_buffering_enabled(true);
@ -209,5 +209,5 @@ int main(int argc, char** argv)
window->show();
window->set_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/app-cube.png"));
return app.exec();
return app->exec();
}

View file

@ -42,7 +42,7 @@ int main(int argc, char* argv[])
return 1;
}
GUI::Application app(argc, argv);
auto app = GUI::Application::construct(argc, argv);
if (pledge("stdio shared_buffer accept rpath cpath wpath thread", nullptr) < 0) {
perror("pledge");
@ -58,5 +58,5 @@ int main(int argc, char* argv[])
window->show();
eyes.track_cursor_globally();
return app.exec();
return app->exec();
}

View file

@ -222,7 +222,7 @@ void Fire::mouseup_event(GUI::MouseEvent& event)
*/
int main(int argc, char** argv)
{
GUI::Application app(argc, argv);
auto app = GUI::Application::construct(argc, argv);
auto window = GUI::Window::construct();
window->set_double_buffering_enabled(false);
@ -241,5 +241,5 @@ int main(int argc, char** argv)
window->show();
window->set_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/app-fire.png"));
return app.exec();
return app->exec();
}

View file

@ -33,7 +33,7 @@
int main(int argc, char** argv)
{
GUI::Application app(argc, argv);
auto app = GUI::Application::construct(argc, argv);
auto window = GUI::Window::construct();
window->set_rect(100, 100, 240, 160);
@ -53,10 +53,10 @@ int main(int argc, char** argv)
button.set_size_policy(GUI::SizePolicy::Fill, GUI::SizePolicy::Fixed);
button.set_preferred_size(0, 20);
button.on_click = [&](auto) {
app.quit();
app->quit();
};
window->show();
return app.exec();
return app->exec();
}

View file

@ -196,7 +196,7 @@ void Canvas::draw()
int main(int argc, char** argv)
{
GUI::Application app(argc, argv);
auto app = GUI::Application::construct(argc, argv);
auto window = GUI::Window::construct();
window->set_double_buffering_enabled(true);
@ -206,5 +206,5 @@ int main(int argc, char** argv)
window->set_main_widget<Canvas>();
window->show();
return app.exec();
return app->exec();
}

View file

@ -171,7 +171,7 @@ private:
int main(int argc, char** argv)
{
GUI::Application app(argc, argv);
auto app = GUI::Application::construct(argc, argv);
auto window = GUI::Window::construct();
window->set_title("Mouse button demo");
window->resize(160, 155);
@ -181,15 +181,15 @@ int main(int argc, char** argv)
auto menubar = GUI::MenuBar::construct();
auto& app_menu = menubar->add_menu("Mouse Demo");
app_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app.quit(); }));
app_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); }));
auto& help_menu = menubar->add_menu("Help");
help_menu.add_action(GUI::Action::create("About", [&](auto&) {
GUI::AboutDialog::show("Mouse Demo", Gfx::Bitmap::load_from_file("/res/icons/32x32/app-mouse.png"), window);
}));
app.set_menubar(move(menubar));
app->set_menubar(move(menubar));
window->set_resizable(false);
window->show();
return app.exec();
return app->exec();
}

View file

@ -134,7 +134,7 @@ void Screensaver::draw()
int main(int argc, char** argv)
{
GUI::Application app(argc, argv);
auto app = GUI::Application::construct(argc, argv);
auto window = GUI::Window::construct();
window->set_double_buffering_enabled(true);
@ -148,5 +148,5 @@ int main(int argc, char** argv)
window->show();
window->set_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/app-screensaver.png"));
return app.exec();
return app->exec();
}

View file

@ -32,7 +32,7 @@
int main(int argc, char** argv)
{
GUI::Application app(argc, argv);
auto app = GUI::Application::construct(argc, argv);
auto window = GUI::Window::construct();
auto& view = window->set_main_widget<WebContentView>();
window->set_title("WebContentView");
@ -41,5 +41,5 @@ int main(int argc, char** argv)
view.load("file:///res/html/misc/welcome.html");
return app.exec();
return app->exec();
}

View file

@ -46,7 +46,7 @@
int main(int argc, char** argv)
{
GUI::Application app(argc, argv);
auto app = GUI::Application::construct(argc, argv);
auto window = GUI::Window::construct();
window->set_rect(100, 100, 433, 487);
@ -245,5 +245,5 @@ int main(int argc, char** argv)
window->show();
return app.exec();
return app->exec();
}