From 66783add65831ff12c1fe54ef33f1a842f27d4e3 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sat, 12 Apr 2008 22:12:27 +0000 Subject: (svn r12675) -Codechange: Add support for custom drawing of drop down list items. --- src/widgets/dropdown.cpp | 7 ++++++- src/widgets/dropdown_type.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'src/widgets') diff --git a/src/widgets/dropdown.cpp b/src/widgets/dropdown.cpp index 90b57730f..251c01ca0 100644 --- a/src/widgets/dropdown.cpp +++ b/src/widgets/dropdown.cpp @@ -36,6 +36,11 @@ StringID DropDownListParamStringItem::String() const return this->string; } +void DropDownListItem::Draw(int x, int y, uint width, uint height, bool sel) const +{ + DrawStringTruncated(x + 2, y, this->String(), sel ? TC_WHITE : TC_BLACK, x + width); +} + /** * Delete all items of a drop down list and the list itself * @param list List to delete. @@ -122,7 +127,7 @@ static void DropDownMenuWndProc(Window *w, WindowEvent *e) if (item->String() != STR_NULL) { if (sel == item->result) GfxFillRect(x + 1, y, x + width, y + item_height - 1, 0); - DrawStringTruncated(x + 2, y, item->String(), sel == item->result ? TC_WHITE : TC_BLACK, x + width); + item->Draw(x, y, width, 10, sel == item->result); if (item->masked) { GfxFillRect(x, y, x + width, y + item_height - 1, diff --git a/src/widgets/dropdown_type.h b/src/widgets/dropdown_type.h index 859b331d2..a93cbb360 100644 --- a/src/widgets/dropdown_type.h +++ b/src/widgets/dropdown_type.h @@ -19,6 +19,7 @@ public: virtual ~DropDownListItem() {} virtual StringID String() const; virtual uint Height(uint width) const; + virtual void Draw(int x, int y, uint width, uint height, bool sel) const; }; /** -- cgit v1.2.3-54-g00ecf