Options: extract common code to ToggleToolbarSetting helper

This commit is contained in:
Aaron van Geffen 2024-05-08 21:22:28 +02:00
parent fa5cca22a4
commit fbbc125385
1 changed files with 16 additions and 32 deletions

View File

@ -1532,6 +1532,14 @@ static Widget *window_options_page_widgets[] = {
#pragma endregion
#pragma region Controls tab events
void ToggleToolbarSetting(bool& setting)
{
setting ^= true;
ConfigSaveDefault();
Invalidate();
WindowInvalidateByClass(WindowClass::TopToolbar);
}
void ControlsMouseUp(WidgetIndex widgetIndex)
{
switch (widgetIndex)
@ -1556,52 +1564,28 @@ static Widget *window_options_page_widgets[] = {
Invalidate();
break;
case WIDX_TOOLBAR_BUTTONS_CENTRED:
gConfigInterface.ToolbarButtonsCentred ^= 1;
ConfigSaveDefault();
Invalidate();
WindowInvalidateByClass(WindowClass::TopToolbar);
ToggleToolbarSetting(gConfigInterface.ToolbarButtonsCentred);
break;
case WIDX_TOOLBAR_SHOW_FINANCES:
gConfigInterface.ToolbarShowFinances ^= 1;
ConfigSaveDefault();
Invalidate();
WindowInvalidateByClass(WindowClass::TopToolbar);
ToggleToolbarSetting(gConfigInterface.ToolbarShowFinances);
break;
case WIDX_TOOLBAR_SHOW_RESEARCH:
gConfigInterface.ToolbarShowResearch ^= 1;
ConfigSaveDefault();
Invalidate();
WindowInvalidateByClass(WindowClass::TopToolbar);
ToggleToolbarSetting(gConfigInterface.ToolbarShowResearch);
break;
case WIDX_TOOLBAR_SHOW_CHEATS:
gConfigInterface.ToolbarShowCheats ^= 1;
ConfigSaveDefault();
Invalidate();
WindowInvalidateByClass(WindowClass::TopToolbar);
ToggleToolbarSetting(gConfigInterface.ToolbarShowCheats);
break;
case WIDX_TOOLBAR_SHOW_NEWS:
gConfigInterface.ToolbarShowNews ^= 1;
ConfigSaveDefault();
Invalidate();
WindowInvalidateByClass(WindowClass::TopToolbar);
ToggleToolbarSetting(gConfigInterface.ToolbarShowNews);
break;
case WIDX_TOOLBAR_SHOW_MUTE:
gConfigInterface.ToolbarShowMute ^= 1;
ConfigSaveDefault();
Invalidate();
WindowInvalidateByClass(WindowClass::TopToolbar);
ToggleToolbarSetting(gConfigInterface.ToolbarShowMute);
break;
case WIDX_TOOLBAR_SHOW_CHAT:
gConfigInterface.ToolbarShowChat ^= 1;
ConfigSaveDefault();
Invalidate();
WindowInvalidateByClass(WindowClass::TopToolbar);
ToggleToolbarSetting(gConfigInterface.ToolbarShowChat);
break;
case WIDX_TOOLBAR_SHOW_ZOOM:
gConfigInterface.ToolbarShowZoom ^= 1;
ConfigSaveDefault();
Invalidate();
WindowInvalidateByClass(WindowClass::TopToolbar);
ToggleToolbarSetting(gConfigInterface.ToolbarShowZoom);
break;
case WIDX_WINDOW_BUTTONS_ON_THE_LEFT:
gConfigInterface.WindowButtonsOnTheLeft ^= 1;