| 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 |
nothing calls this directly
no test coverage detected