mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-15 20:33:10 +00:00
TwentyFourtyEight: Port to GML compilation
This commit is contained in:
parent
1c75aa98b8
commit
72a5c8f3d8
|
@ -4,20 +4,17 @@ serenity_component(
|
|||
TARGETS 2048
|
||||
)
|
||||
|
||||
stringify_gml(GameSizeDialog.gml GameSizeDialogGML.h game_size_dialog_gml)
|
||||
stringify_gml(GameWindow.gml GameWindowGML.h game_window_gml)
|
||||
compile_gml(GameSizeDialog.gml GameSizeDialogGML.cpp)
|
||||
compile_gml(GameWindowWidget.gml GameWindowWidgetGML.cpp)
|
||||
|
||||
set(SOURCES
|
||||
BoardView.cpp
|
||||
Game.cpp
|
||||
GameSizeDialog.cpp
|
||||
GameSizeDialogGML.cpp
|
||||
GameWindowWidgetGML.cpp
|
||||
main.cpp
|
||||
)
|
||||
|
||||
set(GENERATED_SOURCES
|
||||
GameSizeDialogGML.h
|
||||
GameWindowGML.h
|
||||
)
|
||||
|
||||
serenity_app(2048 ICON app-2048)
|
||||
target_link_libraries(2048 PRIVATE LibConfig LibCore LibGfx LibGUI LibMain LibDesktop LibURL)
|
||||
|
|
|
@ -6,14 +6,15 @@
|
|||
|
||||
#include "GameSizeDialog.h"
|
||||
#include "Game.h"
|
||||
#include "GameSizeDialogWidget.h"
|
||||
#include <AK/IntegralMath.h>
|
||||
#include <LibGUI/BoxLayout.h>
|
||||
#include <LibGUI/Button.h>
|
||||
#include <LibGUI/CheckBox.h>
|
||||
#include <LibGUI/Label.h>
|
||||
#include <LibGUI/SpinBox.h>
|
||||
#include <Userland/Games/TwentyFourtyEight/GameSizeDialogGML.h>
|
||||
|
||||
namespace TwentyFourtyEight {
|
||||
GameSizeDialog::GameSizeDialog(GUI::Window* parent, size_t board_size, size_t target, bool evil_ai)
|
||||
: GUI::Dialog(parent)
|
||||
, m_board_size(board_size)
|
||||
|
@ -25,8 +26,8 @@ GameSizeDialog::GameSizeDialog(GUI::Window* parent, size_t board_size, size_t ta
|
|||
set_icon(parent->icon());
|
||||
set_resizable(false);
|
||||
|
||||
auto main_widget = set_main_widget<GUI::Widget>();
|
||||
main_widget->load_from_gml(game_size_dialog_gml).release_value_but_fixme_should_propagate_errors();
|
||||
auto main_widget = GameSizeDialogWidget::try_create().release_value_but_fixme_should_propagate_errors();
|
||||
set_main_widget(main_widget);
|
||||
|
||||
auto board_size_spinbox = main_widget->find_descendant_of_type_named<GUI::SpinBox>("board_size_spinbox");
|
||||
board_size_spinbox->set_value(m_board_size);
|
||||
|
@ -65,3 +66,4 @@ GameSizeDialog::GameSizeDialog(GUI::Window* parent, size_t board_size, size_t ta
|
|||
done(ExecResult::OK);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@GUI::Frame {
|
||||
@TwentyFourtyEight::GameSizeDialogWidget {
|
||||
fill_with_background_color: true
|
||||
layout: @GUI::VerticalBoxLayout {
|
||||
margins: [4]
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include <AK/Types.h>
|
||||
#include <LibGUI/Dialog.h>
|
||||
|
||||
namespace TwentyFourtyEight {
|
||||
class GameSizeDialog : public GUI::Dialog {
|
||||
C_OBJECT(GameSizeDialog)
|
||||
public:
|
||||
|
@ -25,3 +26,4 @@ private:
|
|||
bool m_evil_ai;
|
||||
bool m_temporary { false };
|
||||
};
|
||||
}
|
||||
|
|
24
Userland/Games/TwentyFourtyEight/GameSizeDialogWidget.h
Normal file
24
Userland/Games/TwentyFourtyEight/GameSizeDialogWidget.h
Normal file
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
* Copyright (c) 2024, Aryan Baburajan <aryanbaburajan2007@gmail.com>.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <LibGUI/Frame.h>
|
||||
|
||||
namespace TwentyFourtyEight {
|
||||
|
||||
class GameSizeDialogWidget : public GUI::Widget {
|
||||
C_OBJECT_ABSTRACT(GameSizeDialogWidget)
|
||||
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<GameSizeDialogWidget>> try_create();
|
||||
virtual ~GameSizeDialogWidget() override = default;
|
||||
|
||||
private:
|
||||
GameSizeDialogWidget() = default;
|
||||
};
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
@GUI::Frame {
|
||||
@TwentyFourtyEight::GameWindowWidget {
|
||||
fill_with_background_color: true
|
||||
layout: @GUI::VerticalBoxLayout {}
|
||||
|
24
Userland/Games/TwentyFourtyEight/GameWindowWidget.h
Normal file
24
Userland/Games/TwentyFourtyEight/GameWindowWidget.h
Normal file
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
* Copyright (c) 2024, Aryan Baburajan <aryanbaburajan2007@gmail.com>.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <LibGUI/Frame.h>
|
||||
|
||||
namespace TwentyFourtyEight {
|
||||
|
||||
class GameWindowWidget : public GUI::Widget {
|
||||
C_OBJECT_ABSTRACT(GameWindowWidget)
|
||||
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<GameWindowWidget>> try_create();
|
||||
virtual ~GameWindowWidget() override = default;
|
||||
|
||||
private:
|
||||
GameWindowWidget() = default;
|
||||
};
|
||||
|
||||
}
|
|
@ -7,7 +7,7 @@
|
|||
#include "BoardView.h"
|
||||
#include "Game.h"
|
||||
#include "GameSizeDialog.h"
|
||||
#include <Games/TwentyFourtyEight/GameWindowGML.h>
|
||||
#include "GameWindowWidget.h"
|
||||
#include <LibConfig/Client.h>
|
||||
#include <LibCore/System.h>
|
||||
#include <LibDesktop/Launcher.h>
|
||||
|
@ -65,8 +65,8 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
window->set_title("2048");
|
||||
window->resize(315, 336);
|
||||
|
||||
auto main_widget = window->set_main_widget<GUI::Widget>();
|
||||
TRY(main_widget->load_from_gml(game_window_gml));
|
||||
auto main_widget = TwentyFourtyEight::GameWindowWidget::try_create().release_value_but_fixme_should_propagate_errors();
|
||||
window->set_main_widget(main_widget);
|
||||
|
||||
Game game { board_size, target_tile, evil_ai };
|
||||
|
||||
|
@ -119,7 +119,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
redo_action->set_enabled(false);
|
||||
|
||||
auto change_settings = [&] {
|
||||
auto size_dialog = GameSizeDialog::construct(window, board_size, target_tile, evil_ai);
|
||||
auto size_dialog = TwentyFourtyEight::GameSizeDialog::construct(window, board_size, target_tile, evil_ai);
|
||||
if (size_dialog->exec() != GUI::Dialog::ExecResult::OK)
|
||||
return;
|
||||
|
||||
|
|
Loading…
Reference in a new issue