@@ -432,50 +432,50 @@ void ShowDropDownList(Window *w, DropDow
nwi->disp_flags |= ND_DROPDOWN_ACTIVE;
} else {
w->LowerWidget(button);
}
w->SetWidgetDirty(button);
if (width != 0) {
if (_current_text_dir == TD_RTL) {
wi_rect.left = wi_rect.right + 1 - width;
wi_rect.right = wi_rect.left + width - 1;
ShowDropDownListAt(w, list, selected, button, wi_rect, wi_colour, auto_width, instant_close);
/**
* Show a dropdown menu window near a widget of the parent window.
* The result code of the items is their index in the \a strings list.
* @param w Parent window that wants the dropdown menu.
* @param strings Menu list, end with #INVALID_STRING_ID
* @param selected Index of initial selected item.
* @param button Button widget number of the parent window \a w that wants the dropdown menu.
* @param disabled_mask Bitmask for disabled items (items with their bit set are not copied to the dropdown list).
* @param hidden_mask Bitmask for hidden items (items with their bit set are displayed, but not selectable in the dropdown list).
* @param disabled_mask Bitmask for disabled items (items with their bit set are displayed, but not selectable in the dropdown list).
* @param hidden_mask Bitmask for hidden items (items with their bit set are not copied to the dropdown list).
* @param width Width of the dropdown menu. If \c 0, use the width of parent widget \a button.
*/
void ShowDropDownMenu(Window *w, const StringID *strings, int selected, int button, uint32 disabled_mask, uint32 hidden_mask, uint width)
{
DropDownList *list = new DropDownList();
for (uint i = 0; strings[i] != INVALID_STRING_ID; i++) {
if (!HasBit(hidden_mask, i)) {
list->push_back(new DropDownListStringItem(strings[i], i, HasBit(disabled_mask, i)));
/* No entries in the list? */
if (list->size() == 0) {
DeleteDropDownList(list);
return;
ShowDropDownList(w, list, selected, button, width);
* Delete the drop-down menu from window \a pw
* @param pw Parent window of the drop-down menu window
Status change: