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

Magnifier: Use LibMain

Use the new serenity_main construct and TRY in Magnifier.
This commit is contained in:
Marcus Nilsson 2021-11-27 13:23:58 +01:00 committed by Brian Gianforcaro
parent cbf93ee687
commit c91eebfbaa
2 changed files with 25 additions and 39 deletions

View file

@ -11,4 +11,4 @@ set(SOURCES
) )
serenity_app(Magnifier ICON app-magnifier) serenity_app(Magnifier ICON app-magnifier)
target_link_libraries(Magnifier LibGUI) target_link_libraries(Magnifier LibGUI LibMain)

View file

@ -5,37 +5,23 @@
*/ */
#include "MagnifierWidget.h" #include "MagnifierWidget.h"
#include <LibCore/System.h>
#include <LibGUI/ActionGroup.h> #include <LibGUI/ActionGroup.h>
#include <LibGUI/Application.h> #include <LibGUI/Application.h>
#include <LibGUI/Icon.h> #include <LibGUI/Icon.h>
#include <LibGUI/Menu.h> #include <LibGUI/Menu.h>
#include <LibGUI/Menubar.h> #include <LibGUI/Menubar.h>
#include <LibGUI/Window.h> #include <LibGUI/Window.h>
#include <unistd.h> #include <LibMain/Main.h>
int main(int argc, char** argv) ErrorOr<int> serenity_main(Main::Arguments arguments)
{ {
if (pledge("stdio cpath rpath recvfd sendfd unix", nullptr) < 0) { TRY(Core::System::pledge("stdio cpath rpath recvfd sendfd unix", nullptr));
perror("pledge"); auto app = GUI::Application::construct(arguments);
return 1;
}
auto app = GUI::Application::construct(argc, argv); TRY(Core::System::pledge("stdio cpath rpath recvfd sendfd", nullptr));
TRY(Core::System::unveil("/res", "r"));
if (pledge("stdio cpath rpath recvfd sendfd", nullptr) < 0) { TRY(Core::System::unveil(nullptr, nullptr));
perror("pledge");
return 1;
}
if (unveil("/res", "r") < 0) {
perror("unveil");
return 1;
}
if (unveil(nullptr, nullptr) < 0) {
perror("unveil");
return 1;
}
auto app_icon = GUI::Icon::default_icon("app-magnifier"); auto app_icon = GUI::Icon::default_icon("app-magnifier");
@ -46,33 +32,33 @@ int main(int argc, char** argv)
window->resize(window_dimensions, window_dimensions); window->resize(window_dimensions, window_dimensions);
window->set_minimizable(false); window->set_minimizable(false);
window->set_icon(app_icon.bitmap_for_size(16)); window->set_icon(app_icon.bitmap_for_size(16));
auto& magnifier = window->set_main_widget<MagnifierWidget>(); auto magnifier = TRY(window->try_set_main_widget<MagnifierWidget>());
auto& file_menu = window->add_menu("&File"); auto file_menu = TRY(window->try_add_menu("&File"));
file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { TRY(file_menu->try_add_action(GUI::CommonActions::make_quit_action([&](auto&) {
app->quit(); app->quit();
})); })));
auto size_action_group = make<GUI::ActionGroup>(); auto size_action_group = make<GUI::ActionGroup>();
auto two_x_action = GUI::Action::create_checkable( auto two_x_action = GUI::Action::create_checkable(
"&2x", { Key_2 }, [&](auto&) { "&2x", { Key_2 }, [&](auto&) {
magnifier.set_scale_factor(2); magnifier->set_scale_factor(2);
}); });
auto four_x_action = GUI::Action::create_checkable( auto four_x_action = GUI::Action::create_checkable(
"&4x", { Key_4 }, [&](auto&) { "&4x", { Key_4 }, [&](auto&) {
magnifier.set_scale_factor(4); magnifier->set_scale_factor(4);
}); });
auto eight_x_action = GUI::Action::create_checkable( auto eight_x_action = GUI::Action::create_checkable(
"&8x", { Key_8 }, [&](auto&) { "&8x", { Key_8 }, [&](auto&) {
magnifier.set_scale_factor(8); magnifier->set_scale_factor(8);
}); });
auto pause_action = GUI::Action::create_checkable( auto pause_action = GUI::Action::create_checkable(
"&Pause Capture", { Key_Space }, [&](auto& action) { "&Pause Capture", { Key_Space }, [&](auto& action) {
magnifier.pause_capture(action.is_checked()); magnifier->pause_capture(action.is_checked());
}); });
size_action_group->add_action(two_x_action); size_action_group->add_action(two_x_action);
@ -80,17 +66,17 @@ int main(int argc, char** argv)
size_action_group->add_action(eight_x_action); size_action_group->add_action(eight_x_action);
size_action_group->set_exclusive(true); size_action_group->set_exclusive(true);
auto& view_menu = window->add_menu("&View"); auto view_menu = TRY(window->try_add_menu("&View"));
view_menu.add_action(two_x_action); TRY(view_menu->try_add_action(two_x_action));
view_menu.add_action(four_x_action); TRY(view_menu->try_add_action(four_x_action));
view_menu.add_action(eight_x_action); TRY(view_menu->try_add_action(eight_x_action));
two_x_action->set_checked(true); two_x_action->set_checked(true);
view_menu.add_separator(); TRY(view_menu->try_add_separator());
view_menu.add_action(pause_action); TRY(view_menu->try_add_action(pause_action));
auto& help_menu = window->add_menu("&Help"); auto help_menu = TRY(window->try_add_menu("&Help"));
help_menu.add_action(GUI::CommonActions::make_about_action("Magnifier", app_icon, window)); help_menu->add_action(GUI::CommonActions::make_about_action("Magnifier", app_icon, window));
window->show(); window->show();