1
0
mirror of https://github.com/OpenTTD/OpenTTD synced 2026-01-26 05:34:12 +01:00

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.
This commit is contained in:
Peter Nelson
2025-09-28 14:09:36 +01:00
committed by GitHub
parent 81530e2574
commit ff674829f5
7 changed files with 16 additions and 19 deletions

View File

@@ -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<uint8_t>(*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) {

View File

@@ -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};
}
/**

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -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) {

View File

@@ -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);

View File

@@ -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);
}