(svn r15387) -Codechange: Add a drop down list item type for char* strings.

This commit is contained in:
peter1138 2009-02-07 00:37:35 +00:00
parent db54537369
commit 77760a62fd
2 changed files with 25 additions and 0 deletions

View File

@ -39,6 +39,16 @@ StringID DropDownListParamStringItem::String() const
return this->string;
}
uint DropDownListCharStringItem::Width() const
{
return GetStringBoundingBox(this->string).width;
}
void DropDownListCharStringItem::Draw(int x, int y, uint width, uint height, bool sel, int bg_colour) const
{
DoDrawStringTruncated(this->string, x + 2, y, sel ? TC_WHITE : TC_BLACK, width);
}
/**
* Delete all items of a drop down list and the list itself
* @param list List to delete.

View File

@ -56,6 +56,21 @@ public:
virtual void SetParam(uint index, uint64 value) { decode_params[index] = value; }
};
/**
* List item containing a C char string.
*/
class DropDownListCharStringItem : public DropDownListItem {
public:
const char *string;
DropDownListCharStringItem(const char *string, int result, bool masked) : DropDownListItem(result, masked), string(string) {}
virtual ~DropDownListCharStringItem() {}
virtual bool Selectable() const { return true; }
virtual uint Width() const;
virtual void Draw(int x, int y, uint width, uint height, bool sel, int bg_colour) const;
};
/**
* A drop down list is a collection of drop down list items.
*/