mirror of
https://github.com/SerenityOS/serenity.git
synced 2025-01-26 19:32:06 -05:00
557075465c
This adds a dialog window which allows us to customize the size of the board and the amount of mines that will be placed. The current max amount of mines is 50% of the total number of cells due to the fact that the generator algorithm takes too long to create a board for higher percentages of mines.
32 lines
712 B
C++
32 lines
712 B
C++
/*
|
|
* Copyright (c) 2021, Pedro Pereira <pmh.pereira@gmail.com>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <LibGUI/Button.h>
|
|
#include <LibGUI/Dialog.h>
|
|
#include <LibGUI/SpinBox.h>
|
|
|
|
class Field;
|
|
|
|
class CustomGameDialog : public GUI::Dialog {
|
|
C_OBJECT(CustomGameDialog);
|
|
|
|
public:
|
|
static int show(GUI::Window* parent_window, Field& field);
|
|
|
|
private:
|
|
CustomGameDialog(GUI::Window* parent_window);
|
|
virtual ~CustomGameDialog() override;
|
|
|
|
void set_max_mines();
|
|
|
|
RefPtr<GUI::Button> m_ok_button;
|
|
RefPtr<GUI::Button> m_cancel_button;
|
|
RefPtr<GUI::SpinBox> m_columns_spinbox;
|
|
RefPtr<GUI::SpinBox> m_rows_spinbox;
|
|
RefPtr<GUI::SpinBox> m_mines_spinbox;
|
|
};
|