Codechange: Use unified NWidgetContainer methods instead of duplicating.

Most NWidgetContainer derivatives implemented Draw() and GetWidgetFromPos()
the same way. Move this these to NWidgetContainer itself to avoid repeating.
This commit is contained in:
Peter Nelson
2023-10-19 19:58:43 +01:00
committed by Peter Nelson
parent af41c5cb4e
commit 59a2abd298
5 changed files with 22 additions and 69 deletions

View File

@@ -1763,21 +1763,6 @@ public:
display->AssignSizePosition(ST_RESIZE, x, y, given_width, display_height, rtl);
bar->AssignSizePosition(ST_RESIZE, x, y + display_height, given_width, bar_height, rtl);
}
NWidgetCore *GetWidgetFromPos(int x, int y) override
{
if (!IsInsideBS(x, this->pos_x, this->current_x) || !IsInsideBS(y, this->pos_y, this->current_y)) return nullptr;
for (NWidgetBase *child_wid = this->head; child_wid != nullptr; child_wid = child_wid->next) {
NWidgetCore *widget = child_wid->GetWidgetFromPos(x, y);
if (widget != nullptr) return widget;
}
return nullptr;
}
void Draw(const Window *w) override
{
for (NWidgetBase *child_wid = this->head; child_wid != nullptr; child_wid = child_wid->next) child_wid->Draw(w);
}
};
/** Widget parts of the smallmap display. */