|
@@ -288,53 +288,55 @@ struct SignWindow : QueryStringBaseWindo
|
|
|
case QUERY_EDIT_SIGN_WIDGET_TEXT:
|
|
|
ShowOnScreenKeyboard(this, widget, QUERY_EDIT_SIGN_WIDGET_CANCEL, QUERY_EDIT_SIGN_WIDGET_OK);
|
|
|
break;
|
|
|
|
|
|
case QUERY_EDIT_SIGN_WIDGET_DELETE:
|
|
|
/* Only need to set the buffer to null, the rest is handled as the OK button */
|
|
|
RenameSign(this->cur_sign, "");
|
|
|
/* don't delete this, we are deleted in Sign::~Sign() -> DeleteRenameSignWindow() */
|
|
|
break;
|
|
|
|
|
|
case QUERY_EDIT_SIGN_WIDGET_OK:
|
|
|
if (RenameSign(this->cur_sign, this->text.buf)) break;
|
|
|
/* FALL THROUGH */
|
|
|
|
|
|
case QUERY_EDIT_SIGN_WIDGET_CANCEL:
|
|
|
delete this;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
virtual EventState OnKeyPress(uint16 key, uint16 keycode)
|
|
|
{
|
|
|
EventState state = ES_NOT_HANDLED;
|
|
|
switch (this->HandleEditBoxKey(QUERY_EDIT_SIGN_WIDGET_TEXT, key, keycode, state)) {
|
|
|
case 1: // Enter pressed, confirms change
|
|
|
default: break;
|
|
|
|
|
|
case HEBR_CONFIRM:
|
|
|
if (RenameSign(this->cur_sign, this->text.buf)) break;
|
|
|
/* FALL THROUGH */
|
|
|
|
|
|
case 2: // ESC pressed, closes window, abandons changes
|
|
|
case HEBR_CANCEL: // close window, abandon changes
|
|
|
delete this;
|
|
|
break;
|
|
|
}
|
|
|
return state;
|
|
|
}
|
|
|
|
|
|
virtual void OnMouseLoop()
|
|
|
{
|
|
|
this->HandleEditBox(QUERY_EDIT_SIGN_WIDGET_TEXT);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
static const Widget _query_sign_edit_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, STR_NULL, STR_NULL },
|
|
|
{ WWT_EDITBOX, RESIZE_NONE, COLOUR_GREY, 2, 257, 16, 27, STR_SIGN_OSKTITLE, STR_NULL }, // Text field
|
|
|
{ WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 0, 60, 30, 41, STR_012F_OK, STR_NULL },
|
|
|
{ WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 61, 120, 30, 41, STR_012E_CANCEL, STR_NULL },
|
|
|
{ WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 121, 180, 30, 41, STR_0290_DELETE, STR_NULL },
|
|
|
{ WWT_PANEL, RESIZE_NONE, COLOUR_GREY, 181, 237, 30, 41, STR_NULL, STR_NULL },
|
|
|
{ WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 238, 248, 30, 41, STR_6819, STR_PREVIOUS_SIGN_TOOLTIP },
|
|
|
{ WWT_TEXTBTN, RESIZE_NONE, COLOUR_GREY, 249, 259, 30, 41, STR_681A, STR_NEXT_SIGN_TOOLTIP },
|
|
|
{ WIDGETS_END },
|