(svn r14334) -Feature: ability to reset name to default/automatic value (for vehicles, engines, towns, groups, stations, waypoints, managers and companies)

This commit is contained in:
smatz
2008-09-15 19:02:50 +00:00
parent 42f33890aa
commit 1266b1a73f
17 changed files with 144 additions and 89 deletions

View File

@@ -1049,6 +1049,7 @@ void QueryStringBaseWindow::DrawEditBox(int wid)
enum QueryStringWidgets {
QUERY_STR_WIDGET_TEXT = 3,
QUERY_STR_WIDGET_DEFAULT,
QUERY_STR_WIDGET_CANCEL,
QUERY_STR_WIDGET_OK
};
@@ -1093,6 +1094,9 @@ struct QueryStringWindow : public QueryStringBaseWindow
ShowOnScreenKeyboard(this, QUERY_STR_WIDGET_TEXT, QUERY_STR_WIDGET_CANCEL, QUERY_STR_WIDGET_OK);
break;
case QUERY_STR_WIDGET_DEFAULT:
this->text.buf[0] = '\0';
/* Fallthrough */
case QUERY_STR_WIDGET_OK:
this->OnOk();
/* Fallthrough */
@@ -1138,9 +1142,10 @@ static const Widget _query_string_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, COLOUR_GREY, 11, 259, 0, 13, STR_012D, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, COLOUR_GREY, 0, 259, 14, 29, 0x0, STR_NULL},
{ WWT_EDITBOX, RESIZE_NONE, COLOUR_GREY, 2, 257, 16, 27, 0x0, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 0, 129, 30, 41, STR_012E_CANCEL, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 130, 259, 30, 41, STR_012F_OK, STR_NULL},
{ WWT_EDITBOX, RESIZE_NONE, COLOUR_GREY, 2, 257, 16, 27, 0x0, STR_NULL}, // QUERY_STR_WIDGET_TEXT
{ WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 0, 86, 30, 41, STR_DEFAULT, STR_NULL}, // QUERY_STR_WIDGET_DEFAULT
{ WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 87, 172, 30, 41, STR_012E_CANCEL, STR_NULL}, // QUERY_STR_WIDGET_CANCEL
{ WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 173, 259, 30, 41, STR_012F_OK, STR_NULL}, // QUERY_STR_WIDGET_OK
{ WIDGETS_END},
};
@@ -1173,6 +1178,15 @@ void ShowQueryString(StringID str, StringID caption, uint maxlen, uint maxwidth,
if ((flags & QSF_ACCEPT_UNCHANGED) == 0) w->orig = strdup(w->edit_str_buf);
if ((flags & QSF_ENABLE_DEFAULT) == 0) {
/* without the "Default" button, make "Cancel" and "OK" buttons wider */
w->SetWidgetHiddenState(QUERY_STR_WIDGET_DEFAULT, true);
w->widget[QUERY_STR_WIDGET_CANCEL].left = 0;
w->widget[QUERY_STR_WIDGET_CANCEL].right = w->width / 2 - 1;
w->widget[QUERY_STR_WIDGET_OK].left = w->width / 2;
w->widget[QUERY_STR_WIDGET_OK].right = w->width - 1;
}
w->LowerWidget(QUERY_STR_WIDGET_TEXT);
w->caption = caption;
w->afilter = afilter;