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

Method UpdateWidgetSize

src/company_gui.cpp:1986–2044  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1984 }
1985
1986 void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
1987 {
1988 switch (widget) {
1989 case WID_C_FACE:
1990 size = maxdim(size, GetScaledSpriteSize(SPR_GRADIENT));
1991 break;
1992
1993 case WID_C_DESC_COLOUR_SCHEME_EXAMPLE: {
1994 Point offset;
1995 Dimension d = GetSpriteSize(SPR_VEH_BUS_SW_VIEW, &offset);
1996 d.width -= offset.x;
1997 d.height -= offset.y;
1998 size = maxdim(size, d);
1999 break;
2000 }
2001
2002 case WID_C_DESC_COMPANY_VALUE:
2003 /* INT64_MAX is arguably the maximum company value */
2004 size.width = GetStringBoundingBox(GetString(STR_COMPANY_VIEW_COMPANY_VALUE, INT64_MAX)).width;
2005 break;
2006
2007 case WID_C_DESC_VEHICLE_COUNTS: {
2008 uint64_t max_value = GetParamMaxValue(5000); // Maximum number of vehicles
2009 for (const auto &count_string : _company_view_vehicle_count_strings) {
2010 size.width = std::max(size.width, GetStringBoundingBox(GetString(count_string, max_value)).width + padding.width);
2011 }
2012 break;
2013 }
2014
2015 case WID_C_DESC_INFRASTRUCTURE_COUNTS: {
2016 uint64_t max_value = GetParamMaxValue(UINT_MAX);
2017 size.width = GetStringBoundingBox(GetString(STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL, max_value)).width;
2018 size.width = std::max(size.width, GetStringBoundingBox(GetString(STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD, max_value)).width);
2019 size.width = std::max(size.width, GetStringBoundingBox(GetString(STR_COMPANY_VIEW_INFRASTRUCTURE_WATER, max_value)).width);
2020 size.width = std::max(size.width, GetStringBoundingBox(GetString(STR_COMPANY_VIEW_INFRASTRUCTURE_STATION, max_value)).width);
2021 size.width = std::max(size.width, GetStringBoundingBox(GetString(STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT, max_value)).width);
2022 size.width = std::max(size.width, GetStringBoundingBox(GetString(STR_COMPANY_VIEW_INFRASTRUCTURE_NONE, max_value)).width);
2023 size.width += padding.width;
2024 break;
2025 }
2026
2027 case WID_C_VIEW_HQ:
2028 case WID_C_BUILD_HQ:
2029 case WID_C_RELOCATE_HQ:
2030 case WID_C_VIEW_INFRASTRUCTURE:
2031 case WID_C_GIVE_MONEY:
2032 case WID_C_HOSTILE_TAKEOVER:
2033 case WID_C_COMPANY_JOIN:
2034 size.width = GetStringBoundingBox(STR_COMPANY_VIEW_VIEW_HQ_BUTTON).width;
2035 size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_BUILD_HQ_BUTTON).width);
2036 size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_RELOCATE_HQ).width);
2037 size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON).width);
2038 size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_GIVE_MONEY_BUTTON).width);
2039 size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_HOSTILE_TAKEOVER_BUTTON).width);
2040 size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_JOIN).width);
2041 size.width += padding.width;
2042 break;
2043 }

Callers

nothing calls this directly

Calls 6

maxdimFunction · 0.85
GetScaledSpriteSizeFunction · 0.85
GetSpriteSizeFunction · 0.85
GetStringBoundingBoxFunction · 0.85
GetParamMaxValueFunction · 0.85
GetStringFunction · 0.70

Tested by

no test coverage detected