Mercurial > hg > openttd
changeset 9209:638c2e249af7 draft
(svn r13075) -Codechange: Allow any value for a dropdown item instead of just positive.
author | peter1138 <peter1138@openttd.org> |
---|---|
date | Tue, 13 May 2008 21:11:38 +0000 |
parents | aa4576e5111a |
children | 59df6166f3a1 |
files | src/widgets/dropdown.cpp |
diffstat | 1 files changed, 11 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/src/widgets/dropdown.cpp +++ b/src/widgets/dropdown.cpp @@ -87,9 +87,9 @@ DeleteDropDownList(this->list); } - int GetDropDownItem() + bool GetDropDownItem(int &value) { - if (GetWidgetFromPos(this, _cursor.pos.x - this->left, _cursor.pos.y - this->top) < 0) return -1; + if (GetWidgetFromPos(this, _cursor.pos.x - this->left, _cursor.pos.y - this->top) < 0) return false; int y = _cursor.pos.y - this->top - 2; int width = this->widget[0].right - 3; @@ -105,14 +105,15 @@ int item_height = item->Height(width); if (y < item_height) { - if (item->masked || item->String() == STR_NULL) return -1; - return item->result; + if (item->masked || item->String() == STR_NULL) return false; + value = item->result; + return true; } y -= item_height; } - return -1; + return false; } virtual void OnPaint() @@ -162,8 +163,8 @@ virtual void OnClick(Point pt, int widget) { if (widget != 0) return; - int item = GetDropDownItem(); - if (item >= 0) { + int item; + if (this->GetDropDownItem(item)) { this->click_delay = 4; this->selected_index = item; this->SetDirty(); @@ -197,11 +198,11 @@ } if (this->drag_mode) { - int item = GetDropDownItem(); + int item; if (!_left_button_clicked) { this->drag_mode = false; - if (item < 0) return; + if (!this->GetDropDownItem(item)) return; this->click_delay = 2; } else { if (_cursor.pos.y <= this->top + 2) { @@ -214,7 +215,7 @@ return; } - if (item < 0) return; + if (!this->GetDropDownItem(item)) return; } this->selected_index = item;