| 454 | } |
| 455 | |
| 456 | void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override |
| 457 | { |
| 458 | switch (widget) { |
| 459 | case WID_GL_LIST_GROUP: |
| 460 | size.width = this->ComputeGroupInfoSize(); |
| 461 | fill.height = resize.height = this->tiny_step_height; |
| 462 | break; |
| 463 | |
| 464 | case WID_GL_ALL_VEHICLES: |
| 465 | case WID_GL_DEFAULT_VEHICLES: |
| 466 | size.width = this->ComputeGroupInfoSize(); |
| 467 | size.height = this->tiny_step_height; |
| 468 | break; |
| 469 | |
| 470 | case WID_GL_INFO: { |
| 471 | uint left_side = 0; |
| 472 | for (const StringID &label : {STR_GROUP_PROFIT_THIS_PERIOD, STR_GROUP_PROFIT_THIS_YEAR, STR_GROUP_PROFIT_LAST_PERIOD, STR_GROUP_PROFIT_LAST_YEAR, STR_GROUP_OCCUPANCY}) { |
| 473 | left_side = std::max(left_side, GetStringBoundingBox(label).width); |
| 474 | } |
| 475 | |
| 476 | /* Guestimate that 12 digits is reasonable*/ |
| 477 | uint right_side = std::max( |
| 478 | GetStringBoundingBox(GetString(STR_GROUP_OCCUPANCY_VALUE, GetParamMaxDigits(3))).width, |
| 479 | GetStringBoundingBox(GetString(STR_JUST_CURRENCY_LONG, GetParamMaxDigits(12))).width |
| 480 | ); |
| 481 | |
| 482 | size.width = left_side + WidgetDimensions::scaled.hsep_wide + right_side + padding.width; |
| 483 | break; |
| 484 | } |
| 485 | |
| 486 | case WID_GL_SORT_BY_ORDER: { |
| 487 | Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->GetString()); |
| 488 | d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better. |
| 489 | d.height += padding.height; |
| 490 | size = maxdim(size, d); |
| 491 | break; |
| 492 | } |
| 493 | |
| 494 | case WID_GL_LIST_VEHICLE: |
| 495 | this->ComputeGroupInfoSize(); |
| 496 | fill.height = resize.height = GetVehicleListHeight(this->vli.vtype, this->tiny_step_height); |
| 497 | size.height = 4 * resize.height; |
| 498 | break; |
| 499 | |
| 500 | case WID_GL_GROUP_BY_DROPDOWN: |
| 501 | size.width = GetStringListWidth(this->vehicle_group_by_names) + padding.width; |
| 502 | break; |
| 503 | |
| 504 | case WID_GL_SORT_BY_DROPDOWN: |
| 505 | size.width = GetStringListWidth(this->vehicle_group_none_sorter_names_calendar); |
| 506 | size.width = std::max(size.width, GetStringListWidth(this->vehicle_group_none_sorter_names_wallclock)); |
| 507 | size.width = std::max(size.width, GetStringListWidth(this->vehicle_group_shared_orders_sorter_names_calendar)); |
| 508 | size.width = std::max(size.width, GetStringListWidth(this->vehicle_group_shared_orders_sorter_names_wallclock)); |
| 509 | size.width += padding.width; |
| 510 | break; |
| 511 | |
| 512 | case WID_GL_FILTER_BY_CARGO: |
| 513 | size.width = std::max(size.width, GetDropDownListDimension(this->BuildCargoDropDownList(true)).width + padding.width); |
nothing calls this directly
no test coverage detected