Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -59,7 +59,7 @@ struct SignList {
|
||||
{
|
||||
if (!this->signs.NeedRebuild()) return;
|
||||
|
||||
DEBUG(misc, 3, "Building sign list");
|
||||
Debug(misc, 3, "Building sign list");
|
||||
|
||||
this->signs.clear();
|
||||
|
||||
@@ -196,14 +196,16 @@ struct SignListWindow : Window, SignList {
|
||||
switch (widget) {
|
||||
case WID_SIL_LIST: {
|
||||
uint y = r.top + WD_FRAMERECT_TOP; // Offset from top of widget.
|
||||
uint text_offset_y = (this->resize.step_height - FONT_HEIGHT_NORMAL + 1) / 2;
|
||||
/* No signs? */
|
||||
if (this->vscroll->GetCount() == 0) {
|
||||
DrawString(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, y, STR_STATION_LIST_NONE);
|
||||
DrawString(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, y + text_offset_y, STR_STATION_LIST_NONE);
|
||||
return;
|
||||
}
|
||||
|
||||
Dimension d = GetSpriteSize(SPR_COMPANY_ICON);
|
||||
bool rtl = _current_text_dir == TD_RTL;
|
||||
int sprite_offset_y = (FONT_HEIGHT_NORMAL - 10) / 2 + 1;
|
||||
int sprite_offset_y = (this->resize.step_height - d.height + 1) / 2;
|
||||
uint icon_left = 4 + (rtl ? r.right - this->text_offset : r.left);
|
||||
uint text_left = r.left + (rtl ? WD_FRAMERECT_LEFT : this->text_offset);
|
||||
uint text_right = r.right - (rtl ? this->text_offset : WD_FRAMERECT_RIGHT);
|
||||
@@ -215,7 +217,7 @@ struct SignListWindow : Window, SignList {
|
||||
if (si->owner != OWNER_NONE) DrawCompanyIcon(si->owner, icon_left, y + sprite_offset_y);
|
||||
|
||||
SetDParam(0, si->index);
|
||||
DrawString(text_left, text_right, y, STR_SIGN_NAME, TC_YELLOW);
|
||||
DrawString(text_left, text_right, y + text_offset_y, STR_SIGN_NAME, TC_YELLOW);
|
||||
y += this->resize.step_height;
|
||||
}
|
||||
break;
|
||||
@@ -266,7 +268,7 @@ struct SignListWindow : Window, SignList {
|
||||
case WID_SIL_LIST: {
|
||||
Dimension spr_dim = GetSpriteSize(SPR_COMPANY_ICON);
|
||||
this->text_offset = WD_FRAMETEXT_LEFT + spr_dim.width + 2; // 2 pixels space between icon and the sign text.
|
||||
resize->height = std::max<uint>(FONT_HEIGHT_NORMAL, spr_dim.height);
|
||||
resize->height = std::max<uint>(FONT_HEIGHT_NORMAL, spr_dim.height + 2);
|
||||
Dimension d = {(uint)(this->text_offset + WD_FRAMETEXT_RIGHT), WD_FRAMERECT_TOP + 5 * resize->height + WD_FRAMERECT_BOTTOM};
|
||||
*size = maxdim(*size, d);
|
||||
break;
|
||||
@@ -367,8 +369,8 @@ static const NWidgetPart _nested_sign_list_widgets[] = {
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(WWT_PANEL, COLOUR_BROWN, WID_SIL_LIST), SetMinimalSize(WD_FRAMETEXT_LEFT + 16 + 255 + WD_FRAMETEXT_RIGHT, 50),
|
||||
SetResize(1, 10), SetFill(1, 0), SetScrollbar(WID_SIL_SCROLLBAR), EndContainer(),
|
||||
NWidget(WWT_PANEL, COLOUR_BROWN, WID_SIL_LIST), SetMinimalSize(WD_FRAMETEXT_LEFT + 16 + 255 + WD_FRAMETEXT_RIGHT, 0),
|
||||
SetResize(1, 1), SetFill(1, 0), SetScrollbar(WID_SIL_SCROLLBAR), EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_PANEL, COLOUR_BROWN), SetFill(1, 1),
|
||||
NWidget(WWT_EDITBOX, COLOUR_BROWN, WID_SIL_FILTER_TEXT), SetMinimalSize(80, 12), SetResize(1, 0), SetFill(1, 0), SetPadding(2, 2, 2, 2),
|
||||
@@ -527,7 +529,7 @@ struct SignWindow : Window, SignList {
|
||||
FALLTHROUGH;
|
||||
|
||||
case WID_QES_CANCEL:
|
||||
delete this;
|
||||
this->Close();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -566,7 +568,7 @@ static WindowDesc _query_sign_edit_desc(
|
||||
void HandleClickOnSign(const Sign *si)
|
||||
{
|
||||
if (citymania::_fn_mod && (si->owner == _local_company || (si->owner == OWNER_DEITY && _game_mode == GM_EDITOR))) {
|
||||
RenameSign(si->index, nullptr);
|
||||
RenameSign(si->index, "");
|
||||
return;
|
||||
}
|
||||
ShowRenameSignWindow(si);
|
||||
@@ -579,7 +581,7 @@ void HandleClickOnSign(const Sign *si)
|
||||
void ShowRenameSignWindow(const Sign *si)
|
||||
{
|
||||
/* Delete all other edit windows */
|
||||
DeleteWindowByClass(WC_QUERY_STRING);
|
||||
CloseWindowByClass(WC_QUERY_STRING);
|
||||
|
||||
new SignWindow(&_query_sign_edit_desc, si);
|
||||
}
|
||||
@@ -592,5 +594,5 @@ void DeleteRenameSignWindow(SignID sign)
|
||||
{
|
||||
SignWindow *w = dynamic_cast<SignWindow *>(FindWindowById(WC_QUERY_STRING, WN_QUERY_STRING_SIGN));
|
||||
|
||||
if (w != nullptr && w->cur_sign == sign) delete w;
|
||||
if (w != nullptr && w->cur_sign == sign) w->Close();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user