OpenTTD Source  20241108-master-g80f628063a
road_gui.cpp File Reference

GUI for building roads. More...

#include "stdafx.h"
#include "gui.h"
#include "window_gui.h"
#include "station_gui.h"
#include "terraform_gui.h"
#include "viewport_func.h"
#include "command_func.h"
#include "road_cmd.h"
#include "station_func.h"
#include "waypoint_func.h"
#include "window_func.h"
#include "vehicle_func.h"
#include "sound_func.h"
#include "company_func.h"
#include "tunnelbridge.h"
#include "tunnelbridge_map.h"
#include "tilehighlight_func.h"
#include "company_base.h"
#include "hotkeys.h"
#include "road_gui.h"
#include "zoom_func.h"
#include "dropdown_type.h"
#include "dropdown_func.h"
#include "engine_base.h"
#include "station_base.h"
#include "waypoint_base.h"
#include "strings_func.h"
#include "core/geometry_func.hpp"
#include "station_cmd.h"
#include "waypoint_cmd.h"
#include "tunnelbridge_cmd.h"
#include "newgrf_roadstop.h"
#include "picker_gui.h"
#include "timer/timer.h"
#include "timer/timer_game_calendar.h"
#include "widgets/road_widget.h"
#include "table/strings.h"
#include "safeguards.h"

Go to the source code of this file.

Data Structures

struct  RoadWaypointPickerSelection
 
struct  RoadStopPickerSelection
 
struct  BuildRoadToolbarWindow
 Road toolbar window handler. More...
 
struct  BuildRoadDepotWindow
 
class  RoadStopPickerCallbacks< roadstoptype >
 
struct  BuildRoadStationWindow
 
class  RoadWaypointPickerCallbacks
 
struct  BuildRoadWaypointWindow
 

Typedefs

typedef void OnButtonClick(Window *w)
 

Functions

static void ShowRVStationPicker (Window *parent, RoadStopType rs)
 
static void ShowRoadDepotPicker (Window *parent)
 
static void ShowBuildRoadWaypointPicker (Window *parent)
 
static bool IsRoadStopEverAvailable (const RoadStopSpec *spec, StationType type)
 
static bool IsRoadStopAvailable (const RoadStopSpec *spec, StationType type)
 Check whether a road stop type can be built. More...
 
void CcPlaySound_CONSTRUCTION_OTHER (Commands, const CommandCost &result, TileIndex tile)
 
static void PlaceRoad_Bridge (TileIndex tile, Window *w)
 Callback to start placing a bridge. More...
 
void CcBuildRoadTunnel (Commands, const CommandCost &result, TileIndex start_tile)
 Callback executed after a build road tunnel command has been called. More...
 
void ConnectRoadToStructure (TileIndex tile, DiagDirection direction)
 If required, connects a new structure to an existing road or tram by building the missing roadbit. More...
 
void CcRoadDepot (Commands, const CommandCost &result, TileIndex tile, RoadType, DiagDirection dir)
 
void CcRoadStop (Commands, const CommandCost &result, TileIndex tile, uint8_t width, uint8_t length, RoadStopType, bool is_drive_through, DiagDirection dir, RoadType, RoadStopClassID spec_class, uint16_t spec_index, StationID, bool)
 Command callback for building road stops. More...
 
static void PlaceRoadStop (TileIndex start_tile, TileIndex end_tile, RoadStopType stop_type, bool adjacent, RoadType rt, StringID err_msg)
 Place a new road stop. More...
 
static void PlaceRoad_Waypoint (TileIndex tile)
 Place a road waypoint. More...
 
static void PlaceRoad_BusStation (TileIndex tile)
 Callback for placing a bus station. More...
 
static void PlaceRoad_TruckStation (TileIndex tile)
 Callback for placing a truck station. More...
 
static void ToggleRoadButton_Remove (Window *w)
 Toggles state of the Remove button of Build road toolbar. More...
 
static bool RoadToolbar_CtrlChanged (Window *w)
 Updates the Remove button because of Ctrl state change. More...
 
WindowShowBuildRoadToolbar (RoadType roadtype)
 Open the build road toolbar window. More...
 
WindowShowBuildRoadScenToolbar (RoadType roadtype)
 Show the road building toolbar in the scenario editor. More...
 
static PickerCallbacksGetRoadStopPickerCallbacks (RoadStopType rs)
 
void InitializeRoadGui ()
 
void InitializeRoadGUI ()
 I really don't know why rail_gui.cpp has this too, shouldn't be included in the other one?
 
DropDownList GetRoadTypeDropDownList (RoadTramTypes rtts, bool for_replacement, bool all_option)
 
DropDownList GetScenRoadTypeDropDownList (RoadTramTypes rtts)
 

Variables

static bool _remove_button_clicked
 
static bool _one_way_button_clicked
 
static Axis _place_road_dir
 
static bool _place_road_start_half_x
 
static bool _place_road_start_half_y
 
static bool _place_road_end_half
 
static RoadType _cur_roadtype
 
static DiagDirection _road_depot_orientation
 
static RoadWaypointPickerSelection _waypoint_gui
 Settings of the road waypoint picker.
 
static RoadStopPickerSelection _roadstop_gui
 
static constexpr NWidgetPart _nested_build_road_widgets []
 
static WindowDesc _build_road_desc (WDP_ALIGN_TOOLBAR, "toolbar_road", 0, 0, WC_BUILD_TOOLBAR, WC_NONE, WDF_CONSTRUCTION, _nested_build_road_widgets, &BuildRoadToolbarWindow::road_hotkeys)
 
static constexpr NWidgetPart _nested_build_tramway_widgets []
 
static WindowDesc _build_tramway_desc (WDP_ALIGN_TOOLBAR, "toolbar_tramway", 0, 0, WC_BUILD_TOOLBAR, WC_NONE, WDF_CONSTRUCTION, _nested_build_tramway_widgets, &BuildRoadToolbarWindow::tram_hotkeys)
 
static constexpr NWidgetPart _nested_build_road_scen_widgets []
 
static WindowDesc _build_road_scen_desc (WDP_AUTO, "toolbar_road_scen", 0, 0, WC_SCEN_BUILD_TOOLBAR, WC_NONE, WDF_CONSTRUCTION, _nested_build_road_scen_widgets, &BuildRoadToolbarWindow::road_hotkeys)
 
static constexpr NWidgetPart _nested_build_tramway_scen_widgets []
 
static WindowDesc _build_tramway_scen_desc (WDP_AUTO, "toolbar_tram_scen", 0, 0, WC_SCEN_BUILD_TOOLBAR, WC_NONE, WDF_CONSTRUCTION, _nested_build_tramway_scen_widgets, &BuildRoadToolbarWindow::tram_hotkeys)
 
static constexpr NWidgetPart _nested_build_road_depot_widgets []
 
static WindowDesc _build_road_depot_desc (WDP_AUTO, nullptr, 0, 0, WC_BUILD_DEPOT, WC_BUILD_TOOLBAR, WDF_CONSTRUCTION, _nested_build_road_depot_widgets)
 
static RoadStopPickerCallbacks< ROADSTOP_BUS_bus_callback_instance ("fav_passenger_roadstops")
 
static RoadStopPickerCallbacks< ROADSTOP_TRUCK_truck_callback_instance ("fav_freight_roadstops")
 
static constexpr NWidgetPart _nested_road_station_picker_widgets []
 Widget definition of the build road station window.
 
static WindowDesc _road_station_picker_desc (WDP_AUTO, "build_station_road", 0, 0, WC_BUS_STATION, WC_BUILD_TOOLBAR, WDF_CONSTRUCTION, _nested_road_station_picker_widgets, &BuildRoadStationWindow::road_hotkeys)
 
static constexpr NWidgetPart _nested_tram_station_picker_widgets []
 Widget definition of the build tram station window. More...
 
static WindowDesc _tram_station_picker_desc (WDP_AUTO, "build_station_tram", 0, 0, WC_BUS_STATION, WC_BUILD_TOOLBAR, WDF_CONSTRUCTION, _nested_tram_station_picker_widgets, &BuildRoadStationWindow::tram_hotkeys)
 
static constexpr NWidgetPart _nested_build_road_waypoint_widgets []
 Nested widget definition for the build NewGRF road waypoint window. More...
 
static WindowDesc _build_road_waypoint_desc (WDP_AUTO, "build_road_waypoint", 0, 0, WC_BUILD_WAYPOINT, WC_BUILD_TOOLBAR, WDF_CONSTRUCTION, _nested_build_road_waypoint_widgets, &BuildRoadWaypointWindow::hotkeys)
 

Detailed Description

GUI for building roads.

Definition in file road_gui.cpp.

Function Documentation

◆ CcBuildRoadTunnel()

void CcBuildRoadTunnel ( Commands  ,
const CommandCost result,
TileIndex  start_tile 
)

Callback executed after a build road tunnel command has been called.

Parameters
resultWhether the build succeeded.
start_tileStarting tile of the tunnel.

Definition at line 140 of file road_gui.cpp.

◆ CcRoadStop()

void CcRoadStop ( Commands  cmd,
const CommandCost result,
TileIndex  tile,
uint8_t  width,
uint8_t  length,
RoadStopType  ,
bool  is_drive_through,
DiagDirection  dir,
RoadType  ,
RoadStopClassID  spec_class,
uint16_t  spec_index,
StationID  ,
bool   
)

Command callback for building road stops.

Parameters
resultResult of the build road stop command.
tileStart tile.
widthWidth of the road stop.
lengthLength of the road stop.
is_drive_throughFalse for normal stops, true for drive-through.
dirEntrance direction (DiagDirection) for normal stops. Converted to the axis for drive-through stops.
spec_classRoad stop spec class.
spec_indexRoad stop spec index.
See also
CmdBuildRoadStop

Definition at line 194 of file road_gui.cpp.

◆ ConnectRoadToStructure()

void ConnectRoadToStructure ( TileIndex  tile,
DiagDirection  direction 
)

If required, connects a new structure to an existing road or tram by building the missing roadbit.

Parameters
tileTile containing the structure to connect.
directionDirection to check.

Definition at line 162 of file road_gui.cpp.

References GetRoadBits(), IsNormalRoadTile(), and TileOffsByDiagDir().

◆ IsRoadStopAvailable()

static bool IsRoadStopAvailable ( const RoadStopSpec spec,
StationType  type 
)
static

Check whether a road stop type can be built.

Returns
true if building is allowed.

Definition at line 101 of file road_gui.cpp.

Referenced by RoadStopPickerCallbacks< roadstoptype >::IsTypeAvailable(), and RoadWaypointPickerCallbacks::IsTypeAvailable().

◆ PlaceRoad_Bridge()

static void PlaceRoad_Bridge ( TileIndex  tile,
Window w 
)
static

Callback to start placing a bridge.

Parameters
tileStart tile of the bridge.

Definition at line 123 of file road_gui.cpp.

References DDSP_BUILD_BRIDGE, GetOtherTunnelBridgeEnd(), IsBridgeTile(), Window::OnPlaceMouseUp(), VPM_X_OR_Y, and VpStartPlaceSizing().

◆ PlaceRoad_BusStation()

static void PlaceRoad_BusStation ( TileIndex  tile)
static

Callback for placing a bus station.

Parameters
tilePosition to place the station.

Definition at line 277 of file road_gui.cpp.

References _remove_button_clicked, DDSP_REMOVE_BUSSTOP, VPM_X_AND_Y, and VpStartPlaceSizing().

◆ PlaceRoad_TruckStation()

static void PlaceRoad_TruckStation ( TileIndex  tile)
static

Callback for placing a truck station.

Parameters
tilePosition to place the station.

Definition at line 295 of file road_gui.cpp.

References _remove_button_clicked, DDSP_REMOVE_TRUCKSTOP, VPM_X_AND_Y, and VpStartPlaceSizing().

◆ PlaceRoad_Waypoint()

static void PlaceRoad_Waypoint ( TileIndex  tile)
static

Place a road waypoint.

Parameters
tilePosition to start dragging a waypoint.

Definition at line 254 of file road_gui.cpp.

References _remove_button_clicked, AXIS_X, DDSP_BUILD_ROAD_WAYPOINT, DDSP_REMOVE_ROAD_WAYPOINT, GetAxisForNewRoadWaypoint(), IsValidAxis(), VPM_X_AND_Y, VPM_X_LIMITED, VPM_Y_LIMITED, and VpStartPlaceSizing().

◆ PlaceRoadStop()

static void PlaceRoadStop ( TileIndex  start_tile,
TileIndex  end_tile,
RoadStopType  stop_type,
bool  adjacent,
RoadType  rt,
StringID  err_msg 
)
static

Place a new road stop.

Parameters
start_tileFirst tile of the area.
end_tileLast tile of the area.
stop_typeType of stop (bus/truck).
adjacentAllow stations directly adjacent to other stations.
rtThe roadtypes.
err_msgError message to show.
See also
CcRoadStop()

Definition at line 228 of file road_gui.cpp.

◆ RoadToolbar_CtrlChanged()

static bool RoadToolbar_CtrlChanged ( Window w)
static

Updates the Remove button because of Ctrl state change.

Parameters
wwindow the button belongs to
Returns
true iff the remove button was changed

Definition at line 328 of file road_gui.cpp.

References Window::IsWidgetDisabled(), Window::IsWidgetLowered(), ToggleRoadButton_Remove(), WID_ROT_AUTOROAD, WID_ROT_REMOVE, and WID_ROT_ROAD_X.

Referenced by BuildRoadToolbarWindow::OnCTRLStateChange().

◆ ShowBuildRoadScenToolbar()

Window* ShowBuildRoadScenToolbar ( RoadType  roadtype)

Show the road building toolbar in the scenario editor.

Returns
The just opened toolbar, or nullptr if the toolbar was already open.

Definition at line 1081 of file road_gui.cpp.

References CloseWindowById(), TRANSPORT_ROAD, and WC_SCEN_BUILD_TOOLBAR.

◆ ShowBuildRoadToolbar()

Window* ShowBuildRoadToolbar ( RoadType  roadtype)

Open the build road toolbar window.

If the terraform toolbar is linked to the toolbar, that window is also opened.

Returns
newly opened road toolbar, or nullptr if the toolbar could not be opened.

Definition at line 994 of file road_gui.cpp.

References _local_company, CloseWindowByClass(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), ValParamRoadType(), and WC_BUILD_TOOLBAR.

◆ ToggleRoadButton_Remove()

static void ToggleRoadButton_Remove ( Window w)
static

Toggles state of the Remove button of Build road toolbar.

Parameters
wwindow the button belongs to

Definition at line 315 of file road_gui.cpp.

References _remove_button_clicked, Window::IsWidgetLowered(), Window::SetWidgetDirty(), Window::ToggleWidgetLoweredState(), and WID_ROT_REMOVE.

Referenced by RoadToolbar_CtrlChanged().

Variable Documentation

◆ _nested_build_road_depot_widgets

constexpr NWidgetPart _nested_build_road_depot_widgets[]
staticconstexpr
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_CAPTION, COLOUR_DARK_GREEN, WID_BROD_CAPTION), SetDataTip(STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PANEL, COLOUR_DARK_GREEN),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_BROD_DEPOT_NW), SetFill(0, 0), SetDataTip(0x0, STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_BROD_DEPOT_SW), SetFill(0, 0), SetDataTip(0x0, STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_BROD_DEPOT_NE), SetFill(0, 0), SetDataTip(0x0, STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_BROD_DEPOT_SE), SetFill(0, 0), SetDataTip(0x0, STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP),
}
static const WidgetDimensions unscaled
Unscaled widget dimensions.
Definition: window_gui.h:67
constexpr NWidgetPart SetFill(uint16_t fill_x, uint16_t fill_y)
Widget part function for setting filling.
Definition: widget_type.h:1181
constexpr NWidgetPart SetPIP(uint8_t pre, uint8_t inter, uint8_t post)
Widget part function for setting a pre/inter/post spaces.
Definition: widget_type.h:1260
constexpr NWidgetPart SetPadding(uint8_t top, uint8_t right, uint8_t bottom, uint8_t left)
Widget part function for setting additional space around a widget.
Definition: widget_type.h:1228
constexpr NWidgetPart SetDataTip(uint32_t data, StringID tip)
Widget part function for setting the data and tooltip.
Definition: widget_type.h:1202
constexpr NWidgetPart NWidget(WidgetType tp, Colours col, WidgetID idx=-1)
Widget part function for starting a new 'real' widget.
Definition: widget_type.h:1309
constexpr NWidgetPart EndContainer()
Widget part function for denoting the end of a container (horizontal, vertical, WWT_FRAME,...
Definition: widget_type.h:1191
constexpr NWidgetPart SetPIPRatio(uint8_t ratio_pre, uint8_t ratio_inter, uint8_t ratio_post)
Widget part function for setting a pre/inter/post ratio.
Definition: widget_type.h:1272
@ WID_BROD_DEPOT_SE
Depot with SE entry.
Definition: road_widget.h:39
@ WID_BROD_DEPOT_NE
Depot with NE entry.
Definition: road_widget.h:38
@ WID_BROD_CAPTION
Caption of the window.
Definition: road_widget.h:37
@ WID_BROD_DEPOT_NW
Depot with NW entry.
Definition: road_widget.h:41
@ WID_BROD_DEPOT_SW
Depot with SW entry.
Definition: road_widget.h:40
@ NWID_HORIZONTAL
Horizontal container.
Definition: widget_type.h:75
@ WWT_TEXTBTN
(Toggle) Button with text
Definition: widget_type.h:55
@ WWT_PANEL
Simple depressed panel.
Definition: widget_type.h:50
@ WWT_CAPTION
Window caption (window title between closebox and stickybox)
Definition: widget_type.h:61
@ NWID_VERTICAL
Vertical container.
Definition: widget_type.h:77
@ WWT_CLOSEBOX
Close box (at top-left of a window)
Definition: widget_type.h:69
@ NWID_HORIZONTAL_LTR
Horizontal container that doesn't change the order of the widgets for RTL languages.
Definition: widget_type.h:76

Definition at line 1147 of file road_gui.cpp.

◆ _nested_build_road_scen_widgets

constexpr NWidgetPart _nested_build_road_scen_widgets[]
staticconstexpr
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_CAPTION, COLOUR_DARK_GREEN, WID_ROT_CAPTION), SetDataTip(STR_JUST_STRING2, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), SetTextStyle(TC_WHITE),
NWidget(WWT_STICKYBOX, COLOUR_DARK_GREEN),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_ROAD_X),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_ROAD_X_DIR, STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_SECTION),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_ROAD_Y),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_ROAD_Y_DIR, STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_SECTION),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_AUTOROAD),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_AUTOROAD, STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOROAD),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_DEMOLISH),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_DYNAMITE, STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC),
NWidget(WWT_PANEL, COLOUR_DARK_GREEN, -1), SetMinimalSize(0, 22), SetFill(1, 1), EndContainer(),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_ONE_WAY),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_ROAD_ONE_WAY, STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_ONE_WAY_ROAD),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_BUILD_BRIDGE),
SetFill(0, 1), SetMinimalSize(43, 22), SetDataTip(SPR_IMG_BRIDGE, STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_BRIDGE),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_BUILD_TUNNEL),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_ROAD_TUNNEL, STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_REMOVE),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_REMOVE, STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_CONVERT_ROAD),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_CONVERT_ROAD, STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD),
}
constexpr NWidgetPart SetTextStyle(TextColour colour, FontSize size=FS_NORMAL)
Widget part function for setting the text style.
Definition: widget_type.h:1160
constexpr NWidgetPart SetMinimalSize(int16_t x, int16_t y)
Widget part function for setting the minimal size.
Definition: widget_type.h:1137
@ WID_ROT_BUILD_BRIDGE
Build bridge.
Definition: road_widget.h:26
@ WID_ROT_CAPTION
Caption of the window.
Definition: road_widget.h:16
@ WID_ROT_ROAD_Y
Build road in y-direction.
Definition: road_widget.h:18
@ WID_ROT_AUTOROAD
Autorail.
Definition: road_widget.h:19
@ WID_ROT_DEMOLISH
Demolish.
Definition: road_widget.h:20
@ WID_ROT_BUILD_TUNNEL
Build tunnel.
Definition: road_widget.h:27
@ WID_ROT_CONVERT_ROAD
Convert road.
Definition: road_widget.h:29
@ WID_ROT_REMOVE
Remove road.
Definition: road_widget.h:28
@ WID_ROT_ONE_WAY
Build one-way road.
Definition: road_widget.h:25
@ WID_ROT_ROAD_X
Build road in x-direction.
Definition: road_widget.h:17
@ WWT_IMGBTN
(Toggle) Button with image
Definition: widget_type.h:52
@ WWT_STICKYBOX
Sticky box (at top-right of a window, after WWT_DEFSIZEBOX)
Definition: widget_type.h:66

Definition at line 1005 of file road_gui.cpp.

◆ _nested_build_road_waypoint_widgets

constexpr NWidgetPart _nested_build_road_waypoint_widgets[]
staticconstexpr
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_CAPTION, COLOUR_DARK_GREEN), SetDataTip(STR_WAYPOINT_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_DEFSIZEBOX, COLOUR_DARK_GREEN),
}
constexpr NWidgetPart NWidgetFunction(NWidgetFunctionType *func_ptr)
Obtain a nested widget (sub)tree from an external source.
Definition: widget_type.h:1330
std::unique_ptr< NWidgetBase > MakePickerTypeWidgets()
Create nested widgets for the type picker widgets.
Definition: picker_gui.cpp:646
std::unique_ptr< NWidgetBase > MakePickerClassWidgets()
Create nested widgets for the class picker widgets.
Definition: picker_gui.cpp:623
@ WWT_SHADEBOX
Shade box (at top-right of a window, between WWT_DEBUGBOX and WWT_DEFSIZEBOX)
Definition: widget_type.h:64
@ WWT_DEFSIZEBOX
Default window size box (at top-right of a window, between WWT_SHADEBOX and WWT_STICKYBOX)
Definition: widget_type.h:65

Nested widget definition for the build NewGRF road waypoint window.

Definition at line 1684 of file road_gui.cpp.

◆ _nested_build_tramway_scen_widgets

constexpr NWidgetPart _nested_build_tramway_scen_widgets[]
staticconstexpr
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_CAPTION, COLOUR_DARK_GREEN, WID_ROT_CAPTION), SetDataTip(STR_JUST_STRING2, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), SetTextStyle(TC_WHITE),
NWidget(WWT_STICKYBOX, COLOUR_DARK_GREEN),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_ROAD_X),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_TRAMWAY_X_DIR, STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_SECTION),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_ROAD_Y),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_TRAMWAY_Y_DIR, STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_SECTION),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_AUTOROAD),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_AUTOTRAM, STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOTRAM),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_DEMOLISH),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_DYNAMITE, STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC),
NWidget(WWT_PANEL, COLOUR_DARK_GREEN, -1), SetMinimalSize(0, 22), SetFill(1, 1), EndContainer(),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_BUILD_BRIDGE),
SetFill(0, 1), SetMinimalSize(43, 22), SetDataTip(SPR_IMG_BRIDGE, STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_BRIDGE),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_BUILD_TUNNEL),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_ROAD_TUNNEL, STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_REMOVE),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_REMOVE, STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_ROT_CONVERT_ROAD),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_CONVERT_ROAD, STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM),
}

Definition at line 1042 of file road_gui.cpp.

◆ _nested_tram_station_picker_widgets

constexpr NWidgetPart _nested_tram_station_picker_widgets[]
staticconstexpr
Initial value:
= {
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_CAPTION, COLOUR_DARK_GREEN, WID_BROS_CAPTION),
NWidget(WWT_SHADEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_DEFSIZEBOX, COLOUR_DARK_GREEN),
NWidget(WWT_PANEL, COLOUR_DARK_GREEN),
NWidget(WWT_LABEL, COLOUR_DARK_GREEN), SetDataTip(STR_STATION_BUILD_COVERAGE_AREA_TITLE, STR_NULL), SetFill(1, 0),
SetDataTip(STR_STATION_BUILD_COVERAGE_OFF, STR_STATION_BUILD_COVERAGE_AREA_OFF_TOOLTIP),
SetDataTip(STR_STATION_BUILD_COVERAGE_ON, STR_STATION_BUILD_COVERAGE_AREA_ON_TOOLTIP),
}
constexpr NWidgetPart SetMinimalTextLines(uint8_t lines, uint8_t spacing, FontSize size=FS_NORMAL)
Widget part function for setting the minimal text lines.
Definition: widget_type.h:1149
constexpr NWidgetPart SetResize(int16_t dx, int16_t dy)
Widget part function for setting the resize step.
Definition: widget_type.h:1126
@ WID_BROS_LT_ON
Turn on area highlight.
Definition: road_widget.h:55
@ WID_BROS_ACCEPTANCE
Station acceptance info.
Definition: road_widget.h:56
@ WID_BROS_STATION_X
Drive-through station in x-direction.
Definition: road_widget.h:52
@ WID_BROS_CAPTION
Caption of the window.
Definition: road_widget.h:47
@ WID_BROS_STATION_Y
Drive-through station in y-direction.
Definition: road_widget.h:53
@ WID_BROS_LT_OFF
Turn off area highlight.
Definition: road_widget.h:54
@ WWT_LABEL
Centered label.
Definition: widget_type.h:57
@ WWT_EMPTY
Empty widget, place holder to reserve space in widget tree.
Definition: widget_type.h:48

Widget definition of the build tram station window.

Definition at line 1553 of file road_gui.cpp.