18 #ifndef INC_C4StartupOptionsDlg
19 #define INC_C4StartupOptionsDlg
33 bool fConfigSaved{
false};
34 bool fCanGoBack{
true};
67 SmallButton(
const char *szText,
const C4Rect &rtBounds)
68 :
C4GUI::Button(szText, rtBounds) {}
69 static int32_t GetDefaultButtonHeight();
77 bool OnLangComboSelChange(
C4GUI::ComboBox *pForCombo, int32_t idNewSelection);
78 void UpdateLanguage();
81 bool OnFontComboSelChange(
C4GUI::ComboBox *pForCombo, int32_t idNewSelection);
82 void UpdateFontControls();
83 bool SetGameFont(
const char *szFontFace, int32_t iFontSize);
93 bool *pbVal, fInvert; int32_t *piVal, *piRestartChangeCfgVal;
97 BoolConfig(
const C4Rect &
rcBounds,
const char *szName,
bool *pbVal, int32_t *piVal,
bool fInvert=
false, int32_t *piRestartChangeCfgVal=
nullptr);
106 int32_t *piConfigVal;
109 static bool GetControlSize(
int *piWdt,
int *piHgt,
const char *szForText,
bool fMultiline);
117 C4GUI::Label *pOperationCancelLabel; int32_t iResChangeSwitchTime;
119 ResChangeConfirmDlg();
120 ~ResChangeConfirmDlg()
override;
121 void OnSec1Timer()
override;
123 bool OnEnter()
override {
return true; }
124 const char *
GetID()
override {
return "ResChangeConfirmDialog"; }
128 bool OnWindowedModeComboSelChange(
C4GUI::ComboBox *pForCombo, int32_t idNewSelection);
130 bool OnGfxResComboSelChange(
C4GUI::ComboBox *pForCombo, int32_t idNewSelection);
132 bool OnGfxMSComboSelChange(
C4GUI::ComboBox *pForCombo, int32_t idNewSelection);
133 bool TryNewResolution(int32_t iResX, int32_t iResY, int32_t iRefreshRate);
134 StdStrBuf GetGfxResString(int32_t iResX, int32_t iResY);
135 const char * GetWindowedName(int32_t mode = -1);
137 int32_t iGfxTexIndent;
142 BoolConfig *pFESoundCheck;
147 void OnMusicVolumeSliderChange(int32_t iNewVal);
148 void OnSoundVolumeSliderChange(int32_t iNewVal);
159 std::unique_ptr<C4KeyBinding> KeyListeners;
168 bool KeyDown(
const C4KeyCodeEx &key) {
return KeyPress(key,
true); };
169 bool KeyUp(
const C4KeyCodeEx &key) {
return KeyPress(key,
false); };
174 ~KeySelDialog()
override =
default;
191 void UpdateAssignmentString();
202 ControlAssignmentLabel *assignment_label;
203 bool has_extra_spacing;
228 int32_t iMaxControlSets;
229 int32_t iSelectedCtrlSet;
231 class KeySelButton * KeyControlBtns[
C4MaxKey];
233 ControlConfigListBox *control_list;
236 ControlConfigArea(
const C4Rect &rcArea, int32_t iHMargin, int32_t iVMargin,
bool fGamepad,
C4StartupOptionsDlg *pOptionsDlg);
237 ~ControlConfigArea()
override;
239 void UpdateCtrlSet();
248 ControlConfigArea *pControlConfigArea;
258 NetworkPortConfig(
const C4Rect &
rcBounds,
const char *szName, int32_t *pConfigValue, int32_t iDefault);
260 int32_t *pConfigValue;
269 static bool GetControlSize(
int *piWdt,
int *piHgt);
270 } *pPortCfgTCP, *pPortCfgUDP, *pPortCfgRef, *pPortCfgDsc;
275 NetworkServerAddressConfig(
const C4Rect &
rcBounds,
const char *szName, int32_t *piConfigEnableValue,
char *szConfigAddressValue,
int iTabWidth);
276 virtual ~NetworkServerAddressConfig() {};
278 int32_t *piConfigEnableValue;
char *szConfigAddressValue;
285 static bool GetControlSize(
int *piWdt,
int *piHgt,
int *piTabPos,
const char *szForText);
288 class NetworkModDatabaseServerAddressConfig :
public NetworkServerAddressConfig
291 NetworkModDatabaseServerAddressConfig(
const C4Rect &
rcBounds,
const char *szName, int32_t *piConfigEnableValue,
char *szConfigAddressValue,
int iTabWidth);
293 virtual void OnEnabledCheckChange(
C4GUI::Element *pCheckBox)
override;
294 } *pModDatabaseServerCfg;
StdStrBuf FormatString(const char *szFmt,...)
void MouseInput(CMouse &rMouse, int32_t iButton, int32_t iX, int32_t iY, DWORD dwKeyParam) override
bool SetText(const char *szText, bool fUser)
virtual int32_t GetListItemTopSpacing()
const char * GetID() override
void DrawElement(C4TargetFacet &cgo) override
static bool GetControlSize(int *piWdt, int *piHgt, const char *szForText, CStdFont *pForFont, bool fMultiline)
C4GUI::Edit * GetEdit() const
const char * GetText() const
int32_t GetGUIGroup() const
void UserClose(bool fOK) override
bool SetSubscreen(const char *szToScreen) override
~C4StartupOptionsDlg() override
void RecreateDialog(bool fFade)
void OnClosed(bool fOK) override
void OnKeyboardLayoutChanged() override
bool SaveConfig(bool fForce, bool fKeepOpen)
void OnBackBtn(C4GUI::Control *btn)