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

Method UpdateWidgetSize

src/framerate_gui.cpp:517–560  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

515 }
516
517 void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
518 {
519 switch (widget) {
520 case WID_FRW_RATE_GAMELOOP:
521 size = GetStringBoundingBox(GetString(STR_FRAMERATE_RATE_GAMELOOP, STR_FRAMERATE_FPS_GOOD, GetParamMaxDigits(6), 2));
522 break;
523 case WID_FRW_RATE_DRAWING:
524 size = GetStringBoundingBox(GetString(STR_FRAMERATE_RATE_BLITTER, STR_FRAMERATE_FPS_GOOD, GetParamMaxDigits(6), 2));
525 break;
526 case WID_FRW_RATE_FACTOR:
527 size = GetStringBoundingBox(GetString(STR_FRAMERATE_SPEED_FACTOR, GetParamMaxDigits(6), 2));
528 break;
529
530 case WID_FRW_TIMES_NAMES: {
531 size.width = 0;
532 size.height = GetCharacterHeight(FS_NORMAL) + WidgetDimensions::scaled.vsep_normal + MIN_ELEMENTS * GetCharacterHeight(FS_NORMAL);
533 resize.width = 0;
534 fill.height = resize.height = GetCharacterHeight(FS_NORMAL);
535 for (PerformanceElement e : DISPLAY_ORDER_PFE) {
536 if (_pf_data[e].num_valid == 0) continue;
537 Dimension line_size;
538 if (e < PFE_AI0) {
539 line_size = GetStringBoundingBox(STR_FRAMERATE_GAMELOOP + e);
540 } else {
541 line_size = GetStringBoundingBox(GetString(STR_FRAMERATE_AI, e - PFE_AI0 + 1, GetAIName(e - PFE_AI0)));
542 }
543 size.width = std::max(size.width, line_size.width);
544 }
545 break;
546 }
547
548 case WID_FRW_TIMES_CURRENT:
549 case WID_FRW_TIMES_AVERAGE:
550 case WID_FRW_ALLOCSIZE: {
551 size = GetStringBoundingBox(STR_FRAMERATE_CURRENT + (widget - WID_FRW_TIMES_CURRENT));
552 Dimension item_size = GetStringBoundingBox(GetString(STR_FRAMERATE_MS_GOOD, GetParamMaxDigits(6), 2));
553 size.width = std::max(size.width, item_size.width);
554 size.height += GetCharacterHeight(FS_NORMAL) * MIN_ELEMENTS + WidgetDimensions::scaled.vsep_normal;
555 resize.width = 0;
556 fill.height = resize.height = GetCharacterHeight(FS_NORMAL);
557 break;
558 }
559 }
560 }
561
562 /** Render a column of formatted average durations */
563 void DrawElementTimesColumn(const Rect &r, StringID heading_str, std::span<const CachedDecimal> values) const

Callers

nothing calls this directly

Calls 5

GetStringBoundingBoxFunction · 0.85
GetParamMaxDigitsFunction · 0.85
GetCharacterHeightFunction · 0.85
GetAINameFunction · 0.85
GetStringFunction · 0.70

Tested by

no test coverage detected