mirror of https://github.com/OpenTTD/OpenTTD
(svn r22311) -Add: DropDownListStringItem::NatSortFunc() which can be used as comparator function in DropDownList::sort().
parent
18f0add50a
commit
ea1ca5bf1e
|
@ -38,6 +38,21 @@ void DropDownListStringItem::Draw(int left, int right, int top, int bottom, bool
|
||||||
DrawString(left + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, top, this->String(), sel ? TC_WHITE : TC_BLACK);
|
DrawString(left + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, top, this->String(), sel ? TC_WHITE : TC_BLACK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Natural sorting comparator function for DropDownList::sort().
|
||||||
|
* @param first Left side of comparison.
|
||||||
|
* @param second Right side of comparison.
|
||||||
|
* @return true if \a first precedes \a second.
|
||||||
|
* @warning All items in the list need to be derivates of DropDownListStringItem.
|
||||||
|
*/
|
||||||
|
/* static */ bool DropDownListStringItem::NatSortFunc(const DropDownListItem *first, const DropDownListItem *second)
|
||||||
|
{
|
||||||
|
char buffer1[512], buffer2[512];
|
||||||
|
GetString(buffer1, static_cast<const DropDownListStringItem*>(first)->String(), lastof(buffer1));
|
||||||
|
GetString(buffer2, static_cast<const DropDownListStringItem*>(second)->String(), lastof(buffer2));
|
||||||
|
return strnatcmp(buffer1, buffer2) < 0;
|
||||||
|
}
|
||||||
|
|
||||||
StringID DropDownListParamStringItem::String() const
|
StringID DropDownListParamStringItem::String() const
|
||||||
{
|
{
|
||||||
for (uint i = 0; i < lengthof(this->decode_params); i++) SetDParam(i, this->decode_params[i]);
|
for (uint i = 0; i < lengthof(this->decode_params); i++) SetDParam(i, this->decode_params[i]);
|
||||||
|
|
|
@ -49,6 +49,8 @@ public:
|
||||||
virtual uint Width() const;
|
virtual uint Width() const;
|
||||||
virtual void Draw(int left, int right, int top, int bottom, bool sel, int bg_colour) const;
|
virtual void Draw(int left, int right, int top, int bottom, bool sel, int bg_colour) const;
|
||||||
virtual StringID String() const { return this->string; }
|
virtual StringID String() const { return this->string; }
|
||||||
|
|
||||||
|
static bool NatSortFunc(const DropDownListItem *first, const DropDownListItem *second);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue