From 2c02810b3a2913be6300a1d8acb33d90595e0f64 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Tue, 13 May 2008 21:11:38 +0000 Subject: (svn r13075) -Codechange: Allow any value for a dropdown item instead of just positive. --- src/widgets/dropdown.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'src/widgets') diff --git a/src/widgets/dropdown.cpp b/src/widgets/dropdown.cpp index 0a361a0f5..bab184da7 100644 --- a/src/widgets/dropdown.cpp +++ b/src/widgets/dropdown.cpp @@ -87,9 +87,9 @@ struct DropdownWindow : Window { 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 @@ struct DropdownWindow : Window { 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 @@ struct DropdownWindow : Window { 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 @@ struct DropdownWindow : Window { } 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 @@ struct DropdownWindow : Window { return; } - if (item < 0) return; + if (!this->GetDropDownItem(item)) return; } this->selected_index = item; -- cgit v1.2.3-54-g00ecf