ScummVM API documentation
dialogs.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef DARKSEED_DIALOGS_H
23 #define DARKSEED_DIALOGS_H
24 
25 #include "gui/ThemeEval.h"
26 #include "gui/widget.h"
27 #include "gui/widgets/popup.h"
28 
29 namespace Darkseed {
30 
32  const char *label;
33  int configValue;
34 };
35 
36 #define POPUP_OPTIONS_ITEMS_TERMINATOR {nullptr, 0}
37 
39  const char *guioFlag;
40  const char *label;
41  const char *tooltip;
42  const char *configOption;
43  int defaultState;
44  PopUpOptionsItem items[10];
45 };
46 
47 #define POPUP_OPTIONS_TERMINATOR \
48  { \
49  nullptr, nullptr, nullptr, nullptr, 0, { POPUP_OPTIONS_ITEMS_TERMINATOR } \
50  }
51 
53 public:
54  explicit OptionsWidget(GuiObject *boss, const Common::String &name, const Common::String &domain);
55 
56  // OptionsContainerWidget API
57  void load() override;
58  bool save() override;
59 
60 private:
61  // OptionsContainerWidget API
62  void defineLayout(GUI::ThemeEval &layouts, const Common::String &layoutName, const Common::String &overlayedLayout) const override;
63 
64  Common::String _guiOptions;
67 };
68 
69 static const ADExtraGuiOptionsMap optionsList[] = {
70  {
71  GAMEOPTION_ORIGINAL_SAVELOAD,
72  {
73  _s("Use original save/load screens"),
74  _s("Use the original save/load screens instead of the ScummVM ones"),
75  "original_menus",
76  false,
77  0,
78  0
79  }
80  },
81  {
82  GAMEOPTION_FLOPPY_MUSIC,
83  {
84  _s("Use floppy version music"),
85  _s("Use the music from the floppy version. The floppy version's music files must be copied to the SOUND directory."),
86  "use_floppy_music",
87  false,
88  0,
89  0
90  }
91  },
92  AD_EXTRA_GUI_OPTIONS_TERMINATOR
93 };
94 
95 
96 static const PopUpOptionsMap popUpOptionsList[] = {
97  {
98  GAMEOPTION_SFX_MODE,
99  _s("SFX mode:"),
100  _s("Determines if the game should use CD version SFX only, CD SFX with additional floppy SFX, or floppy SFX only. Floppy SFX are only available if floppy music is used."),
101  "sfx_mode",
102  SFX_MODE_CD_ONLY,
103  {
104  {
105  _s("CD version SFX only"),
106  SFX_MODE_CD_ONLY
107  },
108  {
109  _s("CD + extra floppy SFX"),
110  SFX_MODE_CD_PLUS_FLOPPY
111  },
112  {
113  _s("Floppy version SFX only"),
114  SFX_MODE_FLOPPY_ONLY
115  },
116  POPUP_OPTIONS_ITEMS_TERMINATOR
117  }
118  },
119  POPUP_OPTIONS_TERMINATOR
120 };
121 
122 } // End of namespace Darkseed
123 
124 #endif // DARKSEED_DIALOGS_H
Definition: dialogs.h:31
Definition: str.h:59
Definition: dialogs.h:38
Definition: advancedDetector.h:400
Definition: ThemeEval.h:37
Definition: widget.h:533
Definition: dialogs.h:52
Definition: hashmap.h:85
Definition: adlib_dsf.h:27