MCPcopy Create free account
hub / github.com/OpenTTD/OpenTTD / DrawWidget

Method DrawWidget

src/settings_gui.cpp:678–755  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

676 }
677
678 void DrawWidget(const Rect &r, WidgetID widget) const override
679 {
680 switch (widget) {
681 case WID_GO_BASE_GRF_DESCRIPTION:
682 DrawStringMultiLine(r, GetString(STR_JUST_RAW_STRING, BaseGraphics::GetUsedSet()->GetDescription(GetCurrentLanguageIsoCode())), GAME_OPTIONS_SELECTED);
683 break;
684
685 case WID_GO_BASE_SFX_DESCRIPTION:
686 DrawStringMultiLine(r, GetString(STR_JUST_RAW_STRING, BaseSounds::GetUsedSet()->GetDescription(GetCurrentLanguageIsoCode())), GAME_OPTIONS_SELECTED);
687 break;
688
689 case WID_GO_BASE_MUSIC_DESCRIPTION:
690 DrawStringMultiLine(r, GetString(STR_JUST_RAW_STRING, BaseMusic::GetUsedSet()->GetDescription(GetCurrentLanguageIsoCode())), GAME_OPTIONS_SELECTED);
691 break;
692
693 case WID_GO_GUI_SCALE:
694 DrawSliderWidget(r, GAME_OPTIONS_BACKGROUND, GAME_OPTIONS_BUTTON, TC_BLACK, MIN_INTERFACE_SCALE, MAX_INTERFACE_SCALE, SCALE_NMARKS, this->gui_scale, ScaleMarkFunc);
695 break;
696
697 case WID_GO_VIDEO_DRIVER_INFO:
698 DrawStringMultiLine(r, GetString(STR_GAME_OPTIONS_VIDEO_DRIVER_INFO, std::string{VideoDriver::GetInstance()->GetInfoString()}), GAME_OPTIONS_SELECTED);
699 break;
700
701 case WID_GO_BASE_SFX_VOLUME:
702 DrawSliderWidget(r, GAME_OPTIONS_BACKGROUND, GAME_OPTIONS_BUTTON, TC_BLACK, 0, INT8_MAX, VOLUME_NMARKS, _settings_client.music.effect_vol, VolumeMarkFunc);
703 break;
704
705 case WID_GO_BASE_MUSIC_VOLUME:
706 DrawSliderWidget(r, GAME_OPTIONS_BACKGROUND, GAME_OPTIONS_BUTTON, TC_BLACK, 0, INT8_MAX, VOLUME_NMARKS, _settings_client.music.music_vol, VolumeMarkFunc);
707 break;
708
709 case WID_GO_OPTIONSPANEL: {
710 Rect tr = r.Shrink(WidgetDimensions::scaled.frametext, WidgetDimensions::scaled.framerect);
711 tr.top += this->warn_lines * BaseSettingEntry::line_height;
712 uint last_row = this->vscroll->GetPosition() + this->vscroll->GetCapacity() - this->warn_lines;
713 int next_row = GetSettingsTree().Draw(settings_ptr, tr.left, tr.right, tr.top,
714 this->vscroll->GetPosition(), last_row, this->last_clicked);
715 if (next_row == 0) DrawString(tr, STR_CONFIG_SETTINGS_NONE);
716 break;
717 }
718
719 case WID_GO_SETTING_PROPERTIES:
720 if (this->last_clicked != nullptr) {
721 const IntSettingDesc *sd = this->last_clicked->setting;
722
723 Rect tr = r;
724 std::string str;
725 switch (sd->GetType()) {
726 case ST_COMPANY: str = GetString(STR_CONFIG_SETTING_TYPE, _game_mode == GM_MENU ? STR_CONFIG_SETTING_TYPE_COMPANY_MENU : STR_CONFIG_SETTING_TYPE_COMPANY_INGAME); break;
727 case ST_CLIENT: str = GetString(STR_CONFIG_SETTING_TYPE, STR_CONFIG_SETTING_TYPE_CLIENT); break;
728 case ST_GAME: str = GetString(STR_CONFIG_SETTING_TYPE, _game_mode == GM_MENU ? STR_CONFIG_SETTING_TYPE_GAME_MENU : STR_CONFIG_SETTING_TYPE_GAME_INGAME); break;
729 default: NOT_REACHED();
730 }
731 DrawString(tr, str);
732 tr.top += GetCharacterHeight(FS_NORMAL);
733
734 auto [param1, param2] = sd->GetValueParams(sd->GetDefaultValue());
735 DrawString(tr, GetString(STR_CONFIG_SETTING_DEFAULT_VALUE, param1, param2));

Callers

nothing calls this directly

Calls 15

DrawSliderWidgetFunction · 0.85
NOT_REACHEDFunction · 0.85
GetCharacterHeightFunction · 0.85
ShrinkMethod · 0.80
GetPositionMethod · 0.80
GetDefaultValueMethod · 0.80
GetHelpMethod · 0.80
DrawStringMultiLineFunction · 0.70
GetStringFunction · 0.70
DrawStringFunction · 0.70
FillDrawPixelInfoFunction · 0.70

Tested by

no test coverage detected