Add coverage button to waypoint window

This commit is contained in:
Jonathan G Rennison
2023-05-25 22:35:05 +01:00
parent df5ca1d7fb
commit a419674157
2 changed files with 18 additions and 1 deletions

View File

@@ -109,6 +109,8 @@ public:
~WaypointWindow() ~WaypointWindow()
{ {
DeleteWindowById(GetWindowClassForVehicleType(this->vt), VehicleListIdentifier(VL_STATION_LIST, this->vt, this->owner, this->window_number).Pack(), false); DeleteWindowById(GetWindowClassForVehicleType(this->vt), VehicleListIdentifier(VL_STATION_LIST, this->vt, this->owner, this->window_number).Pack(), false);
SetViewportCatchmentWaypoint(Waypoint::Get(this->window_number), false);
} }
void SetStringParameters(int widget) const override void SetStringParameters(int widget) const override
@@ -116,6 +118,15 @@ public:
if (widget == WID_W_CAPTION) SetDParam(0, this->wp->index); if (widget == WID_W_CAPTION) SetDParam(0, this->wp->index);
} }
void OnPaint() override
{
extern const Waypoint *_viewport_highlight_waypoint;
this->SetWidgetDisabledState(WID_W_CATCHMENT, !this->wp->IsInUse());
this->SetWidgetLoweredState(WID_W_CATCHMENT, _viewport_highlight_waypoint == this->wp);
this->DrawWidgets();
}
void OnClick(Point pt, int widget, int click_count) override void OnClick(Point pt, int widget, int click_count) override
{ {
switch (widget) { switch (widget) {
@@ -140,6 +151,10 @@ public:
ShowWaypointDepartures((StationID)this->wp->index); ShowWaypointDepartures((StationID)this->wp->index);
break; break;
case WID_W_CATCHMENT:
SetViewportCatchmentWaypoint(Waypoint::Get(this->window_number), !this->IsWidgetLowered(WID_W_CATCHMENT));
break;
case WID_W_TOGGLE_HIDDEN: case WID_W_TOGGLE_HIDDEN:
DoCommandP(0, this->window_number, HasBit(this->wp->waypoint_flags, WPF_HIDE_LABEL) ? 0 : 1, CMD_SET_WAYPOINT_LABEL_HIDDEN | CMD_MSG(STR_ERROR_CAN_T_CHANGE_WAYPOINT_NAME)); DoCommandP(0, this->window_number, HasBit(this->wp->waypoint_flags, WPF_HIDE_LABEL) ? 0 : 1, CMD_SET_WAYPOINT_LABEL_HIDDEN | CMD_MSG(STR_ERROR_CAN_T_CHANGE_WAYPOINT_NAME));
break; break;
@@ -219,7 +234,8 @@ static const NWidgetPart _nested_waypoint_view_widgets[] = {
EndContainer(), EndContainer(),
EndContainer(), EndContainer(),
NWidget(NWID_HORIZONTAL), NWidget(NWID_HORIZONTAL),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_W_DEPARTURES), SetMinimalSize(100, 12), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_STATION_VIEW_DEPARTURES_BUTTON, STR_STATION_VIEW_DEPARTURES_TOOLTIP), NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_W_DEPARTURES), SetMinimalSize(50, 12), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_STATION_VIEW_DEPARTURES_BUTTON, STR_STATION_VIEW_DEPARTURES_TOOLTIP),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_W_CATCHMENT), SetMinimalSize(50, 12), SetResize(1, 0), SetFill(1, 1), SetDataTip(STR_BUTTON_CATCHMENT, STR_TOOLTIP_CATCHMENT),
NWidget(NWID_SELECTION, INVALID_COLOUR, WID_W_TOGGLE_HIDDEN_SEL), NWidget(NWID_SELECTION, INVALID_COLOUR, WID_W_TOGGLE_HIDDEN_SEL),
NWidget(WWT_IMGBTN, COLOUR_GREY, WID_W_TOGGLE_HIDDEN), SetMinimalSize(15, 12), SetDataTip(SPR_MISC_GUI_BASE, STR_WAYPOINT_VIEW_HIDE_VIEWPORT_LABEL), NWidget(WWT_IMGBTN, COLOUR_GREY, WID_W_TOGGLE_HIDDEN), SetMinimalSize(15, 12), SetDataTip(SPR_MISC_GUI_BASE, STR_WAYPOINT_VIEW_HIDE_VIEWPORT_LABEL),
EndContainer(), EndContainer(),

View File

@@ -18,6 +18,7 @@ enum WaypointWidgets {
WID_W_RENAME, ///< Rename this waypoint. WID_W_RENAME, ///< Rename this waypoint.
WID_W_SHOW_VEHICLES, ///< Show the vehicles visiting this waypoint. WID_W_SHOW_VEHICLES, ///< Show the vehicles visiting this waypoint.
WID_W_DEPARTURES, ///< Departures button. WID_W_DEPARTURES, ///< Departures button.
WID_W_CATCHMENT, ///< Coverage button.
WID_W_TOGGLE_HIDDEN, ///< Toggle label hidden. WID_W_TOGGLE_HIDDEN, ///< Toggle label hidden.
WID_W_TOGGLE_HIDDEN_SEL, ///< Toggle label hidden selector. WID_W_TOGGLE_HIDDEN_SEL, ///< Toggle label hidden selector.
}; };