diff options
author | rubidium <rubidium@openttd.org> | 2008-04-09 23:00:12 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2008-04-09 23:00:12 +0000 |
commit | 2ac6af4e48744ee42abff16b2b716a9eeeef36cf (patch) | |
tree | 31e91bb295634439e2d248e142cae0410d992fe4 /src/widgets | |
parent | c9e9e6005bed8e6143fdc571cfebdc993d334dbd (diff) | |
download | openttd-2ac6af4e48744ee42abff16b2b716a9eeeef36cf.tar.xz |
(svn r12644) -Codechange: rework the order gui a little to prepare it for some future changes.
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/dropdown.cpp | 12 | ||||
-rw-r--r-- | src/widgets/dropdown_func.h | 2 | ||||
-rw-r--r-- | src/widgets/dropdown_type.h | 3 |
3 files changed, 10 insertions, 7 deletions
diff --git a/src/widgets/dropdown.cpp b/src/widgets/dropdown.cpp index 89e336a58..70eb81b64 100644 --- a/src/widgets/dropdown.cpp +++ b/src/widgets/dropdown.cpp @@ -201,7 +201,7 @@ static void DropDownMenuWndProc(Window *w, WindowEvent *e) } } -void ShowDropDownList(Window *w, DropDownList *list, int selected, int button) +void ShowDropDownList(Window *w, DropDownList *list, int selected, int button, uint width) { bool is_dropdown_menu_shown = w->IsWidgetLowered(button); @@ -246,17 +246,19 @@ void ShowDropDownList(Window *w, DropDownList *list, int selected, int button) } } + if (width == 0) width = wi->right - wi->left + 1; + Window *dw = AllocateWindow( w->left + wi->left, top, - wi->right - wi->left + 1, + width, height, DropDownMenuWndProc, WC_DROPDOWN_MENU, _dropdown_menu_widgets); dw->widget[0].color = wi->color; - dw->widget[0].right = wi->right - wi->left; + dw->widget[0].right = width + 1; dw->widget[0].bottom = height - 1; dw->SetWidgetHiddenState(1, !scroll); @@ -286,7 +288,7 @@ void ShowDropDownList(Window *w, DropDownList *list, int selected, int button) WP(dw, dropdown_d).drag_mode = true; } -void ShowDropDownMenu(Window *w, const StringID *strings, int selected, int button, uint32 disabled_mask, uint32 hidden_mask) +void ShowDropDownMenu(Window *w, const StringID *strings, int selected, int button, uint32 disabled_mask, uint32 hidden_mask, uint width) { /* Don't create a new list if we're just closing an existing menu */ if (w->IsWidgetLowered(button)) { @@ -310,7 +312,7 @@ void ShowDropDownMenu(Window *w, const StringID *strings, int selected, int butt return; } - ShowDropDownList(w, list, selected, button); + ShowDropDownList(w, list, selected, button, width); } /** diff --git a/src/widgets/dropdown_func.h b/src/widgets/dropdown_func.h index dd6b430bc..ac0e0a906 100644 --- a/src/widgets/dropdown_func.h +++ b/src/widgets/dropdown_func.h @@ -4,7 +4,7 @@ #define WIDGETS_DROPDOWN_FUNC_H /* Show drop down menu containing a fixed list of strings */ -void ShowDropDownMenu(Window *w, const StringID *strings, int selected, int button, uint32 disabled_mask, uint32 hidden_mask); +void ShowDropDownMenu(Window *w, const StringID *strings, int selected, int button, uint32 disabled_mask, uint32 hidden_mask, uint width = 0); /* Hide drop down menu of a parent window */ void HideDropDownMenu(Window *pw); diff --git a/src/widgets/dropdown_type.h b/src/widgets/dropdown_type.h index 419c6fbc2..29a40962c 100644 --- a/src/widgets/dropdown_type.h +++ b/src/widgets/dropdown_type.h @@ -60,7 +60,8 @@ typedef std::list<DropDownListItem *> DropDownList; * @param selected The initially selected list item. * @param button The widget within the parent window that is used to determine * the list's location. + * @param width Override the width determined by the selected widget. */ -void ShowDropDownList(Window *w, DropDownList *list, int selected, int button); +void ShowDropDownList(Window *w, DropDownList *list, int selected, int button, uint width = 0); #endif /* WIDGETS_DROPDOWN_TYPE_H */ |