1 /* 2 * This file is part of OpenTTD. 3 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. 4 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>. 6 */ 7 8 /** @file rail_widget.h Types related to the rail widgets. */ 9 10 #ifndef WIDGETS_RAIL_WIDGET_H 11 #define WIDGETS_RAIL_WIDGET_H 12 13 /** Widgets of the #BuildRailToolbarWindow class. */ 14 enum RailToolbarWidgets { 15 /* Name starts with RA instead of R, because of collision with RoadToolbarWidgets */ 16 WID_RAT_CAPTION, ///< Caption of the window. 17 WID_RAT_BUILD_NS, ///< Build rail along the game view Y axis. 18 WID_RAT_BUILD_X, ///< Build rail along the game grid X axis. 19 WID_RAT_BUILD_EW, ///< Build rail along the game view X axis. 20 WID_RAT_BUILD_Y, ///< Build rail along the game grid Y axis. 21 WID_RAT_AUTORAIL, ///< Autorail tool. 22 WID_RAT_DEMOLISH, ///< Destroy something with dynamite! 23 WID_RAT_BUILD_DEPOT, ///< Build a depot. 24 WID_RAT_BUILD_WAYPOINT, ///< Build a waypoint. 25 WID_RAT_BUILD_STATION, ///< Build a station. 26 WID_RAT_BUILD_SIGNALS, ///< Build signals. 27 WID_RAT_BUILD_BRIDGE, ///< Build a bridge. 28 WID_RAT_BUILD_TUNNEL, ///< Build a tunnel. 29 WID_RAT_REMOVE, ///< Bulldozer to remove rail. 30 WID_RAT_CONVERT_RAIL, ///< Convert other rail to this type. 31 }; 32 33 /** Widgets of the #BuildRailStationWindow class. */ 34 enum BuildRailStationWidgets { 35 /* Name starts with BRA instead of BR, because of collision with BuildRoadStationWidgets */ 36 WID_BRAS_PLATFORM_DIR_X, ///< Button to select '/' view. 37 WID_BRAS_PLATFORM_DIR_Y, ///< Button to select '\' view. 38 39 WID_BRAS_PLATFORM_NUM_1, ///< Button to select stations with a single platform. 40 WID_BRAS_PLATFORM_NUM_2, ///< Button to select stations with 2 platforms. 41 WID_BRAS_PLATFORM_NUM_3, ///< Button to select stations with 3 platforms. 42 WID_BRAS_PLATFORM_NUM_4, ///< Button to select stations with 4 platforms. 43 WID_BRAS_PLATFORM_NUM_5, ///< Button to select stations with 5 platforms. 44 WID_BRAS_PLATFORM_NUM_6, ///< Button to select stations with 6 platforms. 45 WID_BRAS_PLATFORM_NUM_7, ///< Button to select stations with 7 platforms. 46 47 WID_BRAS_PLATFORM_LEN_1, ///< Button to select single tile length station platforms. 48 WID_BRAS_PLATFORM_LEN_2, ///< Button to select 2 tiles length station platforms. 49 WID_BRAS_PLATFORM_LEN_3, ///< Button to select 3 tiles length station platforms. 50 WID_BRAS_PLATFORM_LEN_4, ///< Button to select 4 tiles length station platforms. 51 WID_BRAS_PLATFORM_LEN_5, ///< Button to select 5 tiles length station platforms. 52 WID_BRAS_PLATFORM_LEN_6, ///< Button to select 6 tiles length station platforms. 53 WID_BRAS_PLATFORM_LEN_7, ///< Button to select 7 tiles length station platforms. 54 55 WID_BRAS_PLATFORM_DRAG_N_DROP, ///< Button to enable drag and drop type station placement. 56 57 WID_BRAS_HIGHLIGHT_OFF, ///< Button for turning coverage highlighting off. 58 WID_BRAS_HIGHLIGHT_ON, ///< Button for turning coverage highlighting on. 59 WID_BRAS_COVERAGE_TEXTS, ///< Empty space for the coverage texts. 60 61 WID_BRAS_MATRIX, ///< Matrix widget displaying the available stations. 62 WID_BRAS_IMAGE, ///< Panel used at each cell of the matrix. 63 WID_BRAS_MATRIX_SCROLL, ///< Scrollbar of the matrix widget. 64 65 WID_BRAS_FILTER_CONTAINER, ///< Container for the filter text box for the station class list. 66 WID_BRAS_FILTER_EDITBOX, ///< Filter text box for the station class list. 67 WID_BRAS_SHOW_NEWST_DEFSIZE, ///< Selection for default-size button for newstation. 68 WID_BRAS_SHOW_NEWST_ADDITIONS, ///< Selection for newstation class selection list. 69 WID_BRAS_SHOW_NEWST_MATRIX, ///< Selection for newstation image matrix. 70 WID_BRAS_SHOW_NEWST_RESIZE, ///< Selection for panel and resize at bottom right for newstation. 71 WID_BRAS_SHOW_NEWST_TYPE, ///< Display of selected station type. 72 WID_BRAS_NEWST_LIST, ///< List with available newstation classes. 73 WID_BRAS_NEWST_SCROLL, ///< Scrollbar of the #WID_BRAS_NEWST_LIST. 74 75 WID_BRAS_PLATFORM_NUM_BEGIN = WID_BRAS_PLATFORM_NUM_1 - 1, ///< Helper for determining the chosen platform width. 76 WID_BRAS_PLATFORM_LEN_BEGIN = WID_BRAS_PLATFORM_LEN_1 - 1, ///< Helper for determining the chosen platform length. 77 }; 78 79 /** Widgets of the #BuildSignalWindow class. */ 80 enum BuildSignalWidgets { 81 WID_BS_CAPTION, ///< Caption for the Signal Selection window. 82 WID_BS_TOGGLE_SIZE, ///< Toggle showing advanced signal types. 83 WID_BS_SEMAPHORE_NORM, ///< Build a semaphore normal block signal. 84 WID_BS_SEMAPHORE_ENTRY, ///< Build a semaphore entry block signal. 85 WID_BS_SEMAPHORE_EXIT, ///< Build a semaphore exit block signal. 86 WID_BS_SEMAPHORE_COMBO, ///< Build a semaphore combo block signal. 87 WID_BS_SEMAPHORE_PBS, ///< Build a semaphore path signal. 88 WID_BS_SEMAPHORE_PBS_OWAY, ///< Build a semaphore one way path signal. 89 WID_BS_ELECTRIC_NORM, ///< Build an electric normal block signal. 90 WID_BS_ELECTRIC_ENTRY, ///< Build an electric entry block signal. 91 WID_BS_ELECTRIC_EXIT, ///< Build an electric exit block signal. 92 WID_BS_ELECTRIC_COMBO, ///< Build an electric combo block signal. 93 WID_BS_ELECTRIC_PBS, ///< Build an electric path signal. 94 WID_BS_ELECTRIC_PBS_OWAY, ///< Build an electric one way path signal. 95 WID_BS_CONVERT, ///< Convert the signal. 96 WID_BS_DRAG_SIGNALS_DENSITY_LABEL, ///< The current signal density. 97 WID_BS_DRAG_SIGNALS_DENSITY_DECREASE, ///< Decrease the signal density. 98 WID_BS_DRAG_SIGNALS_DENSITY_INCREASE, ///< Increase the signal density. 99 WID_BS_SEMAPHORE_NORM_SEL, ///< NWID_SELECTION for WID_BS_SEMAPHORE_NORM. 100 WID_BS_ELECTRIC_NORM_SEL, ///< NWID_SELECTION for WID_BS_ELECTRIC_NORM. 101 WID_BS_SEMAPHORE_ENTRY_SEL, ///< NWID_SELECTION for WID_BS_SEMAPHORE_ENTRY. 102 WID_BS_ELECTRIC_ENTRY_SEL, ///< NWID_SELECTION for WID_BS_ELECTRIC_ENTRY. 103 WID_BS_SEMAPHORE_EXIT_SEL, ///< NWID_SELECTION for WID_BS_SEMAPHORE_EXIT. 104 WID_BS_ELECTRIC_EXIT_SEL, ///< NWID_SELECTION for WID_BS_ELECTRIC_EXIT. 105 WID_BS_SEMAPHORE_COMBO_SEL, ///< NWID_SELECTION for WID_BS_SEMAPHORE_COMBO. 106 WID_BS_ELECTRIC_COMBO_SEL, ///< NWID_SELECTION for WID_BS_ELECTRIC_COMBO. 107 }; 108 109 /** Widgets of the #BuildRailDepotWindow class. */ 110 enum BuildRailDepotWidgets { 111 /* Name starts with BRA instead of BR, because of collision with BuildRoadDepotWidgets */ 112 WID_BRAD_DEPOT_NE, ///< Build a depot with the entrance in the north east. 113 WID_BRAD_DEPOT_SE, ///< Build a depot with the entrance in the south east. 114 WID_BRAD_DEPOT_SW, ///< Build a depot with the entrance in the south west. 115 WID_BRAD_DEPOT_NW, ///< Build a depot with the entrance in the north west. 116 }; 117 118 /** Widgets of the #BuildRailWaypointWindow class. */ 119 enum BuildRailWaypointWidgets { 120 WID_BRW_WAYPOINT_MATRIX, ///< Matrix with waypoints. 121 WID_BRW_WAYPOINT, ///< A single waypoint. 122 WID_BRW_SCROLL, ///< Scrollbar for the matrix. 123 }; 124 125 #endif /* WIDGETS_RAIL_WIDGET_H */ 126