penguins
1.0.0
new_game_dialog.hh
Go to the documentation of this file.
1
#pragma once
2
3
#include "
gui/game_state.hh
"
4
#include <
wx/button.h
>
5
#include <
wx/choice.h
>
6
#include <
wx/defs.h
>
7
#include <
wx/dialog.h
>
8
#include <
wx/event.h
>
9
#include <
wx/persist.h
>
10
#include <
wx/persist/window.h
>
11
#include <
wx/sizer.h
>
12
#include <
wx/spinbutt.h
>
13
#include <
wx/spinctrl.h
>
14
#include <
wx/string.h
>
15
#include <
wx/textctrl.h
>
16
#include <
wx/vector.h
>
17
#include <
wx/window.h
>
18
19
class
NewGameDialog
:
public
wxDialog
{
20
public
:
21
NewGameDialog
(
wxWindow
* parent,
wxWindowID
id
);
22
virtual
~NewGameDialog
();
23
24
static
const
int
DEFAULT_BOARD_WIDTH
= 16;
25
static
const
int
DEFAULT_BOARD_HEIGHT
= 16;
26
static
const
int
DEFAULT_PENGUINS_PER_PLAYER
= 2;
27
static
const
int
DEFAULT_NUMBER_OF_PLAYERS
= 2;
28
29
int
get_board_width
()
const
;
30
int
get_board_height
()
const
;
31
BoardGenType
get_board_gen_type
()
const
;
32
int
get_penguins_per_player
()
const
;
33
size_t
get_number_of_players
()
const
;
34
wxString
get_player_name
(
size_t
index)
const
;
35
PlayerType
get_player_type
(
size_t
index)
const
;
36
37
protected
:
38
wxFlexGridSizer
*
options_grid
;
39
wxSpinCtrl
*
width_input
;
40
bool
width_was_changed
=
false
;
41
wxSpinCtrl
*
height_input
;
42
wxChoice
*
board_gen_input
;
43
bool
height_was_changed
=
false
;
44
wxSpinCtrl
*
penguins_input
;
45
wxSpinCtrl
*
players_number_input
;
46
wxFlexGridSizer
*
players_grid
;
47
struct
PlayerRowWidgets
{
48
wxChoice
*
type_input
;
49
wxTextCtrl
*
name_input
;
50
wxButton
*
delete_btn
;
51
};
52
wxVector<PlayerRowWidgets>
player_rows
;
53
PlayerRowWidgets
new_player_row
;
54
wxStdDialogButtonSizer
*
buttons_sizer
;
55
56
wxWindow
*
add_option
(
const
wxString
& label,
wxWindow
* input);
57
wxSpinCtrl
*
58
create_number_option
(
const
wxString
& label,
wxWindowID
id
,
int
min,
int
max,
int
initial);
59
wxChoice
*
60
create_choice_option
(
const
wxString
& label,
wxWindowID
id
,
int
n,
const
wxString
choices[]);
61
62
void
update_layout
();
63
64
void
set_player_rows_count
(
size_t
count);
65
void
update_new_player_row
();
66
void
add_new_player_row
(
bool
initial =
false
);
67
void
realize_player_row
(
size_t
index);
68
void
delete_player_row
(
size_t
index);
69
70
void
on_ok
(
wxCommandEvent
& event);
71
void
on_close
(
wxCommandEvent
& event);
72
void
on_player_name_input
(
wxCommandEvent
& event);
73
void
on_player_name_enter_pressed
(
wxCommandEvent
& event);
74
void
on_board_width_input
(
wxSpinEvent
& event);
75
void
on_board_height_input
(
wxSpinEvent
& event);
76
void
on_player_delete_clicked
(
wxCommandEvent
& event);
77
void
on_players_number_input
(
wxSpinEvent
& event);
78
79
public
:
80
class
Persistence
:
public
wxPersistentWindow
<NewGameDialog> {
81
public
:
82
Persistence
(
NewGameDialog
* dialog) :
wxPersistentWindow
<
NewGameDialog
>(dialog) {}
83
virtual
wxString
GetKind
()
const override
{
84
return
"NewGameDialog"
;
85
}
86
virtual
bool
Restore
()
override
;
87
virtual
void
Save
()
const override
;
88
};
89
};
90
91
inline
wxPersistentObject
*
wxCreatePersistentObject
(
NewGameDialog
* dialog) {
92
return
new
NewGameDialog::Persistence
(dialog);
93
}
button.h
choice.h
NewGameDialog::Persistence
Definition:
new_game_dialog.hh:80
NewGameDialog::Persistence::Save
virtual void Save() const override
Definition:
new_game_dialog.cc:348
NewGameDialog::Persistence::GetKind
virtual wxString GetKind() const override
Definition:
new_game_dialog.hh:83
NewGameDialog::Persistence::Persistence
Persistence(NewGameDialog *dialog)
Definition:
new_game_dialog.hh:82
NewGameDialog::Persistence::Restore
virtual bool Restore() override
Definition:
new_game_dialog.cc:321
NewGameDialog
Definition:
new_game_dialog.hh:19
NewGameDialog::options_grid
wxFlexGridSizer * options_grid
Definition:
new_game_dialog.hh:38
NewGameDialog::update_layout
void update_layout()
Definition:
new_game_dialog.cc:128
NewGameDialog::DEFAULT_NUMBER_OF_PLAYERS
static const int DEFAULT_NUMBER_OF_PLAYERS
Definition:
new_game_dialog.hh:27
NewGameDialog::delete_player_row
void delete_player_row(size_t index)
Definition:
new_game_dialog.cc:233
NewGameDialog::width_was_changed
bool width_was_changed
Definition:
new_game_dialog.hh:40
NewGameDialog::create_choice_option
wxChoice * create_choice_option(const wxString &label, wxWindowID id, int n, const wxString choices[])
Definition:
new_game_dialog.cc:120
NewGameDialog::NewGameDialog
NewGameDialog(wxWindow *parent, wxWindowID id)
Definition:
new_game_dialog.cc:24
NewGameDialog::players_number_input
wxSpinCtrl * players_number_input
Definition:
new_game_dialog.hh:45
NewGameDialog::add_option
wxWindow * add_option(const wxString &label, wxWindow *input)
Definition:
new_game_dialog.cc:103
NewGameDialog::width_input
wxSpinCtrl * width_input
Definition:
new_game_dialog.hh:39
NewGameDialog::DEFAULT_BOARD_WIDTH
static const int DEFAULT_BOARD_WIDTH
Definition:
new_game_dialog.hh:24
NewGameDialog::on_player_delete_clicked
void on_player_delete_clicked(wxCommandEvent &event)
Definition:
new_game_dialog.cc:298
NewGameDialog::~NewGameDialog
virtual ~NewGameDialog()
Definition:
new_game_dialog.cc:98
NewGameDialog::get_player_name
wxString get_player_name(size_t index) const
Definition:
new_game_dialog.cc:153
NewGameDialog::realize_player_row
void realize_player_row(size_t index)
Definition:
new_game_dialog.cc:227
NewGameDialog::DEFAULT_PENGUINS_PER_PLAYER
static const int DEFAULT_PENGUINS_PER_PLAYER
Definition:
new_game_dialog.hh:26
NewGameDialog::get_board_width
int get_board_width() const
Definition:
new_game_dialog.cc:133
NewGameDialog::get_penguins_per_player
int get_penguins_per_player() const
Definition:
new_game_dialog.cc:145
NewGameDialog::get_board_gen_type
BoardGenType get_board_gen_type() const
Definition:
new_game_dialog.cc:141
NewGameDialog::get_board_height
int get_board_height() const
Definition:
new_game_dialog.cc:137
NewGameDialog::on_player_name_input
void on_player_name_input(wxCommandEvent &event)
Definition:
new_game_dialog.cc:258
NewGameDialog::get_player_type
PlayerType get_player_type(size_t index) const
Definition:
new_game_dialog.cc:157
NewGameDialog::height_was_changed
bool height_was_changed
Definition:
new_game_dialog.hh:43
NewGameDialog::on_close
void on_close(wxCommandEvent &event)
Definition:
new_game_dialog.cc:254
NewGameDialog::on_board_width_input
void on_board_width_input(wxSpinEvent &event)
Definition:
new_game_dialog.cc:284
NewGameDialog::create_number_option
wxSpinCtrl * create_number_option(const wxString &label, wxWindowID id, int min, int max, int initial)
Definition:
new_game_dialog.cc:110
NewGameDialog::on_board_height_input
void on_board_height_input(wxSpinEvent &event)
Definition:
new_game_dialog.cc:291
NewGameDialog::on_player_name_enter_pressed
void on_player_name_enter_pressed(wxCommandEvent &event)
Definition:
new_game_dialog.cc:267
NewGameDialog::player_rows
wxVector< PlayerRowWidgets > player_rows
Definition:
new_game_dialog.hh:52
NewGameDialog::on_players_number_input
void on_players_number_input(wxSpinEvent &event)
Definition:
new_game_dialog.cc:316
NewGameDialog::players_grid
wxFlexGridSizer * players_grid
Definition:
new_game_dialog.hh:46
NewGameDialog::on_ok
void on_ok(wxCommandEvent &event)
Definition:
new_game_dialog.cc:241
NewGameDialog::penguins_input
wxSpinCtrl * penguins_input
Definition:
new_game_dialog.hh:44
NewGameDialog::set_player_rows_count
void set_player_rows_count(size_t count)
Definition:
new_game_dialog.cc:161
NewGameDialog::new_player_row
PlayerRowWidgets new_player_row
Definition:
new_game_dialog.hh:53
NewGameDialog::update_new_player_row
void update_new_player_row()
Definition:
new_game_dialog.cc:175
NewGameDialog::buttons_sizer
wxStdDialogButtonSizer * buttons_sizer
Definition:
new_game_dialog.hh:54
NewGameDialog::DEFAULT_BOARD_HEIGHT
static const int DEFAULT_BOARD_HEIGHT
Definition:
new_game_dialog.hh:25
NewGameDialog::height_input
wxSpinCtrl * height_input
Definition:
new_game_dialog.hh:41
NewGameDialog::board_gen_input
wxChoice * board_gen_input
Definition:
new_game_dialog.hh:42
NewGameDialog::get_number_of_players
size_t get_number_of_players() const
Definition:
new_game_dialog.cc:149
NewGameDialog::add_new_player_row
void add_new_player_row(bool initial=false)
Definition:
new_game_dialog.cc:186
wxButton
wxChoice
wxCommandEvent
wxDialog
wxFlexGridSizer
wxPersistentObject
wxPersistentWindow
wxSpinCtrl
wxSpinEvent
wxStdDialogButtonSizer
wxString
wxTextCtrl
wxWindow
defs.h
event.h
game_state.hh
BoardGenType
BoardGenType
Definition:
game_state.hh:5
PlayerType
PlayerType
Definition:
game_state.hh:11
dialog.h
sizer.h
string.h
wxCreatePersistentObject
wxPersistentObject * wxCreatePersistentObject(NewGameDialog *dialog)
Definition:
new_game_dialog.hh:91
window.h
persist.h
spinbutt.h
spinctrl.h
NewGameDialog::PlayerRowWidgets
Definition:
new_game_dialog.hh:47
NewGameDialog::PlayerRowWidgets::name_input
wxTextCtrl * name_input
Definition:
new_game_dialog.hh:49
NewGameDialog::PlayerRowWidgets::type_input
wxChoice * type_input
Definition:
new_game_dialog.hh:48
NewGameDialog::PlayerRowWidgets::delete_btn
wxButton * delete_btn
Definition:
new_game_dialog.hh:50
textctrl.h
vector.h
window.h
wxWindowID
int wxWindowID
src
gui
new_game_dialog.hh
Generated by
1.9.1