From 4e2e2027c33d05f9e352b18edaa077fea638b74b Mon Sep 17 00:00:00 2001 From: toadkarter Date: Sun, 24 Sep 2023 22:45:31 +0100 Subject: [PATCH] MasterWord: Use GML compiler --- Userland/Games/MasterWord/CMakeLists.txt | 7 ++----- Userland/Games/MasterWord/MainWidget.h | 23 +++++++++++++++++++++++ Userland/Games/MasterWord/MasterWord.gml | 2 +- Userland/Games/MasterWord/WordGame.cpp | 2 -- Userland/Games/MasterWord/main.cpp | 6 +++--- 5 files changed, 29 insertions(+), 11 deletions(-) create mode 100644 Userland/Games/MasterWord/MainWidget.h diff --git a/Userland/Games/MasterWord/CMakeLists.txt b/Userland/Games/MasterWord/CMakeLists.txt index 871948d2c8..3d8b757ad8 100644 --- a/Userland/Games/MasterWord/CMakeLists.txt +++ b/Userland/Games/MasterWord/CMakeLists.txt @@ -4,15 +4,12 @@ serenity_component( TARGETS MasterWord ) -stringify_gml(MasterWord.gml MasterWordGML.h master_word_gml) +compile_gml(MasterWord.gml MasterWordGML.cpp master_word_gml) set(SOURCES main.cpp WordGame.cpp -) - -set(GENERATED_SOURCES - MasterWordGML.h + MasterWordGML.cpp ) serenity_app(MasterWord ICON app-masterword) diff --git a/Userland/Games/MasterWord/MainWidget.h b/Userland/Games/MasterWord/MainWidget.h new file mode 100644 index 0000000000..540568e75b --- /dev/null +++ b/Userland/Games/MasterWord/MainWidget.h @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2023, the SerenityOS developers + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include + +namespace MasterWord { + +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/Games/MasterWord/MasterWord.gml b/Userland/Games/MasterWord/MasterWord.gml index d6d496d5ec..d7af8ec743 100644 --- a/Userland/Games/MasterWord/MasterWord.gml +++ b/Userland/Games/MasterWord/MasterWord.gml @@ -1,4 +1,4 @@ -@GUI::Widget { +@MasterWord::MainWidget { fill_with_background_color: true layout: @GUI::VerticalBoxLayout {} diff --git a/Userland/Games/MasterWord/WordGame.cpp b/Userland/Games/MasterWord/WordGame.cpp index f42eacc642..aba0f46aec 100644 --- a/Userland/Games/MasterWord/WordGame.cpp +++ b/Userland/Games/MasterWord/WordGame.cpp @@ -18,8 +18,6 @@ #include #include -REGISTER_WIDGET(MasterWord, WordGame) - // TODO: Add stats namespace MasterWord { diff --git a/Userland/Games/MasterWord/main.cpp b/Userland/Games/MasterWord/main.cpp index 88f3466841..1cece5c656 100644 --- a/Userland/Games/MasterWord/main.cpp +++ b/Userland/Games/MasterWord/main.cpp @@ -4,9 +4,9 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include "MainWidget.h" #include "WordGame.h" #include -#include #include #include #include @@ -47,8 +47,8 @@ ErrorOr serenity_main(Main::Arguments arguments) window->set_resizable(false); window->set_auto_shrink(true); - auto main_widget = window->set_main_widget(); - TRY(main_widget->load_from_gml(master_word_gml)); + auto main_widget = TRY(MasterWord::MainWidget::try_create()); + window->set_main_widget(main_widget); auto& game = *main_widget->find_descendant_of_type_named("word_game"); auto& statusbar = *main_widget->find_descendant_of_type_named("statusbar"); GUI::Application::the()->on_action_enter = [&statusbar](GUI::Action& action) {