|
@@ -678,26 +678,32 @@ public:
|
|
|
|
|
|
virtual void OnTimeout()
|
|
|
{
|
|
|
this->RaiseWidget(SLW_SORTBY);
|
|
|
this->SetDirty();
|
|
|
}
|
|
|
|
|
|
virtual void OnResize()
|
|
|
{
|
|
|
this->vscroll->SetCapacityFromWidget(this, SLW_LIST, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM);
|
|
|
}
|
|
|
|
|
|
virtual void OnInvalidateData(int data)
|
|
|
/**
|
|
|
* Some data on this window has become invalid.
|
|
|
* @param data Information about the changed data.
|
|
|
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
|
|
*/
|
|
|
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
|
|
{
|
|
|
if (!gui_scope) return;
|
|
|
/* We can only set the trigger for resorting/rebuilding.
|
|
|
* We cannot safely resort at this point, as there might be multiple scheduled invalidations,
|
|
|
* and a rebuild needs to be done first though it is scheduled later. */
|
|
|
if (data == 0) {
|
|
|
this->stations.ForceRebuild();
|
|
|
} else {
|
|
|
this->stations.ForceResort();
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
|
|
|
Listing CompanyStationsWindow::last_sorting = {false, 0};
|
|
@@ -1442,26 +1448,32 @@ struct SelectStationWindow : Window {
|
|
|
{
|
|
|
if (_thd.dirty & 2) {
|
|
|
_thd.dirty &= ~2;
|
|
|
this->SetDirty();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
virtual void OnResize()
|
|
|
{
|
|
|
this->vscroll->SetCapacityFromWidget(this, JSW_PANEL, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM);
|
|
|
}
|
|
|
|
|
|
virtual void OnInvalidateData(int data)
|
|
|
/**
|
|
|
* Some data on this window has become invalid.
|
|
|
* @param data Information about the changed data.
|
|
|
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
|
|
*/
|
|
|
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
|
|
{
|
|
|
if (!gui_scope) return;
|
|
|
FindStationsNearby<T>(this->area, true);
|
|
|
this->vscroll->SetCount(_stations_nearby_list.Length() + 1);
|
|
|
this->SetDirty();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
static const WindowDesc _select_station_desc(
|
|
|
WDP_AUTO, 200, 180,
|
|
|
WC_SELECT_STATION, WC_NONE,
|
|
|
WDF_CONSTRUCTION,
|
|
|
_nested_select_station_widgets, lengthof(_nested_select_station_widgets)
|
|
|
);
|