diff --git a/Userland/Applications/Run/CMakeLists.txt b/Userland/Applications/Run/CMakeLists.txt index 72d6726ca7..dbaee6f6b0 100644 --- a/Userland/Applications/Run/CMakeLists.txt +++ b/Userland/Applications/Run/CMakeLists.txt @@ -4,15 +4,12 @@ serenity_component( TARGETS Run ) -stringify_gml(Run.gml RunGML.h run_gml) +compile_gml(Run.gml RunGML.cpp) set(SOURCES main.cpp RunWindow.cpp -) - -set(GENERATED_SOURCES - RunGML.h + RunGML.cpp ) serenity_app(Run ICON app-run) diff --git a/Userland/Applications/Run/MainWidget.h b/Userland/Applications/Run/MainWidget.h new file mode 100644 index 0000000000..f82a34953b --- /dev/null +++ b/Userland/Applications/Run/MainWidget.h @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2023, kleines Filmröllchen + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include + +namespace Run { + +class MainWidget : public GUI::Widget { + C_OBJECT(MainWidget) +public: + MainWidget() = default; + static ErrorOr> try_create(); + + virtual ~MainWidget() override = default; +}; + +} diff --git a/Userland/Applications/Run/Run.gml b/Userland/Applications/Run/Run.gml index 5c183e419e..768e2f21e9 100644 --- a/Userland/Applications/Run/Run.gml +++ b/Userland/Applications/Run/Run.gml @@ -1,4 +1,4 @@ -@GUI::Widget { +@Run::MainWidget { fill_with_background_color: true layout: @GUI::VerticalBoxLayout { margins: [4] diff --git a/Userland/Applications/Run/RunWindow.cpp b/Userland/Applications/Run/RunWindow.cpp index 8282d6d972..ede98ed43d 100644 --- a/Userland/Applications/Run/RunWindow.cpp +++ b/Userland/Applications/Run/RunWindow.cpp @@ -6,9 +6,9 @@ */ #include "RunWindow.h" +#include "MainWidget.h" #include #include -#include #include #include #include @@ -41,8 +41,7 @@ RunWindow::RunWindow() set_resizable(false); set_minimizable(false); - auto main_widget = set_main_widget(); - main_widget->load_from_gml(run_gml).release_value_but_fixme_should_propagate_errors(); + auto main_widget = set_main_widget(); m_icon_image_widget = *main_widget->find_descendant_of_type_named("icon"); m_icon_image_widget->set_bitmap(app_icon.bitmap_for_size(32));