|
@@ -85,49 +85,49 @@ struct EnginePreviewWindow : Window {
|
|
|
size->height = GetStringHeight(STR_ENGINE_PREVIEW_MESSAGE, size->width) + WD_PAR_VSEP_WIDE + FONT_HEIGHT_NORMAL + VEHICLE_SPACE;
|
|
|
SetDParam(0, engine);
|
|
|
size->height += GetStringHeight(GetEngineInfoString(engine), size->width);
|
|
|
}
|
|
|
|
|
|
virtual void DrawWidget(const Rect &r, int widget) const
|
|
|
{
|
|
|
if (widget != EPW_QUESTION) return;
|
|
|
|
|
|
EngineID engine = this->window_number;
|
|
|
SetDParam(0, GetEngineCategoryName(engine));
|
|
|
int y = r.top + GetStringHeight(STR_ENGINE_PREVIEW_MESSAGE, r.right - r.top + 1);
|
|
|
y = DrawStringMultiLine(r.left, r.right, r.top, y, STR_ENGINE_PREVIEW_MESSAGE, TC_FROMSTRING, SA_CENTER) + WD_PAR_VSEP_WIDE;
|
|
|
|
|
|
SetDParam(0, engine);
|
|
|
DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_ENGINE_NAME, TC_BLACK, SA_CENTER);
|
|
|
y += FONT_HEIGHT_NORMAL;
|
|
|
|
|
|
DrawVehicleEngine(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, this->width >> 1, y + VEHICLE_SPACE / 2, engine, GetEnginePalette(engine, _local_company));
|
|
|
|
|
|
y += VEHICLE_SPACE;
|
|
|
DrawStringMultiLine(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, r.bottom, GetEngineInfoString(engine), TC_FROMSTRING, SA_CENTER);
|
|
|
}
|
|
|
|
|
|
virtual void OnClick(Point pt, int widget)
|
|
|
virtual void OnClick(Point pt, int widget, int click_count)
|
|
|
{
|
|
|
switch (widget) {
|
|
|
case EPW_YES:
|
|
|
DoCommandP(0, this->window_number, 0, CMD_WANT_ENGINE_PREVIEW);
|
|
|
/* Fallthrough */
|
|
|
case EPW_NO:
|
|
|
delete this;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
static const WindowDesc _engine_preview_desc(
|
|
|
WDP_CENTER, 0, 0,
|
|
|
WC_ENGINE_PREVIEW, WC_NONE,
|
|
|
WDF_CONSTRUCTION,
|
|
|
_nested_engine_preview_widgets, lengthof(_nested_engine_preview_widgets)
|
|
|
);
|
|
|
|
|
|
|
|
|
void ShowEnginePreviewWindow(EngineID engine)
|
|
|
{
|
|
|
AllocateWindowDescFront<EnginePreviewWindow>(&_engine_preview_desc, engine);
|
|
|
}
|