From ff674829f5b335e4ae59d34eaf722944247ab19f Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Sun, 28 Sep 2025 14:09:36 +0100 Subject: [PATCH] Codechange: Replace Rect CentreTo with CentreToHeight. (#14675) So far all callers only need to centre vertically, so not having to provide the existing width simplifies calls. --- src/company_gui.cpp | 8 ++++---- src/core/geometry_type.hpp | 8 +++----- src/dropdown_common_type.h | 4 ++-- src/genworld_gui.cpp | 3 +-- src/network/network_gui.cpp | 6 +++--- src/newgrf_badge_gui.cpp | 4 ++-- src/widget.cpp | 2 +- 7 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/company_gui.cpp b/src/company_gui.cpp index 9debd59c5b..66dc383cbb 100644 --- a/src/company_gui.cpp +++ b/src/company_gui.cpp @@ -1333,8 +1333,8 @@ public: Rect ir = r.Shrink(WidgetDimensions::scaled.frametext, RectPadding::zero).WithHeight(this->line_height); bool rtl = _current_text_dir == TD_RTL; - Rect br = ir.CentreTo(ir.Width(), SETTING_BUTTON_HEIGHT).WithWidth(SETTING_BUTTON_WIDTH, rtl); - Rect tr = ir.Shrink(RectPadding::zero, WidgetDimensions::scaled.matrix).CentreTo(ir.Width(), GetCharacterHeight(FS_NORMAL)).Indent(SETTING_BUTTON_WIDTH + WidgetDimensions::scaled.hsep_wide, rtl); + Rect br = ir.CentreToHeight(SETTING_BUTTON_HEIGHT).WithWidth(SETTING_BUTTON_WIDTH, rtl); + Rect tr = ir.Shrink(RectPadding::zero, WidgetDimensions::scaled.matrix).CentreToHeight(GetCharacterHeight(FS_NORMAL)).Indent(SETTING_BUTTON_WIDTH + WidgetDimensions::scaled.hsep_wide, rtl); DrawArrowButtons(br.left, br.top, COLOUR_YELLOW, this->selected_var == UINT_MAX - 1 ? this->click_state : 0, true, true); DrawString(tr, GetString(STR_FACE_SETTING_NUMERIC, STR_FACE_STYLE, this->face.style + 1, GetNumCompanyManagerFaceStyles()), TC_WHITE); @@ -1352,8 +1352,8 @@ public: const uint8_t var = static_cast(*it - vars.data()); const FaceVar &facevar = **it; - Rect br = ir.CentreTo(ir.Width(), SETTING_BUTTON_HEIGHT).WithWidth(SETTING_BUTTON_WIDTH, rtl); - Rect tr = ir.Shrink(RectPadding::zero, WidgetDimensions::scaled.matrix).CentreTo(ir.Width(), GetCharacterHeight(FS_NORMAL)).Indent(SETTING_BUTTON_WIDTH + WidgetDimensions::scaled.hsep_wide, rtl); + Rect br = ir.CentreToHeight(SETTING_BUTTON_HEIGHT).WithWidth(SETTING_BUTTON_WIDTH, rtl); + Rect tr = ir.Shrink(RectPadding::zero, WidgetDimensions::scaled.matrix).CentreToHeight(GetCharacterHeight(FS_NORMAL)).Indent(SETTING_BUTTON_WIDTH + WidgetDimensions::scaled.hsep_wide, rtl); uint val = vars[var].GetBits(this->face); if (facevar.type == FaceVarType::Toggle) { diff --git a/src/core/geometry_type.hpp b/src/core/geometry_type.hpp index 9e7cf62583..ccc610fa90 100644 --- a/src/core/geometry_type.hpp +++ b/src/core/geometry_type.hpp @@ -253,16 +253,14 @@ struct Rect { } /** - * Centre a dimension within this Rect. - * @param width The horizontal dimension. + * Centre a vertical dimension within this Rect. * @param height The vertical dimension. * @return the new resized Rect. */ - [[nodiscard]] inline Rect CentreTo(int width, int height) const + [[nodiscard]] inline Rect CentreToHeight(int height) const { - int new_left = CentreBounds(this->left, this->right, width); int new_top = CentreBounds(this->top, this->bottom, height); - return {new_left, new_top, new_left + width - 1, new_top + height - 1}; + return {this->left, new_top, this->right, new_top + height - 1}; } /** diff --git a/src/dropdown_common_type.h b/src/dropdown_common_type.h index e29aa16163..81e2b36be9 100644 --- a/src/dropdown_common_type.h +++ b/src/dropdown_common_type.h @@ -216,7 +216,7 @@ public: bool rtl = TEnd ^ (_current_text_dir == TD_RTL); int w = SETTING_BUTTON_WIDTH; - if (r.WithWidth(w, rtl).CentreTo(w, SETTING_BUTTON_HEIGHT).Contains(pt)) return this->click; + if (r.WithWidth(w, rtl).CentreToHeight(SETTING_BUTTON_HEIGHT).Contains(pt)) return this->click; return this->TBase::OnClick(r.Indent(w + WidgetDimensions::scaled.hsep_wide, rtl), pt); } @@ -226,7 +226,7 @@ public: bool rtl = TEnd ^ (_current_text_dir == TD_RTL); int w = SETTING_BUTTON_WIDTH; - Rect br = r.WithWidth(w, rtl).CentreTo(w, SETTING_BUTTON_HEIGHT); + Rect br = r.WithWidth(w, rtl).CentreToHeight(SETTING_BUTTON_HEIGHT); DrawBoolButton(br.left, br.top, this->button_colour, this->background_colour, this->on, true); this->TBase::Draw(full, r.Indent(w + WidgetDimensions::scaled.hsep_wide, rtl), sel, click_result, bg_colour); diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index f910f75cf3..8bef4e4c81 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -1419,8 +1419,7 @@ struct GenerateProgressWindow : public Window { DrawFrameRect(r, COLOUR_GREY, {FrameFlag::BorderOnly, FrameFlag::Lowered}); Rect br = r.Shrink(WidgetDimensions::scaled.bevel); DrawFrameRect(br.WithWidth(br.Width() * GenWorldStatus::percent / 100, _current_text_dir == TD_RTL), COLOUR_MAUVE, {}); - DrawString(br.left, br.right, CentreBounds(br.top, br.bottom, GetCharacterHeight(FS_NORMAL)), - GetString(STR_GENERATION_PROGRESS, GenWorldStatus::percent), TC_FROMSTRING, SA_HOR_CENTER); + DrawString(br.CentreToHeight(GetCharacterHeight(FS_NORMAL)), GetString(STR_GENERATION_PROGRESS, GenWorldStatus::percent), TC_FROMSTRING, SA_HOR_CENTER); break; } diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index a8d2fc4859..a437f776f7 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -1442,7 +1442,7 @@ protected: { bool rtl = _current_text_dir == TD_RTL; for (auto &button : buttons) { - Rect br = r.CentreTo(r.Width(), button->height).WithWidth(button->width, !rtl); + Rect br = r.CentreToHeight(button->height).WithWidth(button->width, !rtl); DrawFrameRect(br, button->colour, {}); DrawSpriteIgnorePadding(button->sprite, PAL_NONE, br, SA_CENTER); if (button->disabled) { @@ -1467,7 +1467,7 @@ public: PaletteID pal = Company::IsValidID(this->company_id) ? GetCompanyPalette(this->company_id) : PALETTE_TO_GREY; DrawSpriteIgnorePadding(SPR_COMPANY_ICON, pal, r.WithWidth(d.width, rtl), SA_CENTER); - Rect tr = r.CentreTo(r.Width(), GetCharacterHeight(FS_NORMAL)).Indent(d.width + WidgetDimensions::scaled.hsep_normal, rtl); + Rect tr = r.CentreToHeight(GetCharacterHeight(FS_NORMAL)).Indent(d.width + WidgetDimensions::scaled.hsep_normal, rtl); if (this->company_id == COMPANY_SPECTATOR) { DrawString(tr, STR_NETWORK_CLIENT_LIST_SPECTATORS, TC_SILVER); } else if (this->company_id == COMPANY_NEW_COMPANY) { @@ -1493,7 +1493,7 @@ public: bool rtl = _current_text_dir == TD_RTL; r = this->DrawButtons(r); - Rect tr = r.CentreTo(r.Width(), GetCharacterHeight(FS_NORMAL)); + Rect tr = r.CentreToHeight(GetCharacterHeight(FS_NORMAL)); SpriteID player_icon = 0; if (ci->client_id == _network_own_client_id) { diff --git a/src/newgrf_badge_gui.cpp b/src/newgrf_badge_gui.cpp index 0c6b1f82de..8c10484df4 100644 --- a/src/newgrf_badge_gui.cpp +++ b/src/newgrf_badge_gui.cpp @@ -280,7 +280,7 @@ public: bool rtl = (_current_text_dir == TD_RTL); int w = SETTING_BUTTON_WIDTH; - Rect br = r.WithWidth(w, TEnd ^ rtl).CentreTo(w, SETTING_BUTTON_HEIGHT); + Rect br = r.WithWidth(w, TEnd ^ rtl).CentreToHeight(SETTING_BUTTON_HEIGHT); if (br.WithWidth(w / 2, rtl).Contains(pt)) return this->click_up; if (br.WithWidth(w / 2, !rtl).Contains(pt)) return this->click_down; @@ -298,7 +298,7 @@ public: if (click_result == this->click_down) state = 2; } - Rect br = r.WithWidth(w, TEnd ^ rtl).CentreTo(w, SETTING_BUTTON_HEIGHT); + Rect br = r.WithWidth(w, TEnd ^ rtl).CentreToHeight(SETTING_BUTTON_HEIGHT); DrawUpDownButtons(br.left, br.top, this->button_colour, state, this->click_up != 0, this->click_down != 0); this->TBase::Draw(full, r.Indent(w + WidgetDimensions::scaled.hsep_wide, TEnd ^ rtl), sel, click_result, bg_colour); diff --git a/src/widget.cpp b/src/widget.cpp index cf89f126d7..b99da3d4bf 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -752,7 +752,7 @@ static inline void DrawButtonDropdown(const Rect &r, Colours colour, bool clicke Rect text = r.Indent(NWidgetLeaf::dropdown_dimension.width, !rtl); DrawFrameRect(text, colour, clicked_button ? FrameFlag::Lowered : FrameFlags{}); if (!str.empty()) { - text = text.CentreTo(text.Width(), GetCharacterHeight(FS_NORMAL)).Shrink(WidgetDimensions::scaled.dropdowntext, RectPadding::zero); + text = text.CentreToHeight(GetCharacterHeight(FS_NORMAL)).Shrink(WidgetDimensions::scaled.dropdowntext, RectPadding::zero); DrawString(text, str, TC_BLACK, align); }