Change: Show empty string drop down entries as divider. (#11447)

This commit is contained in:
Peter Nelson 2023-11-06 22:35:01 +00:00 committed by GitHub
parent ab535c0a86
commit 136551408c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 4 deletions

View File

@ -48,10 +48,14 @@ uint DropDownListStringItem::Width() const
return GetStringBoundingBox(this->String()).width + WidgetDimensions::scaled.dropdowntext.Horizontal();
}
void DropDownListStringItem::Draw(const Rect &r, bool sel, Colours) const
void DropDownListStringItem::Draw(const Rect &r, bool sel, Colours bg_colour) const
{
Rect ir = r.Shrink(WidgetDimensions::scaled.dropdowntext);
DrawString(ir.left, ir.right, r.top, this->String(), sel ? TC_WHITE : TC_BLACK);
if (this->String().empty()) {
this->DropDownListItem::Draw(r, sel, bg_colour);
} else {
Rect ir = r.Shrink(WidgetDimensions::scaled.dropdowntext);
DrawString(ir.left, ir.right, r.top, this->String(), sel ? TC_WHITE : TC_BLACK);
}
}
/**

View File

@ -42,7 +42,7 @@ public:
DropDownListStringItem(StringID string, int result, bool masked);
DropDownListStringItem(const std::string &string, int result, bool masked);
bool Selectable() const override { return true; }
bool Selectable() const override { return !this->String().empty(); }
uint Width() const override;
void Draw(const Rect &r, bool sel, Colours bg_colour) const override;
virtual const std::string &String() const { return this->string; }