diff --git a/Userland/Applications/Escalator/CMakeLists.txt b/Userland/Applications/Escalator/CMakeLists.txt index 25114decb4..4b66713c1b 100644 --- a/Userland/Applications/Escalator/CMakeLists.txt +++ b/Userland/Applications/Escalator/CMakeLists.txt @@ -4,16 +4,13 @@ serenity_component( TARGETS Escalator ) -stringify_gml(Escalator.gml EscalatorGML.h escalator_gml) +compile_gml(Escalator.gml EscalatorGML.cpp) set(SOURCES + EscalatorGML.cpp main.cpp EscalatorWindow.cpp ) -set(GENERATED_SOURCES - EscalatorGML.h -) - serenity_app(Escalator ICON app-escalator) target_link_libraries(Escalator PRIVATE LibCore LibDesktop LibGfx LibGUI LibMain) diff --git a/Userland/Applications/Escalator/Escalator.gml b/Userland/Applications/Escalator/Escalator.gml index 08ec1fb3ed..6a18802180 100644 --- a/Userland/Applications/Escalator/Escalator.gml +++ b/Userland/Applications/Escalator/Escalator.gml @@ -1,4 +1,4 @@ -@GUI::Widget { +@Escalator::MainWidget { fill_with_background_color: true layout: @GUI::VerticalBoxLayout { margins: [4] diff --git a/Userland/Applications/Escalator/EscalatorWindow.cpp b/Userland/Applications/Escalator/EscalatorWindow.cpp index 000bfba8a2..1ee9152862 100644 --- a/Userland/Applications/Escalator/EscalatorWindow.cpp +++ b/Userland/Applications/Escalator/EscalatorWindow.cpp @@ -7,8 +7,8 @@ */ #include "EscalatorWindow.h" +#include "MainWidget.h" #include -#include #include #include #include @@ -20,6 +20,7 @@ #include #include +namespace Escalator { EscalatorWindow::EscalatorWindow(StringView executable, Vector arguments, EscalatorWindow::Options const& options) : m_arguments(move(arguments)) , m_executable(executable) @@ -36,8 +37,8 @@ EscalatorWindow::EscalatorWindow(StringView executable, Vector argum set_resizable(false); set_minimizable(false); - auto main_widget = set_main_widget(); - main_widget->load_from_gml(escalator_gml).release_value_but_fixme_should_propagate_errors(); + auto main_widget = Escalator::MainWidget::try_create().release_value_but_fixme_should_propagate_errors(); + set_main_widget(main_widget); RefPtr app_label = *main_widget->find_descendant_of_type_named("description"); @@ -144,3 +145,4 @@ ErrorOr EscalatorWindow::execute_command() return {}; } +} diff --git a/Userland/Applications/Escalator/EscalatorWindow.h b/Userland/Applications/Escalator/EscalatorWindow.h index 394656aa22..108e0c4b1c 100644 --- a/Userland/Applications/Escalator/EscalatorWindow.h +++ b/Userland/Applications/Escalator/EscalatorWindow.h @@ -17,6 +17,7 @@ #include #include +namespace Escalator { class EscalatorWindow final : public GUI::Window { C_OBJECT(EscalatorWindow) public: @@ -49,3 +50,4 @@ private: RefPtr m_cancel_button; RefPtr m_password_input; }; +} diff --git a/Userland/Applications/Escalator/MainWidget.h b/Userland/Applications/Escalator/MainWidget.h new file mode 100644 index 0000000000..757df02532 --- /dev/null +++ b/Userland/Applications/Escalator/MainWidget.h @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2023, the SerenityOS developers + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include + +namespace Escalator { + +class MainWidget : public GUI::Widget { + C_OBJECT_ABSTRACT(MainWidget) + +public: + static ErrorOr> try_create(); + virtual ~MainWidget() override = default; + +private: + MainWidget() = default; +}; + +} diff --git a/Userland/Applications/Escalator/main.cpp b/Userland/Applications/Escalator/main.cpp index 019ba1dea2..10713a2b07 100644 --- a/Userland/Applications/Escalator/main.cpp +++ b/Userland/Applications/Escalator/main.cpp @@ -44,7 +44,7 @@ ErrorOr serenity_main(Main::Arguments arguments) } auto current_user = TRY(Core::Account::self()); - auto window = TRY(EscalatorWindow::try_create(executable_path.value(), command, EscalatorWindow::Options { description, current_user, preserve_env, forward_stdin, forward_stdout })); + auto window = TRY(Escalator::EscalatorWindow::try_create(executable_path.value(), command, Escalator::EscalatorWindow::Options { description, current_user, preserve_env, forward_stdin, forward_stdout })); if (current_user.uid() != 0) { window->show();