diff options
author | peter1138 <peter1138@openttd.org> | 2009-02-07 00:37:35 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2009-02-07 00:37:35 +0000 |
commit | 77760a62fd0d926eec7c8807053f8f8d01e14bc1 (patch) | |
tree | 584d4432bb4ce7dc8006916467e8222b65332fba | |
parent | db545373693d8a352879179b143f9b6fd16db51d (diff) | |
download | openttd-77760a62fd0d926eec7c8807053f8f8d01e14bc1.tar.xz |
(svn r15387) -Codechange: Add a drop down list item type for char* strings.
-rw-r--r-- | src/widgets/dropdown.cpp | 10 | ||||
-rw-r--r-- | src/widgets/dropdown_type.h | 15 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/widgets/dropdown.cpp b/src/widgets/dropdown.cpp index 42cd28d0f..986d051d5 100644 --- a/src/widgets/dropdown.cpp +++ b/src/widgets/dropdown.cpp @@ -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. diff --git a/src/widgets/dropdown_type.h b/src/widgets/dropdown_type.h index 086e5717d..607799656 100644 --- a/src/widgets/dropdown_type.h +++ b/src/widgets/dropdown_type.h @@ -57,6 +57,21 @@ public: }; /** + * 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. */ typedef std::list<DropDownListItem *> DropDownList; |