1 /***************************************************************************
2  *      Mechanized Assault and Exploration Reloaded Projectfile            *
3  *                                                                         *
4  *   This program is free software; you can redistribute it and/or modify  *
5  *   it under the terms of the GNU General Public License as published by  *
6  *   the Free Software Foundation; either version 2 of the License, or     *
7  *   (at your option) any later version.                                   *
8  *                                                                         *
9  *   This program is distributed in the hope that it will be useful,       *
10  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
11  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
12  *   GNU General Public License for more details.                          *
13  *                                                                         *
14  *   You should have received a copy of the GNU General Public License     *
15  *   along with this program; if not, write to the                         *
16  *   Free Software Foundation, Inc.,                                       *
17  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
18  ***************************************************************************/
19 
20 #ifndef ui_graphical_menu_windows_windowgamesettings_windowgamesettingsH
21 #define ui_graphical_menu_windows_windowgamesettings_windowgamesettingsH
22 
23 #include "ui/graphical/window.h"
24 #include "utility/signal/signalconnectionmanager.h"
25 #include "utility/signal/signal.h"
26 
27 class cGameSettings;
28 
29 class cCheckBox;
30 class cLineEdit;
31 class cLabel;
32 
33 class cWindowGameSettings : public cWindow
34 {
35 public:
36 	explicit cWindowGameSettings (bool forHotSeatGame = false);
37 	~cWindowGameSettings();
38 
39 	void applySettings (const cGameSettings& gameSettings);
40 	cGameSettings getGameSettings() const;
41 
42 	cSignal<void ()> done;
43 private:
44 	cSignalConnectionManager signalConnectionManager;
45 
46 	bool forHotSeatGame;
47 
48 	cCheckBox* metalLimitedCheckBox;
49 	cCheckBox* metalNormalCheckBox;
50 	cCheckBox* metalHighCheckBox;
51 	cCheckBox* metalTooMuchCheckBox;
52 
53 	cCheckBox* oilLimitedCheckBox;
54 	cCheckBox* oilNormalCheckBox;
55 	cCheckBox* oilHighCheckBox;
56 	cCheckBox* oilTooMuchCheckBox;
57 
58 	cCheckBox* goldLimitedCheckBox;
59 	cCheckBox* goldNormalCheckBox;
60 	cCheckBox* goldHighCheckBox;
61 	cCheckBox* goldTooMuchCheckBox;
62 
63 	cCheckBox* densitySparseCheckBox;
64 	cCheckBox* densityNormalCheckBox;
65 	cCheckBox* densityDenseCheckBox;
66 	cCheckBox* densityTooMuchCheckBox;
67 
68 	cCheckBox* bridgeheadMobileCheckBox;
69 	cCheckBox* bridgeheadDefiniteCheckBox;
70 
71 	cCheckBox* gameTypeTurnsCheckBox;
72 	cCheckBox* gameTypeSimultaneousCheckBox;
73 
74 	cCheckBox* clansOnCheckBox;
75 	cCheckBox* clansOffCheckBox;
76 
77 	cCheckBox* creditsNoneCheckBox;
78 	cCheckBox* creditsLowCheckBox;
79 	cCheckBox* creditsLimitedCheckBox;
80 	cCheckBox* creditsNormalCheckBox;
81 	cCheckBox* creditsHighCheckBox;
82 	cCheckBox* creditsMoreCheckBox;
83 
84 	cCheckBox* victoryTurns0CheckBox;
85 	cCheckBox* victoryTurns1CheckBox;
86 	cCheckBox* victoryTurns2CheckBox;
87 
88 	cCheckBox* victoryPoints0CheckBox;
89 	cCheckBox* victoryPoints1CheckBox;
90 	cCheckBox* victoryPoints2CheckBox;
91 
92 	cCheckBox* victoryNoLimitCheckBox;
93 
94 	cCheckBox* turnLimitNoLimitCheckBox;
95 	cCheckBox* turnLimit0CheckBox;
96 	cCheckBox* turnLimit1CheckBox;
97 	cCheckBox* turnLimit2CheckBox;
98 	cCheckBox* turnLimit3CheckBox;
99 	cCheckBox* turnLimit4CheckBox;
100 	cCheckBox* turnLimit5CheckBox;
101 	cCheckBox* turnLimitCustomCheckBox;
102 	cLineEdit* turnLimitCustomLineEdit;
103 
104 	cCheckBox* turnEndTurnDeadlineNoLimitCheckBox;
105 	cCheckBox* turnEndTurnDeadline0CheckBox;
106 	cCheckBox* turnEndTurnDeadline1CheckBox;
107 	cCheckBox* turnEndTurnDeadline2CheckBox;
108 	cCheckBox* turnEndTurnDeadline3CheckBox;
109 	cCheckBox* turnEndTurnDeadline4CheckBox;
110 	cCheckBox* turnEndTurnDeadline5CheckBox;
111 	cCheckBox* turnEndTurnDeadlineCustomCheckBox;
112 	cLineEdit* turnEndTurnDeadlineLineEdit;
113 	cLabel* turnEndDeadlineLabel;
114 	cLabel* turnEndDeadlineSecondsLabel;
115 
116 	void okClicked();
117 	void backClicked();
118 
119 	void disableTurnEndDeadlineOptions();
120 	void enableTurnEndDeadlineOptions();
121 };
122 
123 #endif // ui_graphical_menu_windows_windowgamesettings_windowgamesettingsH
124