17 bool bEnabled{
false };
18 MenuRowUpdateEnabled pfnEnabled{};
20 int iDefaultChoice{ 0 };
21 std::vector<std::string> choices;
22 bool bThemeTitle{
false };
23 bool bThemeItems{
false };
30 MenuRowUpdateEnabled pe,
35 const char* c0 =
nullptr,
36 const char* c1 =
nullptr,
37 const char* c2 =
nullptr,
38 const char* c3 =
nullptr,
39 const char* c4 =
nullptr,
40 const char* c5 =
nullptr,
41 const char* c6 =
nullptr,
42 const char* c7 =
nullptr,
43 const char* c8 =
nullptr,
44 const char* c9 =
nullptr,
45 const char* c10 =
nullptr,
46 const char* c11 =
nullptr,
47 const char* c12 =
nullptr,
48 const char* c13 =
nullptr,
49 const char* c14 =
nullptr,
50 const char* c15 =
nullptr,
51 const char* c16 =
nullptr,
52 const char* c17 =
nullptr,
53 const char* c18 =
nullptr,
54 const char* c19 =
nullptr,
55 const char* c20 =
nullptr,
56 const char* c21 =
nullptr,
57 const char* c22 =
nullptr,
58 const char* c23 =
nullptr,
59 const char* c24 =
nullptr,
60 const char* c25 =
nullptr)
106 const std::string& n,
112 std::vector<std::string>& options)
116 , pfnEnabled(
nullptr)
123 FOREACH(std::string, options, str)
126 choices.push_back(*str);
131 const std::string& n,
137 const char* c0 =
nullptr,
138 const char* c1 =
nullptr,
139 const char* c2 =
nullptr,
140 const char* c3 =
nullptr,
141 const char* c4 =
nullptr,
142 const char* c5 =
nullptr,
143 const char* c6 =
nullptr,
144 const char* c7 =
nullptr,
145 const char* c8 =
nullptr,
146 const char* c9 =
nullptr,
147 const char* c10 =
nullptr,
148 const char* c11 =
nullptr,
149 const char* c12 =
nullptr,
150 const char* c13 =
nullptr,
151 const char* c14 =
nullptr,
152 const char* c15 =
nullptr,
153 const char* c16 =
nullptr,
154 const char* c17 =
nullptr,
155 const char* c18 =
nullptr,
156 const char* c19 =
nullptr,
157 const char* c20 =
nullptr,
158 const char* c21 =
nullptr,
159 const char* c22 =
nullptr,
160 const char* c23 =
nullptr,
161 const char* c24 =
nullptr,
162 const char* c25 =
nullptr)
166 , pfnEnabled(
nullptr)
175 choices.push_back(c);
208 const std::string& n,
219 , pfnEnabled(
nullptr)
226 for (
int i = low; i <= high; i++) {
227 choices.push_back(IntToString(i).c_str());
231 void SetOneUnthemedChoice(
const std::string& sChoice)
234 choices[0] =
"|" + sChoice;
237 bool SetDefaultChoiceIfPresent(
const std::string& sChoice)
240 FOREACH_CONST(std::string, choices, s)
243 iDefaultChoice = s - choices.begin();
330 static void MiniMenu(
const MenuDef* pDef,
331 ScreenMessage smSendOnOK,
332 ScreenMessage smSendOnCancel = SM_None,
336 void Init()
override;
338 void HandleScreenMessage(
const ScreenMessage& SM)
override;
341 void AfterChangeValueOrRow(PlayerNumber pn)
override;
342 void ImportOptions(
int iRow,
const PlayerNumber& vpns)
override;
343 void ExportOptions(
int iRow,
const PlayerNumber& vpns)
override;
344 void ExportOptionsOnCancel(
int iRow,
const PlayerNumber& pn)
override;
346 bool FocusedItemEndsScreen(PlayerNumber pn)
const override;
348 void LoadMenu(
const MenuDef* pDef);
350 ScreenMessage m_SMSendOnOK;
351 ScreenMessage m_SMSendOnCancel;
353 std::vector<MenuRowDef> m_vMenuRows;
363 static bool s_bCancelled;
364 static int s_iLastRowCode;
365 static std::vector<int> s_viLastAnswers;