Departure board: Refactor string handling

pull/510/head
Jonathan G Rennison 1 year ago
parent 6297012ad6
commit 9c830aadcc

@ -721,8 +721,11 @@ void DeparturesWindow<Twaypoint>::DrawDeparturesListItems(const Rect &r) const
/* Find the maximum width of the status field */
int status_width = cached_status_width;
const StringID size_prefix = _settings_client.gui.departure_larger_font ? STR_JUST_STRING2 : STR_DEPARTURES_TINY;
/* Find the width of the "Calling at:" field. */
int calling_at_width = (GetStringBoundingBox(_settings_client.gui.departure_larger_font ? STR_DEPARTURES_CALLING_AT_LARGE : STR_DEPARTURES_CALLING_AT)).width;
SetDParam(0, STR_DEPARTURES_CALLING_AT);
int calling_at_width = (GetStringBoundingBox(size_prefix)).width;
/* Find the maximum company name width. */
int toc_width = _settings_client.gui.departure_show_company ? this->toc_width : 0;
@ -951,8 +954,9 @@ void DeparturesWindow<Twaypoint>::DrawDeparturesListItems(const Rect &r) const
int bottom_y = y + this->entry_height - small_font_size - (_settings_client.gui.departure_larger_font ? 1 : 3);
/* Calling at */
ltr ? DrawString( text_left, text_left + calling_at_width, bottom_y, _settings_client.gui.departure_larger_font ? STR_DEPARTURES_CALLING_AT_LARGE : STR_DEPARTURES_CALLING_AT)
: DrawString(text_right - calling_at_width, text_right, bottom_y, _settings_client.gui.departure_larger_font ? STR_DEPARTURES_CALLING_AT_LARGE : STR_DEPARTURES_CALLING_AT);
SetDParam(0, STR_DEPARTURES_CALLING_AT);
ltr ? DrawString( text_left, text_left + calling_at_width, bottom_y, size_prefix)
: DrawString(text_right - calling_at_width, text_right, bottom_y, size_prefix);
/* List of stations */
/* RTL languages can be handled in the language file, e.g. by having the following: */
@ -961,13 +965,13 @@ void DeparturesWindow<Twaypoint>::DrawDeparturesListItems(const Rect &r) const
char buffer[512], scratch[512];
if (d->calling_at.size() != 0) {
SetDParam(0, (uint64)(d->calling_at[0]).station);
SetDParam(0, (d->calling_at[0]).station);
GetString(scratch, STR_DEPARTURES_CALLING_AT_FIRST_STATION, lastof(scratch));
StationID continuesTo = INVALID_STATION;
StationID continues_to = INVALID_STATION;
if (d->calling_at[0].station == d->terminus.station && d->calling_at.size() > 1) {
continuesTo = d->calling_at[d->calling_at.size() - 1].station;
continues_to = d->calling_at[d->calling_at.size() - 1].station;
} else if (d->calling_at.size() > 1) {
/* There's more than one stop. */
@ -976,35 +980,32 @@ void DeparturesWindow<Twaypoint>::DrawDeparturesListItems(const Rect &r) const
for (i = 1; i < d->calling_at.size() - 1; ++i) {
StationID s = d->calling_at[i].station;
if (s == d->terminus.station) {
continuesTo = d->calling_at[d->calling_at.size() - 1].station;
continues_to = d->calling_at[d->calling_at.size() - 1].station;
break;
}
SetDParam(0, (uint64)scratch);
SetDParam(1, (uint64)s);
SetDParamStr(0, scratch);
SetDParam(1, s);
GetString(buffer, STR_DEPARTURES_CALLING_AT_STATION, lastof(buffer));
strncpy(scratch, buffer, sizeof(scratch));
}
/* Finally, finish off with " and <station>". */
SetDParam(0, (uint64)scratch);
SetDParam(1, (uint64)d->calling_at[i].station);
SetDParamStr(0, scratch);
SetDParam(1, d->calling_at[i].station);
GetString(buffer, STR_DEPARTURES_CALLING_AT_LAST_STATION, lastof(buffer));
strncpy(scratch, buffer, sizeof(scratch));
}
SetDParam(0, (uint64)scratch);
StringID string;
if (continuesTo == INVALID_STATION) {
string = _settings_client.gui.departure_larger_font ? STR_DEPARTURES_CALLING_AT_LIST_LARGE : STR_DEPARTURES_CALLING_AT_LIST;
SetDParamStr(1, scratch);
if (continues_to == INVALID_STATION) {
SetDParam(0, STR_DEPARTURES_CALLING_AT_LIST);
} else {
SetDParam(1, continuesTo);
string = _settings_client.gui.departure_larger_font ? STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS_LARGE : STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS;
SetDParam(0, STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS);
SetDParam(2, continues_to);
}
GetString(buffer, string, lastof(buffer));
GetString(buffer, size_prefix, lastof(buffer));
} else {
buffer[0] = 0;
//SetDParam(0, d->terminus);
//GetString(scratch, STR_DEPARTURES_CALLING_AT_FIRST_STATION, lastof(scratch));
}
int list_width = (GetStringBoundingBox(buffer, _settings_client.gui.departure_larger_font ? FS_NORMAL : FS_SMALL)).width;

@ -1288,15 +1288,13 @@ STR_DEPARTURES_VIA :{ORANGE}via {ST
STR_DEPARTURES_TOC :{ORANGE}{COMPANY}
STR_DEPARTURES_GROUP :{ORANGE}{GROUP}
STR_DEPARTURES_VEH :{ORANGE}{VEHICLE}
STR_DEPARTURES_CALLING_AT :{TINY_FONT}{ORANGE}Calling at:
STR_DEPARTURES_CALLING_AT_LARGE :{ORANGE}Calling at:
STR_DEPARTURES_CALLING_AT :{ORANGE}Calling at:
STR_DEPARTURES_CALLING_AT_FIRST_STATION :{STATION}
STR_DEPARTURES_CALLING_AT_STATION :{RAW_STRING}, {STATION}
STR_DEPARTURES_CALLING_AT_LAST_STATION :{RAW_STRING} and {STATION}
STR_DEPARTURES_CALLING_AT_LIST :{TINY_FONT}{ORANGE}{RAW_STRING}.
STR_DEPARTURES_CALLING_AT_LIST_LARGE :{ORANGE}{RAW_STRING}.
STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS :{TINY_FONT}{ORANGE}{RAW_STRING}. This service continues to {STATION}.
STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS_LARGE :{ORANGE}{RAW_STRING}. This service continues to {STATION}.
STR_DEPARTURES_CALLING_AT_LIST :{ORANGE}{RAW_STRING}.
STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS :{ORANGE}{RAW_STRING}. This service continues to {STATION}.
STR_DEPARTURES_TINY :{TINY_FONT}{STRING2}
STR_DEPARTURES_TYPE_TRAIN :{ORANGE}{TRAIN}
STR_DEPARTURES_TYPE_TRAIN_SILVER :{SILVER}{TRAIN}

@ -1241,15 +1241,12 @@ STR_DEPARTURES_VIA :{ORANGE}vía {S
STR_DEPARTURES_TOC :{ORANGE}{COMPANY}
STR_DEPARTURES_GROUP :{ORANGE}{GROUP}
STR_DEPARTURES_VEH :{ORANGE}{VEHICLE}
STR_DEPARTURES_CALLING_AT :{TINY_FONT}{ORANGE}Chamando:
STR_DEPARTURES_CALLING_AT_LARGE :{ORANGE}Chamando:
STR_DEPARTURES_CALLING_AT :{ORANGE}Chamando:
STR_DEPARTURES_CALLING_AT_FIRST_STATION :{STATION}
STR_DEPARTURES_CALLING_AT_STATION :{STRING}, {STATION}
STR_DEPARTURES_CALLING_AT_LAST_STATION :{STRING} e {STATION}
STR_DEPARTURES_CALLING_AT_LIST :{TINY_FONT}{ORANGE}{STRING}.
STR_DEPARTURES_CALLING_AT_LIST_LARGE :{ORANGE}{STRING}.
STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS :{TINY_FONT}{ORANGE}{STRING}. Este servizo continúa ata {STATION}.
STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS_LARGE :{ORANGE}{STRING}. Este servizo continúa ata {STATION}.
STR_DEPARTURES_CALLING_AT_LIST :{ORANGE}{STRING}.
STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS :{ORANGE}{STRING}. Este servizo continúa ata {STATION}.
STR_DEPARTURES_TYPE_TRAIN :{ORANGE}{TRAIN}
STR_DEPARTURES_TYPE_TRAIN_SILVER :{SILVER}{TRAIN}

@ -1164,15 +1164,12 @@ STR_DEPARTURES_VIA :{ORANGE}über {
STR_DEPARTURES_TOC :{ORANGE}{COMPANY}
STR_DEPARTURES_GROUP :{ORANGE}{GROUP}
STR_DEPARTURES_VEH :{ORANGE}{VEHICLE}
STR_DEPARTURES_CALLING_AT :{TINY_FONT}{ORANGE}Hält in:
STR_DEPARTURES_CALLING_AT_LARGE :{ORANGE}Hält in:
STR_DEPARTURES_CALLING_AT :{ORANGE}Hält in:
STR_DEPARTURES_CALLING_AT_FIRST_STATION :{STATION}
STR_DEPARTURES_CALLING_AT_STATION :{STRING}, {STATION}
STR_DEPARTURES_CALLING_AT_LAST_STATION :{STRING} und {STATION}
STR_DEPARTURES_CALLING_AT_LIST :{TINY_FONT}{ORANGE}{STRING}.
STR_DEPARTURES_CALLING_AT_LIST_LARGE :{ORANGE}{STRING}.
STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS :{TINY_FONT}{ORANGE}{STRING}. Diese Fahrt verkehrt über {STATION}.
STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS_LARGE :{ORANGE}{STRING}. Diese Fahrt verkehrt über {STATION}.
STR_DEPARTURES_CALLING_AT_LIST :{ORANGE}{STRING}.
STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS :{ORANGE}{STRING}. Diese Fahrt verkehrt über {STATION}.
STR_DEPARTURES_TYPE_TRAIN :{ORANGE}{TRAIN}
STR_DEPARTURES_TYPE_TRAIN_SILVER :{SILVER}{TRAIN}

@ -57,13 +57,11 @@ STR_DEPARTURES_VIA :{ORANGE} {STRIN
STR_DEPARTURES_TOC :{ORANGE}{COMPANY}
STR_DEPARTURES_GROUP :{ORANGE}{GROUP}
STR_DEPARTURES_VEH :{ORANGE}{VEHICLE}
STR_DEPARTURES_CALLING_AT :{TINY_FONT}{ORANGE}停車場:
STR_DEPARTURES_CALLING_AT_LARGE :{ORANGE}停車場:
STR_DEPARTURES_CALLING_AT :{ORANGE}停車場:
STR_DEPARTURES_CALLING_AT_FIRST_STATION :{STATION}
STR_DEPARTURES_CALLING_AT_STATION :{STRING}, {STATION}
STR_DEPARTURES_CALLING_AT_LAST_STATION :{STRING} 終点、{STATION}でございます
STR_DEPARTURES_CALLING_AT_LIST :{TINY_FONT}{ORANGE}{STRING}.
STR_DEPARTURES_CALLING_AT_LIST_LARGE :{ORANGE}{STRING}.
STR_DEPARTURES_CALLING_AT_LIST :{ORANGE}{STRING}.
STR_DEPARTURES_TYPE_TRAIN :{ORANGE}{TRAIN}
STR_DEPARTURES_TYPE_TRAIN_SILVER :{SILVER}{TRAIN}

@ -1241,15 +1241,12 @@ STR_DEPARTURES_VIA :{ORANGE}경유
STR_DEPARTURES_TOC :{ORANGE}{COMPANY}
STR_DEPARTURES_GROUP :{ORANGE}{GROUP}
STR_DEPARTURES_VEH :{ORANGE}{VEHICLE}
STR_DEPARTURES_CALLING_AT :{TINY_FONT}{ORANGE}정차역:
STR_DEPARTURES_CALLING_AT_LARGE :{ORANGE}정차역:
STR_DEPARTURES_CALLING_AT :{ORANGE}정차역:
STR_DEPARTURES_CALLING_AT_FIRST_STATION :{STATION}
STR_DEPARTURES_CALLING_AT_STATION :{STRING}, {STATION}
STR_DEPARTURES_CALLING_AT_LAST_STATION :{STRING}, {STATION}
STR_DEPARTURES_CALLING_AT_LIST :{TINY_FONT}{ORANGE}{STRING}
STR_DEPARTURES_CALLING_AT_LIST_LARGE :{ORANGE}{STRING}
STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS :{TINY_FONT}{ORANGE}{STRING} / {STATION} 반복
STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS_LARGE :{ORANGE}{STRING} / {STATION} 반복
STR_DEPARTURES_CALLING_AT_LIST :{ORANGE}{STRING}
STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS :{ORANGE}{STRING} / {STATION} 반복
STR_DEPARTURES_TYPE_TRAIN :{ORANGE}{TRAIN}
STR_DEPARTURES_TYPE_TRAIN_SILVER :{SILVER}{TRAIN}

@ -1231,15 +1231,12 @@ STR_DEPARTURES_VIA :{ORANGE}经由{
STR_DEPARTURES_TOC :{ORANGE}{COMPANY}
STR_DEPARTURES_GROUP :{ORANGE}{GROUP}
STR_DEPARTURES_VEH :{ORANGE}{VEHICLE}
STR_DEPARTURES_CALLING_AT :{TINY_FONT}{ORANGE}正在呼叫:
STR_DEPARTURES_CALLING_AT_LARGE :{ORANGE}正在呼叫:
STR_DEPARTURES_CALLING_AT :{ORANGE}正在呼叫:
STR_DEPARTURES_CALLING_AT_FIRST_STATION :{STATION}
STR_DEPARTURES_CALLING_AT_STATION :{STRING}、{STATION}
STR_DEPARTURES_CALLING_AT_LAST_STATION :{STRING}和{STATION}
STR_DEPARTURES_CALLING_AT_LIST :{TINY_FONT}{ORANGE}{STRING}。
STR_DEPARTURES_CALLING_AT_LIST_LARGE :{ORANGE}{STRING}。
STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS :{TINY_FONT}{ORANGE}{STRING}。此服务延续到{STATION}。
STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS_LARGE :{ORANGE}{STRING}。此服务延续到{STATION}。
STR_DEPARTURES_CALLING_AT_LIST :{ORANGE}{STRING}。
STR_DEPARTURES_CALLING_AT_LIST_SMART_TERMINUS :{ORANGE}{STRING}。此服务延续到{STATION}。
STR_DEPARTURES_TYPE_TRAIN :{ORANGE}{TRAIN}
STR_DEPARTURES_TYPE_TRAIN_SILVER :{SILVER}{TRAIN}

Loading…
Cancel
Save