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)
target_link_libraries(Magnifier LibGUI)
target_link_libraries(Magnifier LibGUI LibMain)

View file

@ -5,37 +5,23 @@
*/
#include "MagnifierWidget.h"
#include <LibCore/System.h>
#include <LibGUI/ActionGroup.h>
#include <LibGUI/Application.h>
#include <LibGUI/Icon.h>
#include <LibGUI/Menu.h>
#include <LibGUI/Menubar.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) {
perror("pledge");
return 1;
}
TRY(Core::System::pledge("stdio cpath rpath recvfd sendfd unix", nullptr));
auto app = GUI::Application::construct(arguments);
auto app = GUI::Application::construct(argc, argv);
if (pledge("stdio cpath rpath recvfd sendfd", nullptr) < 0) {
perror("pledge");
return 1;
}
if (unveil("/res", "r") < 0) {
perror("unveil");
return 1;
}
if (unveil(nullptr, nullptr) < 0) {
perror("unveil");
return 1;
}
TRY(Core::System::pledge("stdio cpath rpath recvfd sendfd", nullptr));
TRY(Core::System::unveil("/res", "r"));
TRY(Core::System::unveil(nullptr, nullptr));
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->set_minimizable(false);
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");
file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) {
auto file_menu = TRY(window->try_add_menu("&File"));
TRY(file_menu->try_add_action(GUI::CommonActions::make_quit_action([&](auto&) {
app->quit();
}));
})));
auto size_action_group = make<GUI::ActionGroup>();
auto two_x_action = GUI::Action::create_checkable(
"&2x", { Key_2 }, [&](auto&) {
magnifier.set_scale_factor(2);
magnifier->set_scale_factor(2);
});
auto four_x_action = GUI::Action::create_checkable(
"&4x", { Key_4 }, [&](auto&) {
magnifier.set_scale_factor(4);
magnifier->set_scale_factor(4);
});
auto eight_x_action = GUI::Action::create_checkable(
"&8x", { Key_8 }, [&](auto&) {
magnifier.set_scale_factor(8);
magnifier->set_scale_factor(8);
});
auto pause_action = GUI::Action::create_checkable(
"&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);
@ -80,17 +66,17 @@ int main(int argc, char** argv)
size_action_group->add_action(eight_x_action);
size_action_group->set_exclusive(true);
auto& view_menu = window->add_menu("&View");
view_menu.add_action(two_x_action);
view_menu.add_action(four_x_action);
view_menu.add_action(eight_x_action);
auto view_menu = TRY(window->try_add_menu("&View"));
TRY(view_menu->try_add_action(two_x_action));
TRY(view_menu->try_add_action(four_x_action));
TRY(view_menu->try_add_action(eight_x_action));
two_x_action->set_checked(true);
view_menu.add_separator();
view_menu.add_action(pause_action);
TRY(view_menu->try_add_separator());
TRY(view_menu->try_add_action(pause_action));
auto& help_menu = window->add_menu("&Help");
help_menu.add_action(GUI::CommonActions::make_about_action("Magnifier", app_icon, window));
auto help_menu = TRY(window->try_add_menu("&Help"));
help_menu->add_action(GUI::CommonActions::make_about_action("Magnifier", app_icon, window));
window->show();