Skip to content

Commit 649c7ee

Browse files
tcl3awesomekling
authored andcommitted
GameOfLife: Use the GML compiler
1 parent 3930702 commit 649c7ee

File tree

4 files changed

+29
-9
lines changed

4 files changed

+29
-9
lines changed

Userland/Games/GameOfLife/CMakeLists.txt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,15 @@ serenity_component(
44
TARGETS GameOfLife
55
)
66

7-
stringify_gml(GameOfLife.gml GameOfLifeGML.h game_of_life_gml)
7+
compile_gml(GameOfLife.gml GameOfLifeGML.cpp)
88

99
set(SOURCES
1010
main.cpp
1111
Board.cpp
1212
BoardWidget.cpp
13+
GameOfLifeGML.cpp
1314
Pattern.cpp
1415
)
1516

16-
set(GENERATED_SOURCES
17-
GameOfLifeGML.h
18-
)
19-
2017
serenity_app(GameOfLife ICON app-gameoflife)
2118
target_link_libraries(GameOfLife PRIVATE LibCore LibGfx LibGUI LibMain LibDesktop)

Userland/Games/GameOfLife/GameOfLife.gml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@GUI::Widget {
1+
@GameOfLife::MainWidget {
22
layout: @GUI::VerticalBoxLayout {}
33

44
@GUI::ToolbarContainer {
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/*
2+
* Copyright (c) 2023, Tim Ledbetter <timledbetter@gmail.com>
3+
*
4+
* SPDX-License-Identifier: BSD-2-Clause
5+
*/
6+
7+
#pragma once
8+
9+
#include <LibGUI/Widget.h>
10+
11+
namespace GameOfLife {
12+
13+
class MainWidget : public GUI::Widget {
14+
C_OBJECT_ABSTRACT(MainWidget)
15+
public:
16+
static ErrorOr<NonnullRefPtr<MainWidget>> try_create();
17+
virtual ~MainWidget() override = default;
18+
19+
private:
20+
MainWidget() = default;
21+
};
22+
23+
}

Userland/Games/GameOfLife/main.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
*/
77

88
#include "BoardWidget.h"
9+
#include "MainWidget.h"
910
#include <AK/Try.h>
1011
#include <AK/URL.h>
11-
#include <Games/GameOfLife/GameOfLifeGML.h>
1212
#include <LibCore/System.h>
1313
#include <LibDesktop/Launcher.h>
1414
#include <LibGUI/Application.h>
@@ -53,8 +53,8 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
5353
window->set_double_buffering_enabled(false);
5454
window->set_title("Game of Life");
5555

56-
auto main_widget = window->set_main_widget<GUI::Widget>();
57-
TRY(main_widget->load_from_gml(game_of_life_gml));
56+
auto main_widget = TRY(GameOfLife::MainWidget::try_create());
57+
window->set_main_widget(main_widget);
5858
main_widget->set_fill_with_background_color(true);
5959

6060
auto& main_toolbar = *main_widget->find_descendant_of_type_named<GUI::Toolbar>("toolbar");

0 commit comments

Comments
 (0)