|
@@ -72,49 +72,49 @@ class LandInfoWindow : public Window {
|
|
|
LAND_INFO_CENTERED_LINES = 12, ///< Up to 12 centered lines
|
|
|
LAND_INFO_MULTICENTER_LINE = LAND_INFO_CENTERED_LINES, ///< One multicenter line
|
|
|
LAND_INFO_LINE_END,
|
|
|
};
|
|
|
|
|
|
static const uint LAND_INFO_LINE_BUFF_SIZE = 512;
|
|
|
|
|
|
public:
|
|
|
char landinfo_data[LAND_INFO_LINE_END][LAND_INFO_LINE_BUFF_SIZE];
|
|
|
TileIndex tile;
|
|
|
|
|
|
virtual void OnPaint()
|
|
|
{
|
|
|
this->DrawWidgets();
|
|
|
}
|
|
|
|
|
|
virtual void DrawWidget(const Rect &r, int widget) const
|
|
|
{
|
|
|
if (widget != LIW_BACKGROUND) return;
|
|
|
|
|
|
uint y = r.top + WD_TEXTPANEL_TOP;
|
|
|
for (uint i = 0; i < LAND_INFO_CENTERED_LINES; i++) {
|
|
|
if (StrEmpty(this->landinfo_data[i])) break;
|
|
|
|
|
|
DrawString(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, y, this->landinfo_data[i], i == 0 ? TC_LIGHT_BLUE : TC_FROMSTRING, SA_CENTER);
|
|
|
DrawString(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, y, this->landinfo_data[i], i == 0 ? TC_LIGHT_BLUE : TC_FROMSTRING, SA_HOR_CENTER);
|
|
|
y += FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL;
|
|
|
if (i == 0) y += 4;
|
|
|
}
|
|
|
|
|
|
if (!StrEmpty(this->landinfo_data[LAND_INFO_MULTICENTER_LINE])) {
|
|
|
SetDParamStr(0, this->landinfo_data[LAND_INFO_MULTICENTER_LINE]);
|
|
|
DrawStringMultiLine(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, y, r.bottom - WD_TEXTPANEL_BOTTOM, STR_JUST_RAW_STRING, TC_FROMSTRING, SA_CENTER);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize)
|
|
|
{
|
|
|
if (widget != LIW_BACKGROUND) return;
|
|
|
|
|
|
size->height = WD_TEXTPANEL_TOP + WD_TEXTPANEL_BOTTOM;
|
|
|
for (uint i = 0; i < LAND_INFO_CENTERED_LINES; i++) {
|
|
|
if (StrEmpty(this->landinfo_data[i])) break;
|
|
|
|
|
|
uint width = GetStringBoundingBox(this->landinfo_data[i]).width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT;
|
|
|
size->width = max(size->width, width);
|
|
|
|
|
|
size->height += FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL;
|
|
|
if (i == 0) size->height += 4;
|
|
|
}
|