29 #include "table/strings.h"
34 static const NWidgetPart _nested_errmsg_widgets[] = {
48 _nested_errmsg_widgets,
lengthof(_nested_errmsg_widgets)
51 static const NWidgetPart _nested_errmsg_face_widgets[] = {
58 NWidget(
WWT_EMPTY, COLOUR_RED,
WID_EM_FACE),
SetMinimalSize(92, 119),
SetFill(0, 1),
SetPadding(2, 0, 1, 0),
68 _nested_errmsg_face_widgets,
lengthof(_nested_errmsg_face_widgets)
105 textref_stack_grffile(textref_stack_grffile),
106 textref_stack_size(textref_stack_size),
107 summary_msg(summary_msg),
108 detailed_msg(detailed_msg),
117 if (textref_stack_size > 0)
MemCpyT(this->textref_stack, textref_stack, textref_stack_size);
137 if (this->detailed_msg == STR_ERROR_OWNED_BY) {
199 size->height =
max(size->height, panel_height);
204 size->width =
max(size->width, face_size.width);
205 size->height =
max(size->height, face_size.height);
214 if (this->
position.x == 0 && this->position.y == 0) {
215 Point pt = {(_screen.width - sm_width) >> 1, (_screen.height - sm_height) >> 1};
230 pt.x = (pt.x < (_screen.width >> 1)) ? _screen.width - sm_width - 20 : 20;
234 pt.y = (pt.y < (_screen.height >> 1)) ? scr_bot - sm_height : scr_top;
273 this->summary_msg, TC_FROMSTRING,
SA_CENTER);
306 if (this->
duration == 0)
delete this;
345 _window_system_initialized =
true;
346 if (!_error_list.empty()) {
348 _error_list.pop_front();
360 if (_window_system_initialized && w != NULL) {
361 if (w->
IsCritical()) _error_list.push_front(*w);
362 _window_system_initialized =
false;
380 assert(textref_stack_size == 0 || (textref_stack_grffile != NULL && textref_stack != NULL));
381 if (summary_msg == STR_NULL) summary_msg = STR_EMPTY;
387 if (textref_stack_size > 0)
StartTextRefStackUsage(textref_stack_grffile, textref_stack_size, textref_stack);
389 char *b = GetString(buf, summary_msg,
lastof(buf));
392 GetString(b, detailed_msg,
lastof(buf));
416 _error_list.push_back(data);
432 _error_list.splice(_error_list.end(), datas);
442 _error_list.push_back(data);