Changeset - r27158:8d6feca48662
[Not reviewed]
master
0 1 0
Peter Nelson - 14 months ago 2023-04-19 00:50:36
peter1138@openttd.org
Change: Draw and size video driver info like base set info.

This allows very long video driver information strings to wrap instead
of making the game options window very wide.
1 file changed with 11 insertions and 2 deletions:
0 comments (0 inline, 0 general)
src/settings_gui.cpp
Show inline comments
 
@@ -298,7 +298,6 @@ struct GameOptionsWindow : Window {
 
			case WID_GO_BASE_SFX_DROPDOWN:     SetDParamStr(0, BaseSounds::GetUsedSet()->name); break;
 
			case WID_GO_BASE_MUSIC_DROPDOWN:   SetDParamStr(0, BaseMusic::GetUsedSet()->name); break;
 
			case WID_GO_BASE_MUSIC_STATUS:     SetDParam(0, BaseMusic::GetUsedSet()->GetNumInvalid()); break;
 
			case WID_GO_VIDEO_DRIVER_INFO:     SetDParamStr(0, VideoDriver::GetInstance()->GetInfoString()); break;
 
			case WID_GO_REFRESH_RATE_DROPDOWN: SetDParam(0, _settings_client.gui.refresh_rate); break;
 
			case WID_GO_RESOLUTION_DROPDOWN: {
 
				auto current_resolution = GetCurrentResolutionIndex();
 
@@ -337,6 +336,11 @@ struct GameOptionsWindow : Window {
 
				DrawSliderWidget(r, MIN_INTERFACE_SCALE, MAX_INTERFACE_SCALE, this->gui_scale, _scale_labels);
 
				break;
 

	
 
			case WID_GO_VIDEO_DRIVER_INFO:
 
				SetDParamStr(0, VideoDriver::GetInstance()->GetInfoString());
 
				DrawStringMultiLine(r, STR_GAME_OPTIONS_VIDEO_DRIVER_INFO);
 
				break;
 

	
 
			case WID_GO_BASE_SFX_VOLUME:
 
				DrawSliderWidget(r, 0, INT8_MAX, _settings_client.music.effect_vol, {});
 
				break;
 
@@ -375,6 +379,11 @@ struct GameOptionsWindow : Window {
 
		}
 
		changed |= wid->UpdateVerticalSize(y);
 

	
 
		wid = this->GetWidget<NWidgetResizeBase>(WID_GO_VIDEO_DRIVER_INFO);
 
		SetDParamStr(0, VideoDriver::GetInstance()->GetInfoString());
 
		y = GetStringHeight(STR_GAME_OPTIONS_VIDEO_DRIVER_INFO, wid->current_x);
 
		changed |= wid->UpdateVerticalSize(y);
 

	
 
		if (changed) this->ReInit(0, 0, true);
 
	}
 

	
 
@@ -732,7 +741,7 @@ static const NWidgetPart _nested_game_op
 
					EndContainer(),
 
#endif
 
					NWidget(NWID_HORIZONTAL),
 
						NWidget(WWT_TEXT, COLOUR_GREY, WID_GO_VIDEO_DRIVER_INFO), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_VIDEO_DRIVER_INFO, STR_NULL),
 
						NWidget(WWT_EMPTY, INVALID_COLOUR, WID_GO_VIDEO_DRIVER_INFO), SetMinimalTextLines(1, 0), SetFill(1, 0),
 
					EndContainer(),
 
				EndContainer(),
 
			EndContainer(),
0 comments (0 inline, 0 general)