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_gui.h Functions/types etc. related to the rail GUI. */
9 
10 #ifndef RAIL_GUI_H
11 #define RAIL_GUI_H
12 
13 #include "rail_type.h"
14 #include "widgets/dropdown_type.h"
15 
16 struct Window *ShowBuildRailToolbar(RailType railtype);
17 void ReinitGuiAfterToggleElrail(bool disable);
18 void ResetSignalVariant(int32 = 0);
19 void InitializeRailGUI();
20 DropDownList GetRailTypeDropDownList(bool for_replacement = false, bool all_option = false);
21 
22 /** Settings for which signals are shown by the signal GUI. */
23 enum SignalGUISettings : uint8 {
24 	SIGNAL_GUI_PATH = 0, ///< Show path signals only.
25 	SIGNAL_GUI_ALL = 1,  ///< Show all signals, including block and presignals.
26 };
27 
28 /** Settings for which signals are cycled through by control-clicking on the signal with the signal tool. */
29 enum SignalCycleSettings : uint8 {
30 	SIGNAL_CYCLE_PATH = 0, ///< Cycle through path signals only.
31 	SIGNAL_CYCLE_ALL = 1,  ///< Cycle through all signals visible.
32 };
33 
34 #endif /* RAIL_GUI_H */
35