summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortruebrain <truebrain@openttd.org>2011-12-15 22:22:55 +0000
committertruebrain <truebrain@openttd.org>2011-12-15 22:22:55 +0000
commit2aa774e831ad1cb7849c998759449ef777c5c664 (patch)
tree37293298be999cb3446fe4af7f11e107bfa17c3d
parentfd559171b4ab5ce09b67aa8c4e9f2d0482a09558 (diff)
downloadopenttd-2aa774e831ad1cb7849c998759449ef777c5c664.tar.xz
(svn r23528) -Codechange: move widget enums to widgets/NNN_type.h
-rw-r--r--projects/openttd_vs100.vcxproj51
-rw-r--r--projects/openttd_vs100.vcxproj.filters153
-rw-r--r--projects/openttd_vs80.vcproj204
-rw-r--r--projects/openttd_vs90.vcproj204
-rw-r--r--source.list51
-rw-r--r--src/ai/ai_gui.cpp52
-rw-r--r--src/airport_gui.cpp25
-rw-r--r--src/autoreplace_gui.cpp27
-rw-r--r--src/bootstrap_gui.cpp9
-rw-r--r--src/bridge_gui.cpp11
-rw-r--r--src/build_vehicle_gui.cpp16
-rw-r--r--src/cheat_gui.cpp7
-rw-r--r--src/company_gui.cpp180
-rw-r--r--src/console_gui.cpp7
-rw-r--r--src/date_gui.cpp9
-rw-r--r--src/depot_gui.cpp24
-rw-r--r--src/dock_gui.cpp16
-rw-r--r--src/engine_gui.cpp9
-rw-r--r--src/error_gui.cpp9
-rw-r--r--src/fios_gui.cpp23
-rw-r--r--src/genworld_gui.cpp82
-rw-r--r--src/graph_gui.cpp54
-rw-r--r--src/group_gui.cpp23
-rw-r--r--src/highscore_gui.cpp4
-rw-r--r--src/industry_gui.cpp36
-rw-r--r--src/intro_gui.cpp24
-rw-r--r--src/main_gui.cpp7
-rw-r--r--src/misc_gui.cpp33
-rw-r--r--src/music_gui.cpp38
-rw-r--r--src/network/network_chat_gui.cpp11
-rw-r--r--src/network/network_content_gui.cpp28
-rw-r--r--src/network/network_content_gui.h7
-rw-r--r--src/network/network_gui.cpp113
-rw-r--r--src/newgrf_debug_gui.cpp28
-rw-r--r--src/newgrf_gui.cpp61
-rw-r--r--src/news_gui.cpp56
-rw-r--r--src/object_gui.cpp16
-rw-r--r--src/order_gui.cpp31
-rw-r--r--src/osk_gui.cpp30
-rw-r--r--src/rail_gui.cpp101
-rw-r--r--src/road_gui.cpp42
-rw-r--r--src/settings_gui.cpp61
-rw-r--r--src/signs_gui.cpp23
-rw-r--r--src/smallmap_gui.cpp24
-rw-r--r--src/station_gui.cpp31
-rw-r--r--src/station_gui.h17
-rw-r--r--src/statusbar_gui.cpp8
-rw-r--r--src/subsidy_gui.cpp8
-rw-r--r--src/terraform_gui.cpp36
-rw-r--r--src/timetable_gui.cpp20
-rw-r--r--src/toolbar_gui.cpp59
-rw-r--r--src/town_gui.cpp56
-rw-r--r--src/transparency_gui.cpp21
-rw-r--r--src/tree_gui.cpp20
-rw-r--r--src/vehicle_gui.cpp43
-rw-r--r--src/vehicle_gui.h18
-rw-r--r--src/viewport_gui.cpp12
-rw-r--r--src/waypoint_gui.cpp11
-rw-r--r--src/widgets/ai_widget.h65
-rw-r--r--src/widgets/airport_widget.h37
-rw-r--r--src/widgets/autoreplace_widget.h40
-rw-r--r--src/widgets/bootstrap_widget.h22
-rw-r--r--src/widgets/bridge_widget.h24
-rw-r--r--src/widgets/build_vehicle_widget.h30
-rw-r--r--src/widgets/cheat_widget.h20
-rw-r--r--src/widgets/company_widget.h191
-rw-r--r--src/widgets/console_widget.h20
-rw-r--r--src/widgets/date_widget.h23
-rw-r--r--src/widgets/depot_widget.h37
-rw-r--r--src/widgets/dock_widget.h29
-rw-r--r--src/widgets/dropdown.cpp9
-rw-r--r--src/widgets/dropdown_widget.h22
-rw-r--r--src/widgets/engine_widget.h22
-rw-r--r--src/widgets/error_widget.h22
-rw-r--r--src/widgets/fios_widget.h36
-rw-r--r--src/widgets/genworld_widget.h93
-rw-r--r--src/widgets/graph_widget.h66
-rw-r--r--src/widgets/group_widget.h37
-rw-r--r--src/widgets/highscore_widget.h20
-rw-r--r--src/widgets/industry_widget.h50
-rw-r--r--src/widgets/intro_widget.h38
-rw-r--r--src/widgets/main_widget.h20
-rw-r--r--src/widgets/misc_widget.h48
-rw-r--r--src/widgets/music_widget.h53
-rw-r--r--src/widgets/network_chat_widget.h25
-rw-r--r--src/widgets/network_content_widget.h47
-rw-r--r--src/widgets/network_widget.h128
-rw-r--r--src/widgets/newgrf_debug_widget.h40
-rw-r--r--src/widgets/newgrf_widget.h73
-rw-r--r--src/widgets/news_widget.h70
-rw-r--r--src/widgets/object_widget.h29
-rw-r--r--src/widgets/order_widget.h44
-rw-r--r--src/widgets/osk_widget.h43
-rw-r--r--src/widgets/rail_widget.h112
-rw-r--r--src/widgets/road_widget.h54
-rw-r--r--src/widgets/settings_widget.h73
-rw-r--r--src/widgets/sign_widget.h36
-rw-r--r--src/widgets/smallmap_widget.h37
-rw-r--r--src/widgets/station_widget.h62
-rw-r--r--src/widgets/statusbar_widget.h22
-rw-r--r--src/widgets/subsidy_widget.h21
-rw-r--r--src/widgets/terraform_widget.h49
-rw-r--r--src/widgets/timetable_widget.h34
-rw-r--r--src/widgets/toolbar_widget.h72
-rw-r--r--src/widgets/town_widget.h70
-rw-r--r--src/widgets/transparency_widget.h34
-rw-r--r--src/widgets/tree_widget.h33
-rw-r--r--src/widgets/vehicle_widget.h77
-rw-r--r--src/widgets/viewport_widget.h25
-rw-r--r--src/widgets/waypoint_widget.h24
-rw-r--r--src/window_type.h1
111 files changed, 3165 insertions, 1624 deletions
diff --git a/projects/openttd_vs100.vcxproj b/projects/openttd_vs100.vcxproj
index 783bf2ee7..ff0ec9a9c 100644
--- a/projects/openttd_vs100.vcxproj
+++ b/projects/openttd_vs100.vcxproj
@@ -687,9 +687,60 @@
<ClCompile Include="..\src\vehicle_gui.cpp" />
<ClCompile Include="..\src\viewport_gui.cpp" />
<ClCompile Include="..\src\waypoint_gui.cpp" />
+ <ClInclude Include="..\src\widgets\airport_widget.h" />
+ <ClInclude Include="..\src\widgets\ai_widget.h" />
+ <ClInclude Include="..\src\widgets\autoreplace_widget.h" />
+ <ClInclude Include="..\src\widgets\bootstrap_widget.h" />
+ <ClInclude Include="..\src\widgets\bridge_widget.h" />
+ <ClInclude Include="..\src\widgets\build_vehicle_widget.h" />
+ <ClInclude Include="..\src\widgets\cheat_widget.h" />
+ <ClInclude Include="..\src\widgets\company_widget.h" />
+ <ClInclude Include="..\src\widgets\console_widget.h" />
+ <ClInclude Include="..\src\widgets\date_widget.h" />
+ <ClInclude Include="..\src\widgets\depot_widget.h" />
+ <ClInclude Include="..\src\widgets\dock_widget.h" />
<ClCompile Include="..\src\widgets\dropdown.cpp" />
<ClInclude Include="..\src\widgets\dropdown_func.h" />
<ClInclude Include="..\src\widgets\dropdown_type.h" />
+ <ClInclude Include="..\src\widgets\dropdown_widget.h" />
+ <ClInclude Include="..\src\widgets\engine_widget.h" />
+ <ClInclude Include="..\src\widgets\error_widget.h" />
+ <ClInclude Include="..\src\widgets\fios_widget.h" />
+ <ClInclude Include="..\src\widgets\genworld_widget.h" />
+ <ClInclude Include="..\src\widgets\graph_widget.h" />
+ <ClInclude Include="..\src\widgets\group_widget.h" />
+ <ClInclude Include="..\src\widgets\highscore_widget.h" />
+ <ClInclude Include="..\src\widgets\industry_widget.h" />
+ <ClInclude Include="..\src\widgets\intro_widget.h" />
+ <ClInclude Include="..\src\widgets\main_widget.h" />
+ <ClInclude Include="..\src\widgets\misc_widget.h" />
+ <ClInclude Include="..\src\widgets\music_widget.h" />
+ <ClInclude Include="..\src\widgets\network_chat_widget.h" />
+ <ClInclude Include="..\src\widgets\network_content_widget.h" />
+ <ClInclude Include="..\src\widgets\network_widget.h" />
+ <ClInclude Include="..\src\widgets\newgrf_debug_widget.h" />
+ <ClInclude Include="..\src\widgets\newgrf_widget.h" />
+ <ClInclude Include="..\src\widgets\news_widget.h" />
+ <ClInclude Include="..\src\widgets\object_widget.h" />
+ <ClInclude Include="..\src\widgets\order_widget.h" />
+ <ClInclude Include="..\src\widgets\osk_widget.h" />
+ <ClInclude Include="..\src\widgets\rail_widget.h" />
+ <ClInclude Include="..\src\widgets\road_widget.h" />
+ <ClInclude Include="..\src\widgets\settings_widget.h" />
+ <ClInclude Include="..\src\widgets\sign_widget.h" />
+ <ClInclude Include="..\src\widgets\smallmap_widget.h" />
+ <ClInclude Include="..\src\widgets\station_widget.h" />
+ <ClInclude Include="..\src\widgets\statusbar_widget.h" />
+ <ClInclude Include="..\src\widgets\subsidy_widget.h" />
+ <ClInclude Include="..\src\widgets\terraform_widget.h" />
+ <ClInclude Include="..\src\widgets\timetable_widget.h" />
+ <ClInclude Include="..\src\widgets\toolbar_widget.h" />
+ <ClInclude Include="..\src\widgets\town_widget.h" />
+ <ClInclude Include="..\src\widgets\transparency_widget.h" />
+ <ClInclude Include="..\src\widgets\tree_widget.h" />
+ <ClInclude Include="..\src\widgets\vehicle_widget.h" />
+ <ClInclude Include="..\src\widgets\viewport_widget.h" />
+ <ClInclude Include="..\src\widgets\waypoint_widget.h" />
<ClCompile Include="..\src\aircraft_cmd.cpp" />
<ClCompile Include="..\src\autoreplace_cmd.cpp" />
<ClCompile Include="..\src\clear_cmd.cpp" />
diff --git a/projects/openttd_vs100.vcxproj.filters b/projects/openttd_vs100.vcxproj.filters
index 0ccd7e758..a90e8d8d1 100644
--- a/projects/openttd_vs100.vcxproj.filters
+++ b/projects/openttd_vs100.vcxproj.filters
@@ -1284,6 +1284,42 @@
<ClCompile Include="..\src\waypoint_gui.cpp">
<Filter>GUI Source Code</Filter>
</ClCompile>
+ <ClInclude Include="..\src\widgets\airport_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\ai_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\autoreplace_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\bootstrap_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\bridge_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\build_vehicle_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\cheat_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\company_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\console_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\date_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\depot_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\dock_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
<ClCompile Include="..\src\widgets\dropdown.cpp">
<Filter>Widgets</Filter>
</ClCompile>
@@ -1293,6 +1329,123 @@
<ClInclude Include="..\src\widgets\dropdown_type.h">
<Filter>Widgets</Filter>
</ClInclude>
+ <ClInclude Include="..\src\widgets\dropdown_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\engine_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\error_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\fios_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\genworld_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\graph_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\group_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\highscore_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\industry_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\intro_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\main_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\misc_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\music_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\network_chat_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\network_content_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\network_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\newgrf_debug_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\newgrf_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\news_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\object_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\order_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\osk_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\rail_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\road_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\settings_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\sign_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\smallmap_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\station_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\statusbar_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\subsidy_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\terraform_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\timetable_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\toolbar_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\town_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\transparency_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\tree_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\vehicle_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\viewport_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
+ <ClInclude Include="..\src\widgets\waypoint_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
<ClCompile Include="..\src\aircraft_cmd.cpp">
<Filter>Command handlers</Filter>
</ClCompile>
diff --git a/projects/openttd_vs80.vcproj b/projects/openttd_vs80.vcproj
index 5e183e883..f60e5fa07 100644
--- a/projects/openttd_vs80.vcproj
+++ b/projects/openttd_vs80.vcproj
@@ -2035,6 +2035,54 @@
Name="Widgets"
>
<File
+ RelativePath=".\..\src\widgets\airport_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\ai_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\autoreplace_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\bootstrap_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\bridge_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\build_vehicle_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\cheat_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\company_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\console_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\date_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\depot_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\dock_widget.h"
+ >
+ </File>
+ <File
RelativePath=".\..\src\widgets\dropdown.cpp"
>
</File>
@@ -2046,6 +2094,162 @@
RelativePath=".\..\src\widgets\dropdown_type.h"
>
</File>
+ <File
+ RelativePath=".\..\src\widgets\dropdown_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\engine_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\error_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\fios_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\genworld_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\graph_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\group_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\highscore_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\industry_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\intro_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\main_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\misc_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\music_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\network_chat_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\network_content_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\network_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\newgrf_debug_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\newgrf_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\news_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\object_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\order_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\osk_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\rail_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\road_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\settings_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\sign_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\smallmap_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\station_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\statusbar_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\subsidy_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\terraform_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\timetable_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\toolbar_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\town_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\transparency_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\tree_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\vehicle_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\viewport_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\waypoint_widget.h"
+ >
+ </File>
</Filter>
<Filter
Name="Command handlers"
diff --git a/projects/openttd_vs90.vcproj b/projects/openttd_vs90.vcproj
index f5a055842..636b9f131 100644
--- a/projects/openttd_vs90.vcproj
+++ b/projects/openttd_vs90.vcproj
@@ -2032,6 +2032,54 @@
Name="Widgets"
>
<File
+ RelativePath=".\..\src\widgets\airport_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\ai_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\autoreplace_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\bootstrap_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\bridge_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\build_vehicle_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\cheat_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\company_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\console_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\date_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\depot_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\dock_widget.h"
+ >
+ </File>
+ <File
RelativePath=".\..\src\widgets\dropdown.cpp"
>
</File>
@@ -2043,6 +2091,162 @@
RelativePath=".\..\src\widgets\dropdown_type.h"
>
</File>
+ <File
+ RelativePath=".\..\src\widgets\dropdown_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\engine_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\error_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\fios_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\genworld_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\graph_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\group_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\highscore_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\industry_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\intro_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\main_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\misc_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\music_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\network_chat_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\network_content_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\network_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\newgrf_debug_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\newgrf_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\news_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\object_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\order_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\osk_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\rail_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\road_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\settings_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\sign_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\smallmap_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\station_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\statusbar_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\subsidy_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\terraform_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\timetable_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\toolbar_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\town_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\transparency_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\tree_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\vehicle_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\viewport_widget.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\widgets\waypoint_widget.h"
+ >
+ </File>
</Filter>
<Filter
Name="Command handlers"
diff --git a/source.list b/source.list
index 628153da4..1de4d68b5 100644
--- a/source.list
+++ b/source.list
@@ -441,9 +441,60 @@ viewport_gui.cpp
waypoint_gui.cpp
# Widgets
+widgets/airport_widget.h
+widgets/ai_widget.h
+widgets/autoreplace_widget.h
+widgets/bootstrap_widget.h
+widgets/bridge_widget.h
+widgets/build_vehicle_widget.h
+widgets/cheat_widget.h
+widgets/company_widget.h
+widgets/console_widget.h
+widgets/date_widget.h
+widgets/depot_widget.h
+widgets/dock_widget.h
widgets/dropdown.cpp
widgets/dropdown_func.h
widgets/dropdown_type.h
+widgets/dropdown_widget.h
+widgets/engine_widget.h
+widgets/error_widget.h
+widgets/fios_widget.h
+widgets/genworld_widget.h
+widgets/graph_widget.h
+widgets/group_widget.h
+widgets/highscore_widget.h
+widgets/industry_widget.h
+widgets/intro_widget.h
+widgets/main_widget.h
+widgets/misc_widget.h
+widgets/music_widget.h
+widgets/network_chat_widget.h
+widgets/network_content_widget.h
+widgets/network_widget.h
+widgets/newgrf_debug_widget.h
+widgets/newgrf_widget.h
+widgets/news_widget.h
+widgets/object_widget.h
+widgets/order_widget.h
+widgets/osk_widget.h
+widgets/rail_widget.h
+widgets/road_widget.h
+widgets/settings_widget.h
+widgets/sign_widget.h
+widgets/smallmap_widget.h
+widgets/station_widget.h
+widgets/statusbar_widget.h
+widgets/subsidy_widget.h
+widgets/terraform_widget.h
+widgets/timetable_widget.h
+widgets/toolbar_widget.h
+widgets/town_widget.h
+widgets/transparency_widget.h
+widgets/tree_widget.h
+widgets/vehicle_widget.h
+widgets/viewport_widget.h
+widgets/waypoint_widget.h
# Command handlers
aircraft_cmd.cpp
diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp
index 7d7ca7d57..4c134bf55 100644
--- a/src/ai/ai_gui.cpp
+++ b/src/ai/ai_gui.cpp
@@ -32,19 +32,12 @@
#include "ai_info.hpp"
#include "ai_instance.hpp"
+#include "../widgets/ai_widget.h"
+
#include "table/strings.h"
#include <vector>
-/** Enum referring to the widgets of the AI list window */
-enum AIListWindowWidgets {
- AIL_WIDGET_LIST, ///< The matrix with all available AIs
- AIL_WIDGET_SCROLLBAR, ///< Scrollbar next to the AI list
- AIL_WIDGET_INFO_BG, ///< Panel to draw some AI information on
- AIL_WIDGET_ACCEPT, ///< Accept button
- AIL_WIDGET_CANCEL, ///< Cancel button
-};
-
/**
* Window that let you choose an available AI.
*/
@@ -254,14 +247,6 @@ static void ShowAIListWindow(CompanyID slot)
new AIListWindow(&_ai_list_desc, slot);
}
-/** Enum referring to the widgets of the AI settings window */
-enum AISettingsWindowWidgets {
- AIS_WIDGET_BACKGROUND, ///< Panel to draw the settings on
- AIS_WIDGET_SCROLLBAR, ///< Scrollbar to scroll through all settings
- AIS_WIDGET_ACCEPT, ///< Accept button
- AIS_WIDGET_RESET, ///< Reset button
-};
-
/**
* Window for settings the parameters of an AI.
*/
@@ -541,22 +526,6 @@ static void ShowAISettingsWindow(CompanyID slot)
new AISettingsWindow(&_ai_settings_desc, slot);
}
-/** Enum referring to the widgets of the AI config window */
-enum AIConfigWindowWidgets {
- AIC_WIDGET_BACKGROUND, ///< Window background
- AIC_WIDGET_DECREASE, ///< Decrease the number of AIs
- AIC_WIDGET_INCREASE, ///< Increase the number of AIs
- AIC_WIDGET_NUMBER, ///< Number of AIs
- AIC_WIDGET_LIST, ///< List with currently selected AIs
- AIC_WIDGET_SCROLLBAR, ///< Scrollbar to scroll through the selected AIs
- AIC_WIDGET_MOVE_UP, ///< Move up button
- AIC_WIDGET_MOVE_DOWN, ///< Move down button
- AIC_WIDGET_CHANGE, ///< Select another AI button
- AIC_WIDGET_CONFIGURE, ///< Change AI settings button
- AIC_WIDGET_CLOSE, ///< Close window button
- AIC_WIDGET_CONTENT_DOWNLOAD, ///< Download content button
-};
-
/** Widgets for the configure AI window. */
static const NWidgetPart _nested_ai_config_widgets[] = {
NWidget(NWID_HORIZONTAL),
@@ -781,23 +750,6 @@ void ShowAIConfigWindow()
new AIConfigWindow();
}
-/** Enum referring to the widgets of the AI debug window */
-enum AIDebugWindowWidgets {
- AID_WIDGET_VIEW,
- AID_WIDGET_NAME_TEXT,
- AID_WIDGET_SETTINGS,
- AID_WIDGET_RELOAD_TOGGLE,
- AID_WIDGET_LOG_PANEL,
- AID_WIDGET_SCROLLBAR,
- AID_WIDGET_COMPANY_BUTTON_START,
- AID_WIDGET_COMPANY_BUTTON_END = AID_WIDGET_COMPANY_BUTTON_START + MAX_COMPANIES - 1,
- AID_BREAK_STRING_WIDGETS,
- AID_WIDGET_BREAK_STR_ON_OFF_BTN,
- AID_WIDGET_BREAK_STR_EDIT_BOX,
- AID_WIDGET_MATCH_CASE_BTN,
- AID_WIDGET_CONTINUE_BTN,
-};
-
/**
* Window with everything an AI prints via ScriptLog.
*/
diff --git a/src/airport_gui.cpp b/src/airport_gui.cpp
index 0f475aa6d..d139c5607 100644
--- a/src/airport_gui.cpp
+++ b/src/airport_gui.cpp
@@ -29,6 +29,8 @@
#include "vehicle_func.h"
#include "sprite.h"
+#include "widgets/airport_widget.h"
+
#include "table/strings.h"
static AirportClassID _selected_airport_class; ///< the currently visible airport class
@@ -63,13 +65,6 @@ static void PlaceAirport(TileIndex tile)
ShowSelectStationIfNeeded(cmdcont, TileArea(tile, _thd.size.x / TILE_SIZE, _thd.size.y / TILE_SIZE));
}
-/** Widget number of the airport build window. */
-enum AirportToolbarWidgets {
- ATW_AIRPORT,
- ATW_DEMOLISH,
-};
-
-
/** Airport build toolbar window handler. */
struct BuildAirToolbarWindow : Window {
int last_user_action; // Last started user action.
@@ -204,22 +199,6 @@ EventState AirportToolbarGlobalHotkeys(uint16 key, uint16 keycode)
return w->OnKeyPress(key, keycode);
}
-/** Airport widgets in the airport picker window. */
-enum AirportPickerWidgets {
- BAIRW_CLASS_DROPDOWN,
- BAIRW_AIRPORT_LIST,
- BAIRW_SCROLLBAR,
- BAIRW_LAYOUT_NUM,
- BAIRW_LAYOUT_DECREASE,
- BAIRW_LAYOUT_INCREASE,
- BAIRW_AIRPORT_SPRITE,
- BAIRW_EXTRA_TEXT,
- BAIRW_BOTTOMPANEL,
- BAIRW_COVERAGE_LABEL,
- BAIRW_BTN_DONTHILIGHT,
- BAIRW_BTN_DOHILIGHT,
-};
-
class BuildAirportWindow : public PickerWindowBase {
SpriteID preview_sprite; ///< Cached airport preview sprite.
int line_height;
diff --git a/src/autoreplace_gui.cpp b/src/autoreplace_gui.cpp
index 6f29b6deb..2b34206d5 100644
--- a/src/autoreplace_gui.cpp
+++ b/src/autoreplace_gui.cpp
@@ -26,36 +26,13 @@
#include "core/geometry_func.hpp"
#include "rail_gui.h"
+#include "widgets/autoreplace_widget.h"
+
#include "table/strings.h"
uint GetEngineListHeight(VehicleType type);
void DrawEngineList(VehicleType type, int x, int r, int y, const GUIEngineList *eng_list, uint16 min, uint16 max, EngineID selected_id, bool show_count, GroupID selected_group);
-/** Widget numbers of the autoreplace GUI. */
-enum ReplaceVehicleWindowWidgets {
- RVW_WIDGET_CAPTION,
-
- /* Left and right matrix + details. */
- RVW_WIDGET_LEFT_MATRIX,
- RVW_WIDGET_LEFT_SCROLLBAR,
- RVW_WIDGET_RIGHT_MATRIX,
- RVW_WIDGET_RIGHT_SCROLLBAR,
- RVW_WIDGET_LEFT_DETAILS,
- RVW_WIDGET_RIGHT_DETAILS,
-
- /* Button row. */
- RVW_WIDGET_START_REPLACE,
- RVW_WIDGET_INFO_TAB,
- RVW_WIDGET_STOP_REPLACE,
-
- /* Train only widgets. */
- RVW_WIDGET_TRAIN_ENGINEWAGON_TOGGLE,
- RVW_WIDGET_TRAIN_FLUFF_LEFT,
- RVW_WIDGET_TRAIN_RAILTYPE_DROPDOWN,
- RVW_WIDGET_TRAIN_FLUFF_RIGHT,
- RVW_WIDGET_TRAIN_WAGONREMOVE_TOGGLE,
-};
-
static int CDECL EngineNumberSorter(const EngineID *a, const EngineID *b)
{
int r = ListPositionOfEngine(*a) - ListPositionOfEngine(*b);
diff --git a/src/bootstrap_gui.cpp b/src/bootstrap_gui.cpp
index 646439db5..7a54c558e 100644
--- a/src/bootstrap_gui.cpp
+++ b/src/bootstrap_gui.cpp
@@ -27,6 +27,8 @@
#include "window_func.h"
#include "window_gui.h"
+#include "widgets/bootstrap_widget.h"
+
#include "table/strings.h"
/** Widgets for the background window to prevent smearing. */
@@ -100,13 +102,6 @@ public:
}
};
-/** Widgets in the query window. */
-enum BootstrapAskForDownloadWidgets {
- BAFDW_QUESTION, ///< The question whether to download.
- BAFDW_YES, ///< An affirmative answer to the question.
- BAFDW_NO, ///< An negative answer to the question.
-};
-
/** The widgets for the query. It has no close box as that sprite does not exist yet. */
static const NWidgetPart _bootstrap_query_widgets[] = {
NWidget(NWID_HORIZONTAL),
diff --git a/src/bridge_gui.cpp b/src/bridge_gui.cpp
index 0a0d788d4..e3065d071 100644
--- a/src/bridge_gui.cpp
+++ b/src/bridge_gui.cpp
@@ -25,6 +25,8 @@
#include "tunnelbridge_map.h"
#include "road_gui.h"
+#include "widgets/bridge_widget.h"
+
#include "table/strings.h"
/** The type of the last built rail bridge */
@@ -70,15 +72,6 @@ void CcBuildBridge(const CommandCost &result, TileIndex end_tile, uint32 p1, uin
}
}
-/** Names of the widgets of the build-bridge selection window. */
-enum BuildBridgeSelectionWidgets {
- BBSW_CAPTION,
- BBSW_DROPDOWN_ORDER,
- BBSW_DROPDOWN_CRITERIA,
- BBSW_BRIDGE_LIST,
- BBSW_SCROLLBAR,
-};
-
/** Window class for handling the bridge-build GUI. */
class BuildBridgeWindow : public Window {
private:
diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp
index ad3f261ec..fa09be23b 100644
--- a/src/build_vehicle_gui.cpp
+++ b/src/build_vehicle_gui.cpp
@@ -31,6 +31,8 @@
#include "cargotype.h"
#include "core/geometry_func.hpp"
+#include "widgets/build_vehicle_widget.h"
+
#include "table/strings.h"
/**
@@ -43,20 +45,6 @@ uint GetEngineListHeight(VehicleType type)
return max<uint>(FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM, GetVehicleHeight(type));
}
-enum BuildVehicleWidgets {
- BUILD_VEHICLE_WIDGET_CAPTION,
- BUILD_VEHICLE_WIDGET_SORT_ASSENDING_DESCENDING,
- BUILD_VEHICLE_WIDGET_SORT_DROPDOWN,
- BUILD_VEHICLE_WIDGET_CARGO_FILTER_DROPDOWN,
- BUILD_VEHICLE_WIDGET_LIST,
- BUILD_VEHICLE_WIDGET_SCROLLBAR,
- BUILD_VEHICLE_WIDGET_PANEL,
- BUILD_VEHICLE_WIDGET_BUILD,
- BUILD_VEHICLE_WIDGET_BUILD_SEL,
- BUILD_VEHICLE_WIDGET_RENAME,
- BUILD_VEHICLE_WIDGET_END
-};
-
static const NWidgetPart _nested_build_vehicle_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
diff --git a/src/cheat_gui.cpp b/src/cheat_gui.cpp
index 73d19a131..093d36b59 100644
--- a/src/cheat_gui.cpp
+++ b/src/cheat_gui.cpp
@@ -27,6 +27,8 @@
#include "company_gui.h"
#include "gamelog.h"
+#include "widgets/cheat_widget.h"
+
#include "table/strings.h"
#include "table/sprites.h"
@@ -177,11 +179,6 @@ static const CheatEntry _cheats_ui[] = {
assert_compile(CHT_NUM_CHEATS == lengthof(_cheats_ui));
-/** Names of the cheat window widgets. */
-enum CheatWidgets {
- CW_PANEL,
-};
-
/** Widget definitions of the cheat GUI. */
static const NWidgetPart _nested_cheat_widgets[] = {
NWidget(NWID_HORIZONTAL),
diff --git a/src/company_gui.cpp b/src/company_gui.cpp
index 4e364f74e..312114fb7 100644
--- a/src/company_gui.cpp
+++ b/src/company_gui.cpp
@@ -39,6 +39,8 @@
#include "water.h"
#include "station_func.h"
+#include "widgets/company_widget.h"
+
#include "table/strings.h"
/** Company GUI constants. */
@@ -126,29 +128,6 @@ static const ExpensesList _expenses_list_types[] = {
ExpensesList(_expenses_list_2, lengthof(_expenses_list_2), 3),
};
-/** Widgets of the company finances windows. */
-enum CompanyFinancesWindowWidgets {
- CFW_CAPTION, ///< Caption of the window
- CFW_TOGGLE_SIZE, ///< Toggle windows size
- CFW_SEL_PANEL, ///< Select panel or nothing
- CFW_EXPS_CATEGORY, ///< Column for expenses category strings
- CFW_EXPS_PRICE1, ///< Column for year Y-2 expenses
- CFW_EXPS_PRICE2, ///< Column for year Y-1 expenses
- CFW_EXPS_PRICE3, ///< Column for year Y expenses
- CFW_TOTAL_PANEL, ///< Panel for totals
- CFW_SEL_MAXLOAN, ///< Selection of maxloan column
- CFW_BALANCE_VALUE, ///< Bank balance value
- CFW_LOAN_VALUE, ///< Loan
- CFW_LOAN_LINE, ///< Line for summing bank balance and loan
- CFW_TOTAL_VALUE, ///< Total
- CFW_MAXLOAN_GAP, ///< Gap above max loan widget
- CFW_MAXLOAN_VALUE, ///< Max loan widget
- CFW_SEL_BUTTONS, ///< Selection of buttons
- CFW_INCREASE_LOAN, ///< Increase loan
- CFW_REPAY_LOAN, ///< Decrease loan
- CFW_INFRASTRUCTURE,///< View company infrastructure
-};
-
/**
* Draw the expenses categories.
* @param r Available space for drawing.
@@ -567,20 +546,6 @@ public:
}
};
-/** Widgets of the select company livery window. */
-enum SelectCompanyLiveryWindowWidgets {
- SCLW_WIDGET_CAPTION,
- SCLW_WIDGET_CLASS_GENERAL,
- SCLW_WIDGET_CLASS_RAIL,
- SCLW_WIDGET_CLASS_ROAD,
- SCLW_WIDGET_CLASS_SHIP,
- SCLW_WIDGET_CLASS_AIRCRAFT,
- SCLW_WIDGET_SPACER_DROPDOWN,
- SCLW_WIDGET_PRI_COL_DROPDOWN,
- SCLW_WIDGET_SEC_COL_DROPDOWN,
- SCLW_WIDGET_MATRIX,
-};
-
/** Company livery colour scheme window. */
struct SelectCompanyLiveryWindow : public Window {
private:
@@ -930,78 +895,6 @@ void DrawCompanyManagerFace(CompanyManagerFace cmf, int colour, int x, int y)
}
}
-/**
- * Names of the widgets. Keep them in the same order as in the widget array.
- * Do not change the order of the widgets from SCMFW_WIDGET_HAS_MOUSTACHE_EARRING to SCMFW_WIDGET_GLASSES_R,
- * this order is needed for the WE_CLICK event of DrawFaceStringLabel().
- */
-enum SelectCompanyManagerFaceWidgets {
- SCMFW_WIDGET_CAPTION,
- SCMFW_WIDGET_TOGGLE_LARGE_SMALL,
- SCMFW_WIDGET_SELECT_FACE,
- SCMFW_WIDGET_CANCEL,
- SCMFW_WIDGET_ACCEPT,
- SCMFW_WIDGET_MALE, ///< Male button in the simple view.
- SCMFW_WIDGET_FEMALE, ///< Female button in the simple view.
- SCMFW_WIDGET_MALE2, ///< Male button in the advanced view.
- SCMFW_WIDGET_FEMALE2, ///< Female button in the advanced view.
- SCMFW_WIDGET_SEL_LOADSAVE, ///< Selection to display the load/save/number buttons in the advanced view.
- SCMFW_WIDGET_SEL_MALEFEMALE, ///< Selection to display the male/female buttons in the simple view.
- SCMFW_WIDGET_SEL_PARTS, ///< Selection to display the buttons for setting each part of the face in the advanced view.
- SCMFW_WIDGET_RANDOM_NEW_FACE,
- SCMFW_WIDGET_TOGGLE_LARGE_SMALL_BUTTON,
- SCMFM_WIDGET_FACE,
- SCMFW_WIDGET_LOAD,
- SCMFW_WIDGET_FACECODE,
- SCMFW_WIDGET_SAVE,
- SCMFW_WIDGET_HAS_MOUSTACHE_EARRING_TEXT,
- SCMFW_WIDGET_TIE_EARRING_TEXT,
- SCMFW_WIDGET_LIPS_MOUSTACHE_TEXT,
- SCMFW_WIDGET_HAS_GLASSES_TEXT,
- SCMFW_WIDGET_HAIR_TEXT,
- SCMFW_WIDGET_EYEBROWS_TEXT,
- SCMFW_WIDGET_EYECOLOUR_TEXT,
- SCMFW_WIDGET_GLASSES_TEXT,
- SCMFW_WIDGET_NOSE_TEXT,
- SCMFW_WIDGET_CHIN_TEXT,
- SCMFW_WIDGET_JACKET_TEXT,
- SCMFW_WIDGET_COLLAR_TEXT,
- SCMFW_WIDGET_ETHNICITY_EUR,
- SCMFW_WIDGET_ETHNICITY_AFR,
- SCMFW_WIDGET_HAS_MOUSTACHE_EARRING,
- SCMFW_WIDGET_HAS_GLASSES,
- SCMFW_WIDGET_EYECOLOUR_L,
- SCMFW_WIDGET_EYECOLOUR,
- SCMFW_WIDGET_EYECOLOUR_R,
- SCMFW_WIDGET_CHIN_L,
- SCMFW_WIDGET_CHIN,
- SCMFW_WIDGET_CHIN_R,
- SCMFW_WIDGET_EYEBROWS_L,
- SCMFW_WIDGET_EYEBROWS,
- SCMFW_WIDGET_EYEBROWS_R,
- SCMFW_WIDGET_LIPS_MOUSTACHE_L,
- SCMFW_WIDGET_LIPS_MOUSTACHE,
- SCMFW_WIDGET_LIPS_MOUSTACHE_R,
- SCMFW_WIDGET_NOSE_L,
- SCMFW_WIDGET_NOSE,
- SCMFW_WIDGET_NOSE_R,
- SCMFW_WIDGET_HAIR_L,
- SCMFW_WIDGET_HAIR,
- SCMFW_WIDGET_HAIR_R,
- SCMFW_WIDGET_JACKET_L,
- SCMFW_WIDGET_JACKET,
- SCMFW_WIDGET_JACKET_R,
- SCMFW_WIDGET_COLLAR_L,
- SCMFW_WIDGET_COLLAR,
- SCMFW_WIDGET_COLLAR_R,
- SCMFW_WIDGET_TIE_EARRING_L,
- SCMFW_WIDGET_TIE_EARRING,
- SCMFW_WIDGET_TIE_EARRING_R,
- SCMFW_WIDGET_GLASSES_L,
- SCMFW_WIDGET_GLASSES,
- SCMFW_WIDGET_GLASSES_R,
-};
-
/** Nested widget description for the company manager face selection dialog */
static const NWidgetPart _nested_select_company_manager_face_widgets[] = {
NWidget(NWID_HORIZONTAL),
@@ -1616,22 +1509,6 @@ static void DoSelectCompanyManagerFace(Window *parent)
new SelectCompanyManagerFaceWindow(&_select_company_manager_face_desc, parent);
}
-
-/** Names of the widgets of the #CompanyInfrastructureWindow. */
-enum CompanyInfrastructureWindowWidgets {
- CIW_WIDGET_CAPTION,
- CIW_WIDGET_RAIL_DESC,
- CIW_WIDGET_RAIL_COUNT,
- CIW_WIDGET_ROAD_DESC,
- CIW_WIDGET_ROAD_COUNT,
- CIW_WIDGET_WATER_DESC,
- CIW_WIDGET_WATER_COUNT,
- CIW_WIDGET_STATION_DESC,
- CIW_WIDGET_STATION_COUNT,
- CIW_WIDGET_TOTAL_DESC,
- CIW_WIDGET_TOTAL,
-};
-
static const NWidgetPart _nested_company_infrastructure_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
@@ -1976,49 +1853,6 @@ static void ShowCompanyInfrastructure(CompanyID company)
AllocateWindowDescFront<CompanyInfrastructureWindow>(&_company_infrastructure_desc, company);
}
-
-/** Names of the widgets of the #CompanyWindow. Keep them in the same order as in the widget array */
-enum CompanyWindowWidgets {
- CW_WIDGET_CAPTION,
-
- CW_WIDGET_FACE,
- CW_WIDGET_FACE_TITLE,
-
- CW_WIDGET_DESC_INAUGURATION,
- CW_WIDGET_DESC_COLOUR_SCHEME,
- CW_WIDGET_DESC_COLOUR_SCHEME_EXAMPLE,
- CW_WIDGET_DESC_VEHICLE,
- CW_WIDGET_DESC_VEHICLE_COUNTS,
- CW_WIDGET_DESC_COMPANY_VALUE,
- CW_WIDGET_DESC_INFRASTRUCTURE,
- CW_WIDGET_DESC_INFRASTRUCTURE_COUNTS,
-
- CW_WIDGET_SELECT_DESC_OWNERS,
- CW_WIDGET_DESC_OWNERS,
-
- CW_WIDGET_SELECT_BUTTONS, ///< Selection widget for the button bar.
- CW_WIDGET_NEW_FACE,
- CW_WIDGET_COLOUR_SCHEME,
- CW_WIDGET_PRESIDENT_NAME,
- CW_WIDGET_COMPANY_NAME,
- CW_WIDGET_BUY_SHARE,
- CW_WIDGET_SELL_SHARE,
-
- CW_WIDGET_SELECT_VIEW_BUILD_HQ,
- CW_WIDGET_VIEW_HQ,
- CW_WIDGET_BUILD_HQ,
-
- CW_WIDGET_SELECT_RELOCATE, ///< View/hide the 'Relocate HQ' button.
- CW_WIDGET_RELOCATE_HQ,
-
- CW_WIDGET_VIEW_INFRASTRUCTURE,
-
- CW_WIDGET_HAS_PASSWORD, ///< Draw a lock when the company has a password
- CW_WIDGET_SELECT_MULTIPLAYER, ///< Multiplayer selection panel.
- CW_WIDGET_COMPANY_PASSWORD,
- CW_WIDGET_COMPANY_JOIN,
-};
-
static const NWidgetPart _nested_company_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
@@ -2595,16 +2429,6 @@ void DirtyCompanyInfrastructureWindows(CompanyID company)
SetWindowDirty(WC_COMPANY_INFRASTRUCTURE, company);
}
-
-/** widget numbers of the #BuyCompanyWindow. */
-enum BuyCompanyWidgets {
- BCW_CAPTION,
- BCW_FACE,
- BCW_QUESTION,
- BCW_NO,
- BCW_YES,
-};
-
struct BuyCompanyWindow : Window {
BuyCompanyWindow(const WindowDesc *desc, WindowNumber window_number) : Window()
{
diff --git a/src/console_gui.cpp b/src/console_gui.cpp
index 0840cb9f0..8dd1f7cd6 100644
--- a/src/console_gui.cpp
+++ b/src/console_gui.cpp
@@ -22,6 +22,8 @@
#include "console_func.h"
#include "rev.h"
+#include "widgets/console_widget.h"
+
#include "table/strings.h"
static const uint ICON_HISTORY_SIZE = 20;
@@ -152,11 +154,6 @@ static inline void IConsoleResetHistoryPos()
static const char *IConsoleHistoryAdd(const char *cmd);
static void IConsoleHistoryNavigate(int direction);
-/** Widgets of the console window. */
-enum ConsoleWidgets {
- CW_BACKGROUND, ///< Background of the console
-};
-
static const struct NWidgetPart _nested_console_window_widgets[] = {
NWidget(WWT_EMPTY, INVALID_COLOUR, CW_BACKGROUND), SetResize(1, 1),
};
diff --git a/src/date_gui.cpp b/src/date_gui.cpp
index fa9f17507..c179641d8 100644
--- a/src/date_gui.cpp
+++ b/src/date_gui.cpp
@@ -18,17 +18,10 @@
#include "core/geometry_func.hpp"
#include "widgets/dropdown_type.h"
+#include "widgets/date_widget.h"
#include "table/strings.h"
-/** Widgets used by the date window */
-enum SetDateWidgets {
- SDW_DAY, ///< Dropdown for the day
- SDW_MONTH, ///< Dropdown for the month
- SDW_YEAR, ///< Dropdown for the year
- SDW_SET_DATE, ///< Actually set the date
-};
-
/** Window to select a date graphically by using dropdowns */
struct SetDateWindow : Window {
SetDateCallback *callback; ///< Callback to call when a date has been selected
diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp
index 4fc8f1ec9..0535347fd 100644
--- a/src/depot_gui.cpp
+++ b/src/depot_gui.cpp
@@ -30,6 +30,8 @@
#include "order_backup.h"
#include "zoom_func.h"
+#include "widgets/depot_widget.h"
+
#include "table/strings.h"
/*
@@ -38,28 +40,6 @@
* How long they should be moved and for what window types are controlled in ShowDepotWindow()
*/
-/* Names of the widgets. Keep them in the same order as in the widget array */
-enum DepotWindowWidgets {
- DEPOT_WIDGET_CAPTION,
- DEPOT_WIDGET_SELL,
- DEPOT_WIDGET_SHOW_SELL_CHAIN,
- DEPOT_WIDGET_SELL_CHAIN,
- DEPOT_WIDGET_SELL_ALL,
- DEPOT_WIDGET_AUTOREPLACE,
- DEPOT_WIDGET_MATRIX,
- DEPOT_WIDGET_V_SCROLL, ///< Vertical scrollbar
- DEPOT_WIDGET_SHOW_H_SCROLL,
- DEPOT_WIDGET_H_SCROLL, ///< Horizontal scrollbar
- DEPOT_WIDGET_BUILD,
- DEPOT_WIDGET_CLONE,
- DEPOT_WIDGET_LOCATION,
- DEPOT_WIDGET_SHOW_RENAME,
- DEPOT_WIDGET_RENAME,
- DEPOT_WIDGET_VEHICLE_LIST,
- DEPOT_WIDGET_STOP_ALL,
- DEPOT_WIDGET_START_ALL,
-};
-
/** Nested widget definition for train depots. */
static const NWidgetPart _nested_train_depot_widgets[] = {
NWidget(NWID_HORIZONTAL),
diff --git a/src/dock_gui.cpp b/src/dock_gui.cpp
index 96c840561..82249a839 100644
--- a/src/dock_gui.cpp
+++ b/src/dock_gui.cpp
@@ -29,6 +29,8 @@
#include "hotkeys.h"
#include "bridge.h"
+#include "widgets/dock_widget.h"
+
#include "table/sprites.h"
#include "table/strings.h"
@@ -88,20 +90,6 @@ static TileIndex GetOtherAqueductEnd(TileIndex tile_from, TileIndex *tile_to = N
return endtile;
}
-/** Enum referring to the widgets of the build dock toolbar */
-enum DockToolbarWidgets {
- DTW_BUTTONS_BEGIN, ///< Begin of clickable buttons (except seperating panel)
- DTW_CANAL = DTW_BUTTONS_BEGIN, ///< Build canal button
- DTW_LOCK, ///< Build lock button
- DTW_DEMOLISH, ///< Demolish aka dynamite button
- DTW_DEPOT, ///< Build depot button
- DTW_STATION, ///< Build station button
- DTW_BUOY, ///< Build buoy button
- DTW_RIVER, ///< Build river button (in scenario editor)
- DTW_BUILD_AQUEDUCT, ///< Build aqueduct button
- DTW_END, ///< End of toolbar widgets
-};
-
/** Toolbar window for constructing water infra structure. */
struct BuildDocksToolbarWindow : Window {
DockToolbarWidgets last_clicked_widget; ///< Contains the last widget that has been clicked on this toolbar.
diff --git a/src/engine_gui.cpp b/src/engine_gui.cpp
index 7fd02b5ab..eb8b6a296 100644
--- a/src/engine_gui.cpp
+++ b/src/engine_gui.cpp
@@ -22,6 +22,8 @@
#include "rail.h"
#include "settings_type.h"
+#include "widgets/engine_widget.h"
+
#include "table/strings.h"
/**
@@ -42,13 +44,6 @@ StringID GetEngineCategoryName(EngineID engine)
}
}
-/** Widgets used for the engine preview window */
-enum EnginePreviewWidgets {
- EPW_QUESTION, ///< The container for the question
- EPW_NO, ///< No button
- EPW_YES, ///< Yes button
-};
-
static const NWidgetPart _nested_engine_preview_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_LIGHT_BLUE),
diff --git a/src/error_gui.cpp b/src/error_gui.cpp
index 31a887cc7..603f7e80c 100644
--- a/src/error_gui.cpp
+++ b/src/error_gui.cpp
@@ -24,16 +24,11 @@
#include "console_func.h"
#include "window_gui.h"
+#include "widgets/error_widget.h"
+
#include "table/strings.h"
#include <list>
-/** Widgets of the error message windows */
-enum ErrorMessageWidgets {
- EMW_CAPTION,
- EMW_FACE,
- EMW_MESSAGE,
-};
-
static const NWidgetPart _nested_errmsg_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_RED),
diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp
index edafb0977..55277a563 100644
--- a/src/fios_gui.cpp
+++ b/src/fios_gui.cpp
@@ -28,6 +28,8 @@
#include "date_func.h"
#include "core/geometry_func.hpp"
+#include "widgets/fios_widget.h"
+
#include "table/sprites.h"
#include "table/strings.h"
@@ -65,27 +67,6 @@ void LoadCheckData::Clear()
ClearGRFConfigList(&this->grfconfig);
}
-
-enum SaveLoadWindowWidgets {
- SLWW_WINDOWTITLE,
- SLWW_SORT_BYNAME,
- SLWW_SORT_BYDATE,
- SLWW_BACKGROUND,
- SLWW_FILE_BACKGROUND,
- SLWW_HOME_BUTTON,
- SLWW_DRIVES_DIRECTORIES_LIST,
- SLWW_SCROLLBAR,
- SLWW_CONTENT_DOWNLOAD, ///< only available for play scenario/heightmap (content download)
- SLWW_SAVE_OSK_TITLE, ///< only available for save operations
- SLWW_DELETE_SELECTION, ///< same in here
- SLWW_SAVE_GAME, ///< not to mention in here too
- SLWW_CONTENT_DOWNLOAD_SEL, ///< Selection 'stack' to 'hide' the content download
- SLWW_DETAILS, ///< Panel with game details
- SLWW_NEWGRF_INFO, ///< Button to open NewGgrf configuration
- SLWW_LOAD_BUTTON, ///< Button to load game/scenario
- SLWW_MISSING_NEWGRFS, ///< Button to find missing NewGRFs online
-};
-
/** Load game/scenario with optional content download */
static const NWidgetPart _nested_load_dialog_widgets[] = {
NWidget(NWID_HORIZONTAL),
diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp
index 645dc0b1c..1ea75fda4 100644
--- a/src/genworld_gui.cpp
+++ b/src/genworld_gui.cpp
@@ -31,18 +31,11 @@
#include "progress.h"
#include "error.h"
+#include "widgets/genworld_widget.h"
+
#include "table/strings.h"
#include "table/sprites.h"
-/**
- * In what 'mode' the GenerateLandscapeWindowProc is.
- */
-enum GenenerateLandscapeWindowMode {
- GLWM_GENERATE, ///< Generate new game
- GLWM_HEIGHTMAP, ///< Load from heightmap
- GLWM_SCENARIO, ///< Generate flat land
-};
-
extern void MakeNewgameSettingsLive();
/**
@@ -56,52 +49,6 @@ void SetNewLandscapeType(byte landscape)
InvalidateWindowClassesData(WC_GENERATE_LANDSCAPE);
}
-/** Widgets of GenerateLandscapeWindow */
-enum GenerateLandscapeWindowWidgets {
- GLAND_TEMPERATE, ///< Button with icon "Temperate"
- GLAND_ARCTIC, ///< Button with icon "Arctic"
- GLAND_TROPICAL, ///< Button with icon "Tropical"
- GLAND_TOYLAND, ///< Button with icon "Toyland"
-
- GLAND_MAPSIZE_X_PULLDOWN, ///< Dropdown 'map X size'
- GLAND_MAPSIZE_Y_PULLDOWN, ///< Dropdown 'map Y size'
-
- GLAND_TOWN_PULLDOWN, ///< Dropdown 'No. of towns'
- GLAND_INDUSTRY_PULLDOWN, ///< Dropdown 'No. of industries'
-
- GLAND_RANDOM_EDITBOX, ///< 'Random seed' editbox
- GLAND_RANDOM_BUTTON, ///< 'Randomise' button
-
- GLAND_GENERATE_BUTTON, ///< 'Generate' button
-
- GLAND_START_DATE_DOWN, ///< Decrease start year
- GLAND_START_DATE_TEXT, ///< Start year
- GLAND_START_DATE_UP, ///< Increase start year
-
- GLAND_SNOW_LEVEL_DOWN, ///< Decrease snow level
- GLAND_SNOW_LEVEL_TEXT, ///< Snow level
- GLAND_SNOW_LEVEL_UP, ///< Increase snow level
-
- GLAND_TREE_PULLDOWN, ///< Dropdown 'Tree algorithm'
- GLAND_LANDSCAPE_PULLDOWN, ///< Dropdown 'Land generator'
-
- GLAND_HEIGHTMAP_NAME_TEXT, ///< Heightmap name
- GLAND_HEIGHTMAP_SIZE_TEXT, ///< Size of heightmap
- GLAND_HEIGHTMAP_ROTATION_PULLDOWN, ///< Dropdown 'Heightmap rotation'
-
- GLAND_TERRAIN_PULLDOWN, ///< Dropdown 'Terrain type'
- GLAND_WATER_PULLDOWN, ///< Dropdown 'Sea level'
- GLAND_RIVER_PULLDOWN, ///< Dropdown 'Rivers'
- GLAND_SMOOTHNESS_PULLDOWN, ///< Dropdown 'Smoothness'
- GLAND_VARIETY_PULLDOWN, ///< Dropdown 'Variety distribution'
-
- GLAND_BORDERS_RANDOM, ///< 'Random'/'Manual' borders
- GLAND_WATER_NW, ///< NW 'Water'/'Freeform'
- GLAND_WATER_NE, ///< NE 'Water'/'Freeform'
- GLAND_WATER_SE, ///< SE 'Water'/'Freeform'
- GLAND_WATER_SW, ///< SW 'Water'/'Freeform'
-};
-
/** Widgets of GenerateLandscapeWindow when generating world */
static const NWidgetPart _nested_generate_landscape_widgets[] = {
NWidget(NWID_HORIZONTAL),
@@ -928,25 +875,6 @@ void StartNewGameWithoutGUI(uint seed)
StartGeneratingLandscape(GLWM_GENERATE);
}
-/** Widget numbers of the create scenario window. */
-enum CreateScenarioWindowWidgets {
- CSCEN_TEMPERATE, ///< Select temperate landscape style.
- CSCEN_ARCTIC, ///< Select arctic landscape style.
- CSCEN_TROPICAL, ///< Select tropical landscape style.
- CSCEN_TOYLAND, ///< Select toy-land landscape style.
- CSCEN_EMPTY_WORLD, ///< Generate an empty flat world.
- CSCEN_RANDOM_WORLD, ///< Generate random land button
- CSCEN_MAPSIZE_X_PULLDOWN, ///< Pull-down arrow for x map size.
- CSCEN_MAPSIZE_Y_PULLDOWN, ///< Pull-down arrow for y map size.
- CSCEN_START_DATE_DOWN, ///< Decrease start year (start earlier).
- CSCEN_START_DATE_TEXT, ///< Clickable start date value.
- CSCEN_START_DATE_UP, ///< Increase start year (start later).
- CSCEN_FLAT_LAND_HEIGHT_DOWN, ///< Decrease flat land height.
- CSCEN_FLAT_LAND_HEIGHT_TEXT, ///< Clickable flat land height value.
- CSCEN_FLAT_LAND_HEIGHT_UP ///< Increase flat land height.
-};
-
-
struct CreateScenarioWindow : public Window
{
uint widget_id;
@@ -1192,12 +1120,6 @@ void ShowCreateScenario()
new CreateScenarioWindow(&_create_scenario_desc, GLWM_SCENARIO);
}
-enum GenerationProgressWindowWidgets {
- GPWW_PROGRESS_BAR,
- GPWW_PROGRESS_TEXT,
- GPWW_ABORT,
-};
-
static const NWidgetPart _nested_generate_progress_widgets[] = {
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GENERATION_WORLD, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PANEL, COLOUR_GREY),
diff --git a/src/graph_gui.cpp b/src/graph_gui.cpp
index 31e3f6b32..2ab5d75f8 100644
--- a/src/graph_gui.cpp
+++ b/src/graph_gui.cpp
@@ -25,6 +25,8 @@
#include "math.h"
#include "currency.h"
+#include "widgets/graph_widget.h"
+
#include "table/strings.h"
#include "table/sprites.h"
@@ -40,14 +42,6 @@ static const uint INVALID_DATAPOINT_POS = UINT_MAX; // Used to determine if the
/* GRAPH LEGEND */
/****************/
-/** Widget numbers of the graph legend window. */
-enum GraphLegendWidgetNumbers {
- GLW_BACKGROUND,
-
- GLW_FIRST_COMPANY,
- GLW_LAST_COMPANY = GLW_FIRST_COMPANY + MAX_COMPANIES - 1,
-};
-
struct GraphLegendWindow : Window {
GraphLegendWindow(const WindowDesc *desc, WindowNumber window_number) : Window()
{
@@ -168,14 +162,6 @@ struct ValuesInterval {
/* BASE OF GRAPHS */
/*****************/
-/** Widget numbers of a base graph window. */
-enum CompanyValueWidgets {
- BGW_KEY_BUTTON,
- BGW_BACKGROUND,
- BGW_GRAPH,
- BGW_RESIZE,
-};
-
struct BaseGraphWindow : Window {
protected:
static const int GRAPH_MAX_DATASETS = 32;
@@ -706,7 +692,6 @@ static const NWidgetPart _nested_income_graph_widgets[] = {
EndContainer(),
};
-
static const WindowDesc _income_graph_desc(
WDP_AUTO, 0, 0,
WC_INCOME_GRAPH, WC_NONE,
@@ -771,15 +756,6 @@ void ShowDeliveredCargoGraph()
/* PERFORMANCE HISTORY */
/***********************/
-/** Widget numbers of the performance history window. */
-enum PerformanceHistoryGraphWidgets {
- PHW_KEY,
- PHW_DETAILED_PERFORMANCE,
- PHW_BACKGROUND,
- PHW_GRAPH,
- PHW_RESIZE,
-};
-
struct PerformanceHistoryGraphWindow : BaseGraphWindow {
PerformanceHistoryGraphWindow(const WindowDesc *desc, WindowNumber window_number) :
BaseGraphWindow(PHW_GRAPH, STR_JUST_COMMA)
@@ -883,18 +859,6 @@ void ShowCompanyValueGraph()
/* PAYMENT RATES */
/*****************/
-/** Widget numbers of the cargo payment rates. */
-enum CargoPaymentRatesWidgets {
- CPW_BACKGROUND,
- CPW_HEADER,
- CPW_GRAPH,
- CPW_RESIZE,
- CPW_FOOTER,
- CPW_ENABLE_CARGOES,
- CPW_DISABLE_CARGOES,
- CPW_CARGO_FIRST,
-};
-
struct PaymentRatesGraphWindow : BaseGraphWindow {
bool first_init; ///< This value is true until the first initialization of the window has finished.
PaymentRatesGraphWindow(const WindowDesc *desc, WindowNumber window_number) :
@@ -1126,11 +1090,6 @@ void ShowCargoPaymentRates()
/* COMPANY LEAGUE TABLE */
/************************/
-/** Widget numbers for the company league window. */
-enum CompanyLeagueWidgets {
- CLW_BACKGROUND,
-};
-
static const StringID _performance_titles[] = {
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ENGINEER,
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ENGINEER,
@@ -1319,15 +1278,6 @@ void ShowCompanyLeagueTable()
/* PERFORMANCE RATING DETAIL */
/*****************************/
-/** Widget numbers of the performance rating details window. */
-enum PerformanceRatingDetailsWidgets {
- PRW_SCORE_FIRST,
- PRW_SCORE_LAST = PRW_SCORE_FIRST + (SCORE_END - SCORE_BEGIN) - 1,
-
- PRW_COMPANY_FIRST,
- PRW_COMPANY_LAST = PRW_COMPANY_FIRST + MAX_COMPANIES - 1,
-};
-
struct PerformanceRatingDetailWindow : Window {
static CompanyID company;
int timeout;
diff --git a/src/group_gui.cpp b/src/group_gui.cpp
index 2070a0c2e..6108b9251 100644
--- a/src/group_gui.cpp
+++ b/src/group_gui.cpp
@@ -27,32 +27,13 @@
#include "core/geometry_func.hpp"
#include "company_base.h"
+#include "widgets/group_widget.h"
+
#include "table/strings.h"
#include "table/sprites.h"
typedef GUIList<const Group*> GUIGroupList;
-enum GroupListWidgets {
- GRP_WIDGET_CAPTION,
- GRP_WIDGET_SORT_BY_ORDER,
- GRP_WIDGET_SORT_BY_DROPDOWN,
- GRP_WIDGET_LIST_VEHICLE,
- GRP_WIDGET_LIST_VEHICLE_SCROLLBAR,
- GRP_WIDGET_AVAILABLE_VEHICLES,
- GRP_WIDGET_MANAGE_VEHICLES_DROPDOWN,
- GRP_WIDGET_STOP_ALL,
- GRP_WIDGET_START_ALL,
-
- GRP_WIDGET_ALL_VEHICLES,
- GRP_WIDGET_DEFAULT_VEHICLES,
- GRP_WIDGET_LIST_GROUP,
- GRP_WIDGET_LIST_GROUP_SCROLLBAR,
- GRP_WIDGET_CREATE_GROUP,
- GRP_WIDGET_DELETE_GROUP,
- GRP_WIDGET_RENAME_GROUP,
- GRP_WIDGET_REPLACE_PROTECTION,
-};
-
static const NWidgetPart _nested_group_widgets[] = {
NWidget(NWID_HORIZONTAL), // Window header
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
diff --git a/src/highscore_gui.cpp b/src/highscore_gui.cpp
index 0cd355c12..28dcb90d4 100644
--- a/src/highscore_gui.cpp
+++ b/src/highscore_gui.cpp
@@ -23,9 +23,7 @@
#include "strings_func.h"
#include "hotkeys.h"
-enum HighscoreWidgets {
- HSW_BACKGROUND,
-};
+#include "widgets/highscore_widget.h"
struct EndGameHighScoreBaseWindow : Window {
uint32 background_img;
diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp
index 3d9af3b37..64929fbac 100644
--- a/src/industry_gui.cpp
+++ b/src/industry_gui.cpp
@@ -37,6 +37,8 @@
#include "genworld.h"
#include "smallmap_gui.h"
+#include "widgets/industry_widget.h"
+
#include "table/strings.h"
#include "table/sprites.h"
@@ -164,15 +166,6 @@ void CcBuildIndustry(const CommandCost &result, TileIndex tile, uint32 p1, uint3
}
}
-/** Names of the widgets of the dynamic place industries gui */
-enum DynamicPlaceIndustriesWidgets {
- DPIW_MATRIX_WIDGET,
- DPIW_SCROLLBAR,
- DPIW_INFOPANEL,
- DPIW_DISPLAY_WIDGET,
- DPIW_FUND_WIDGET,
-};
-
static const NWidgetPart _nested_build_industry_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
@@ -637,15 +630,6 @@ static inline bool IsProductionAlterable(const Industry *i)
(is->production_rate[0] != 0 || is->production_rate[1] != 0 || is->IsRawIndustry()));
}
-/** Names of the widgets of the view industry gui */
-enum IndustryViewWidgets {
- IVW_CAPTION,
- IVW_VIEWPORT,
- IVW_INFO,
- IVW_GOTO,
- IVW_DISPLAY,
-};
-
class IndustryViewWindow : public Window
{
/** Modes for changing production */
@@ -1041,14 +1025,6 @@ void ShowIndustryViewWindow(int industry)
AllocateWindowDescFront<IndustryViewWindow>(&_industry_view_desc, industry);
}
-/** Names of the widgets of the industry directory gui */
-enum IndustryDirectoryWidgets {
- IDW_DROPDOWN_ORDER,
- IDW_DROPDOWN_CRITERIA,
- IDW_INDUSTRY_LIST,
- IDW_SCROLLBAR,
-};
-
/** Widget definition of the industry directory gui */
static const NWidgetPart _nested_industry_directory_widgets[] = {
NWidget(NWID_HORIZONTAL),
@@ -1420,14 +1396,6 @@ void ShowIndustryDirectory()
AllocateWindowDescFront<IndustryDirectoryWindow>(&_industry_directory_desc, 0);
}
-/** Widget numbers of the industry cargoes window, */
-enum IndustryCargoesWidgets {
- ICW_CAPTION,
- ICW_NOTIFY,
- ICW_PANEL,
- ICW_SCROLLBAR,
-};
-
/** Widgets of the industry cargoes window. */
static const NWidgetPart _nested_industry_cargoes_widgets[] = {
NWidget(NWID_HORIZONTAL),
diff --git a/src/intro_gui.cpp b/src/intro_gui.cpp
index e619c5269..bbfdb4c1f 100644
--- a/src/intro_gui.cpp
+++ b/src/intro_gui.cpp
@@ -27,31 +27,11 @@
#include "language.h"
#include "rev.h"
+#include "widgets/intro_widget.h"
+
#include "table/strings.h"
#include "table/sprites.h"
-enum SelectGameIntroWidgets {
- SGI_GENERATE_GAME,
- SGI_LOAD_GAME,
- SGI_PLAY_SCENARIO,
- SGI_PLAY_HEIGHTMAP,
- SGI_EDIT_SCENARIO,
- SGI_PLAY_NETWORK,
- SGI_TEMPERATE_LANDSCAPE,
- SGI_ARCTIC_LANDSCAPE,
- SGI_TROPIC_LANDSCAPE,
- SGI_TOYLAND_LANDSCAPE,
- SGI_TRANSLATION_SELECTION,
- SGI_TRANSLATION,
- SGI_OPTIONS,
- SGI_DIFFICULTIES,
- SGI_SETTINGS_OPTIONS,
- SGI_GRF_SETTINGS,
- SGI_CONTENT_DOWNLOAD,
- SGI_AI_SETTINGS,
- SGI_EXIT,
-};
-
struct SelectGameWindow : public Window {
SelectGameWindow(const WindowDesc *desc) : Window()
diff --git a/src/main_gui.cpp b/src/main_gui.cpp
index a7de4069d..65372ba6d 100644
--- a/src/main_gui.cpp
+++ b/src/main_gui.cpp
@@ -34,6 +34,8 @@
#include "saveload/saveload.h"
+#include "widgets/main_widget.h"
+
#include "network/network.h"
#include "network/network_func.h"
#include "network/network_gui.h"
@@ -199,11 +201,6 @@ void ZoomInOrOutToCursorWindow(bool in, Window *w)
}
}
-/** Widgets of the main window. */
-enum MainWindowWidgets {
- MW_VIEWPORT, ///< Main window viewport.
-};
-
static const struct NWidgetPart _nested_main_window_widgets[] = {
NWidget(NWID_VIEWPORT, INVALID_COLOUR, MW_VIEWPORT), SetResize(1, 1),
};
diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp
index 7c06261a7..5db89d377 100644
--- a/src/misc_gui.cpp
+++ b/src/misc_gui.cpp
@@ -28,6 +28,8 @@
#include "core/geometry_func.hpp"
#include "newgrf_debug.h"
+#include "widgets/misc_widget.h"
+
#include "table/strings.h"
/**
@@ -40,12 +42,6 @@ bool GetClipboardContents(char *buffer, size_t buff_len);
int _caret_timer;
-
-/** Widgets for the land info window. */
-enum LandInfoWidgets {
- LIW_BACKGROUND, ///< Background to draw on
-};
-
static const NWidgetPart _nested_land_info_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
@@ -356,12 +352,6 @@ void ShowLandInfo(TileIndex tile)
new LandInfoWindow(tile);
}
-/** Widgets for the land info window. */
-enum AboutWidgets {
- AW_SCROLLING_TEXT, ///< The actually scrolling text
- AW_WEBSITE, ///< URL of OpenTTD website
-};
-
static const NWidgetPart _nested_about_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
@@ -613,7 +603,7 @@ void HideFillingPercent(TextEffectID *te_id)
}
static const NWidgetPart _nested_tooltips_widgets[] = {
- NWidget(WWT_PANEL, COLOUR_GREY, 0), SetMinimalSize(200, 32), EndContainer(),
+ NWidget(WWT_PANEL, COLOUR_GREY, TTW_BACKGROUND), SetMinimalSize(200, 32), EndContainer(),
};
static const WindowDesc _tool_tips_desc(
@@ -1100,15 +1090,6 @@ void QueryStringBaseWindow::OnOpenOSKWindow(int wid)
ShowOnScreenKeyboard(this, wid, 0, 0);
}
-/** Widget of the string query window. */
-enum QueryStringWidgets {
- QUERY_STR_WIDGET_CAPTION,
- QUERY_STR_WIDGET_TEXT,
- QUERY_STR_WIDGET_DEFAULT,
- QUERY_STR_WIDGET_CANCEL,
- QUERY_STR_WIDGET_OK
-};
-
/** Class for the string query window. */
struct QueryStringWindow : public QueryStringBaseWindow
{
@@ -1268,14 +1249,6 @@ void ShowQueryString(StringID str, StringID caption, uint maxsize, Window *paren
new QueryStringWindow(str, caption, ((flags & QSF_LEN_IN_CHARS) ? MAX_CHAR_LENGTH : 1) * maxsize, maxsize, &_query_string_desc, parent, afilter, flags);
}
-
-enum QueryWidgets {
- QUERY_WIDGET_CAPTION,
- QUERY_WIDGET_TEXT,
- QUERY_WIDGET_NO,
- QUERY_WIDGET_YES
-};
-
/**
* Window used for asking the user a YES/NO question.
*/
diff --git a/src/music_gui.cpp b/src/music_gui.cpp
index d4c3057de..77a178375 100644
--- a/src/music_gui.cpp
+++ b/src/music_gui.cpp
@@ -24,6 +24,8 @@
#include "string_func.h"
#include "settings_type.h"
+#include "widgets/music_widget.h"
+
#include "table/strings.h"
#include "table/sprites.h"
@@ -287,19 +289,6 @@ static void SelectPlaylist(byte list)
InvalidateWindowData(WC_MUSIC_WINDOW, 0);
}
-enum MusicTrackSelectionWidgets {
- MTSW_LIST_LEFT,
- MTSW_PLAYLIST,
- MTSW_LIST_RIGHT,
- MTSW_ALL,
- MTSW_OLD,
- MTSW_NEW,
- MTSW_EZY,
- MTSW_CUSTOM1,
- MTSW_CUSTOM2,
- MTSW_CLEAR,
-};
-
struct MusicTrackSelectionWindow : public Window {
MusicTrackSelectionWindow(const WindowDesc *desc, WindowNumber number) : Window()
{
@@ -518,29 +507,6 @@ static void ShowMusicTrackSelection()
AllocateWindowDescFront<MusicTrackSelectionWindow>(&_music_track_selection_desc, 0);
}
-enum MusicWidgets {
- MW_PREV,
- MW_NEXT,
- MW_STOP,
- MW_PLAY,
- MW_SLIDERS,
- MW_MUSIC_VOL,
- MW_EFFECT_VOL,
- MW_BACKGROUND,
- MW_TRACK,
- MW_TRACK_NR,
- MW_TRACK_TITLE,
- MW_TRACK_NAME,
- MW_SHUFFLE,
- MW_PROGRAMME,
- MW_ALL,
- MW_OLD,
- MW_NEW,
- MW_EZY,
- MW_CUSTOM1,
- MW_CUSTOM2,
-};
-
struct MusicWindow : public Window {
static const int slider_width = 3;
diff --git a/src/network/network_chat_gui.cpp b/src/network/network_chat_gui.cpp
index 245d15ea5..d6c0319f4 100644
--- a/src/network/network_chat_gui.cpp
+++ b/src/network/network_chat_gui.cpp
@@ -28,6 +28,8 @@
#include "network_client.h"
#include "network_base.h"
+#include "../widgets/network_chat_widget.h"
+
#include "table/strings.h"
/** The draw buffer must be able to contain the chat message, client name and the "[All]" message,
@@ -283,15 +285,6 @@ static void SendChat(const char *buf, DestType type, int dest)
}
}
-/** Widget numbers of the chat window. */
-enum NetWorkChatWidgets {
- NWCW_CLOSE,
- NWCW_BACKGROUND,
- NWCW_DESTINATION,
- NWCW_TEXTBOX,
- NWCW_SENDBUTTON,
-};
-
/** Window to enter the chat message in. */
struct NetworkChatWindow : public QueryStringBaseWindow {
DestType dtype; ///< The type of destination.
diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp
index fd6b72b37..1a31e0904 100644
--- a/src/network/network_content_gui.cpp
+++ b/src/network/network_content_gui.cpp
@@ -22,6 +22,8 @@
#include "../core/geometry_func.hpp"
#include "network_content_gui.h"
+#include "../widgets/network_content_widget.h"
+
#include "table/strings.h"
#include "../table/sprites.h"
@@ -220,32 +222,6 @@ public:
}
};
-/** Widgets of the content list window. */
-enum NetworkContentListWindowWidgets {
- NCLWW_BACKGROUND, ///< Resize button
-
- NCLWW_FILTER_CAPT, ///< Caption for the filter editbox
- NCLWW_FILTER, ///< Filter editbox
-
- NCLWW_CHECKBOX, ///< Button above checkboxes
- NCLWW_TYPE, ///< 'Type' button
- NCLWW_NAME, ///< 'Name' button
-
- NCLWW_MATRIX, ///< Panel with list of content
- NCLWW_SCROLLBAR, ///< Scrollbar of matrix
-
- NCLWW_DETAILS, ///< Panel with content details
-
- NCLWW_SELECT_ALL, ///< 'Select all' button
- NCLWW_SELECT_UPDATE, ///< 'Select updates' button
- NCLWW_UNSELECT, ///< 'Unselect all' button
- NCLWW_OPEN_URL, ///< 'Open url' button
- NCLWW_CANCEL, ///< 'Cancel' button
- NCLWW_DOWNLOAD, ///< 'Download' button
-
- NCLWW_SEL_ALL_UPDATE, ///< #NWID_SELECTION widget for select all/update buttons.
-};
-
/** Window that lists the content that's at the content server */
class NetworkContentListWindow : public QueryStringBaseWindow, ContentCallback {
/** List with content infos. */
diff --git a/src/network/network_content_gui.h b/src/network/network_content_gui.h
index 5707c6cf4..6650eb14a 100644
--- a/src/network/network_content_gui.h
+++ b/src/network/network_content_gui.h
@@ -14,12 +14,7 @@
#include "network_content.h"
#include "../window_gui.h"
-
-/** Widgets used by this window */
-enum NetworkContentDownloadStatusWindowWidgets {
- NCDSWW_BACKGROUND, ///< Background
- NCDSWW_CANCELOK, ///< (Optional) Cancel/OK button
-};
+#include "../widgets/network_content_widget.h"
/** Base window for showing the download status of content */
class BaseNetworkContentDownloadStatusWindow : public Window, ContentCallback {
diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp
index f860d3a79..0924596b8 100644
--- a/src/network/network_gui.cpp
+++ b/src/network/network_gui.cpp
@@ -32,6 +32,8 @@
#include "../newgrf_text.h"
#include "../genworld.h"
+#include "../widgets/network_widget.h"
+
#include "table/strings.h"
#include "../table/sprites.h"
@@ -75,45 +77,6 @@ void UpdateNetworkGameWindow(bool unselect)
InvalidateWindowData(WC_NETWORK_WINDOW, 0, unselect ? 1 : 0);
}
-/** Enum for NetworkGameWindow, referring to _network_game_window_widgets */
-enum NetworkGameWindowWidgets {
- NGWW_MAIN, ///< Main panel
-
- NGWW_CONNECTION, ///< Label in front of connection droplist
- NGWW_CONN_BTN, ///< 'Connection' droplist button
- NGWW_CLIENT_LABEL, ///< Label in front of client name edit box
- NGWW_CLIENT, ///< Panel with editbox to set client name
-
- NGWW_HEADER, ///< Header container of the matrix
- NGWW_NAME, ///< 'Name' button
- NGWW_CLIENTS, ///< 'Clients' button
- NGWW_MAPSIZE, ///< 'Map size' button
- NGWW_DATE, ///< 'Date' button
- NGWW_YEARS, ///< 'Years' button
- NGWW_INFO, ///< Third button in the game list panel
-
- NGWW_MATRIX, ///< Panel with list of games
- NGWW_SCROLLBAR, ///< Scrollbar of matrix
-
- NGWW_LASTJOINED_LABEL, ///< Label "Last joined server:"
- NGWW_LASTJOINED, ///< Info about the last joined server
- NGWW_LASTJOINED_SPACER, ///< Spacer after last joined server panel
-
- NGWW_DETAILS, ///< Panel with game details
- NGWW_DETAILS_SPACER, ///< Spacer for game actual details
- NGWW_JOIN, ///< 'Join game' button
- NGWW_REFRESH, ///< 'Refresh server' button
- NGWW_NEWGRF, ///< 'NewGRF Settings' button
- NGWW_NEWGRF_SEL, ///< Selection 'widget' to hide the NewGRF settings
- NGWW_NEWGRF_MISSING, ///< 'Find missing NewGRF online' button
- NGWW_NEWGRF_MISSING_SEL, ///< Selection widget for the above button
-
- NGWW_FIND, ///< 'Find server' button
- NGWW_ADD, ///< 'Add server' button
- NGWW_START, ///< 'Start server' button
- NGWW_CANCEL, ///< 'Cancel' button
-};
-
typedef GUIList<NetworkGameList*> GUIGameServerList;
typedef uint16 ServerListPosition;
static const ServerListPosition SLP_INVALID = 0xFFFF;
@@ -1031,38 +994,6 @@ void ShowNetworkGameWindow()
new NetworkGameWindow(&_network_game_window_desc);
}
-/** Enum for NetworkStartServerWindow, referring to _network_start_server_window_widgets */
-enum NetworkStartServerWidgets {
- NSSW_BACKGROUND,
- NSSW_GAMENAME_LABEL,
- NSSW_GAMENAME, ///< Background for editbox to set game name
- NSSW_SETPWD, ///< 'Set password' button
- NSSW_CONNTYPE_LABEL,
- NSSW_CONNTYPE_BTN, ///< 'Connection type' droplist button
- NSSW_CLIENTS_LABEL,
- NSSW_CLIENTS_BTND, ///< 'Max clients' downarrow
- NSSW_CLIENTS_TXT, ///< 'Max clients' text
- NSSW_CLIENTS_BTNU, ///< 'Max clients' uparrow
- NSSW_COMPANIES_LABEL,
- NSSW_COMPANIES_BTND, ///< 'Max companies' downarrow
- NSSW_COMPANIES_TXT, ///< 'Max companies' text
- NSSW_COMPANIES_BTNU, ///< 'Max companies' uparrow
- NSSW_SPECTATORS_LABEL,
- NSSW_SPECTATORS_BTND, ///< 'Max spectators' downarrow
- NSSW_SPECTATORS_TXT, ///< 'Max spectators' text
- NSSW_SPECTATORS_BTNU, ///< 'Max spectators' uparrow
-
- NSSW_LANGUAGE_LABEL,
- NSSW_LANGUAGE_BTN, ///< 'Language spoken' droplist button
-
- NSSW_GENERATE_GAME, ///< New game button
- NSSW_LOAD_GAME, ///< Load game button
- NSSW_PLAY_SCENARIO, ///< Play scenario button
- NSSW_PLAY_HEIGHTMAP, ///< Play heightmap button
-
- NSSW_CANCEL, ///< 'Cancel' button
-};
-
struct NetworkStartServerWindow : public QueryStringBaseWindow {
byte field; ///< Selected text-field
byte widget_id; ///< The widget that has the pop-up input menu
@@ -1390,21 +1321,6 @@ static void ShowNetworkStartServerWindow()
new NetworkStartServerWindow(&_network_start_server_window_desc);
}
-/** Enum for NetworkLobbyWindow, referring to _network_lobby_window_widgets */
-enum NetworkLobbyWindowWidgets {
- NLWW_BACKGROUND, ///< Background panel
- NLWW_TEXT, ///< Heading text
- NLWW_HEADER, ///< Header above list of companies
- NLWW_MATRIX, ///< List of companies
- NLWW_SCROLLBAR, ///< Scroll bar
- NLWW_DETAILS, ///< Company details
- NLWW_JOIN, ///< 'Join company' button
- NLWW_NEW, ///< 'New company' button
- NLWW_SPECTATE, ///< 'Spectate game' button
- NLWW_REFRESH, ///< 'Refresh server' button
- NLWW_CANCEL, ///< 'Cancel' button
-};
-
struct NetworkLobbyWindow : public Window {
CompanyID company; ///< Select company
NetworkGameList *server; ///< Selected server
@@ -1724,7 +1640,7 @@ extern void DrawCompanyIcon(CompanyID cid, int x, int y);
typedef void ClientList_Action_Proc(const NetworkClientInfo *ci);
static const NWidgetPart _nested_client_list_popup_widgets[] = {
- NWidget(WWT_PANEL, COLOUR_GREY, 0), EndContainer(),
+ NWidget(WWT_PANEL, COLOUR_GREY, CLPW_PANEL), EndContainer(),
};
static const WindowDesc _client_list_popup_desc(
@@ -1894,12 +1810,6 @@ static void PopupClientList(ClientID client_id, int x, int y)
new NetworkClientListPopupWindow(&_client_list_popup_desc, x, y, client_id);
}
-
-/** Widget numbers of the client list window. */
-enum ClientListWidgets {
- CLW_PANEL,
-};
-
static const NWidgetPart _nested_client_list_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
@@ -2075,12 +1985,6 @@ uint8 _network_join_waiting; ///< The number of clients waiting in fr
uint32 _network_join_bytes; ///< The number of bytes we already downloaded.
uint32 _network_join_bytes_total; ///< The total number of bytes to download.
-/** Widgets used for the join status window. */
-enum NetworkJoinStatusWidgets {
- NJSW_BACKGROUND, ///< Background
- NJSW_CANCELOK, ///< Cancel/OK button
-};
-
struct NetworkJoinStatusWindow : Window {
NetworkPasswordType password_type;
@@ -2215,17 +2119,6 @@ void ShowNetworkNeedPassword(NetworkPasswordType npt)
ShowQueryString(STR_EMPTY, caption, NETWORK_PASSWORD_LENGTH, w, CS_ALPHANUMERAL, QSF_NONE);
}
-
-/** Enum for NetworkGameWindow, referring to _network_game_window_widgets */
-enum NetworkCompanyPasswordWindowWidgets {
- NCPWW_BACKGROUND, ///< The background of the interface
- NCPWW_LABEL, ///< Label in front of the password field
- NCPWW_PASSWORD, ///< Input field for the password
- NCPWW_SAVE_AS_DEFAULT_PASSWORD, ///< Toggle 'button' for saving the current password as default password
- NCPWW_CANCEL, ///< Close the window without changing anything
- NCPWW_OK, ///< Safe the password etc.
-};
-
struct NetworkCompanyPasswordWindow : public QueryStringBaseWindow {
NetworkCompanyPasswordWindow(const WindowDesc *desc, Window *parent) : QueryStringBaseWindow(lengthof(_settings_client.network.default_company_pass))
{
diff --git a/src/newgrf_debug_gui.cpp b/src/newgrf_debug_gui.cpp
index 03c811057..253c7a333 100644
--- a/src/newgrf_debug_gui.cpp
+++ b/src/newgrf_debug_gui.cpp
@@ -33,6 +33,8 @@
#include "newgrf_station.h"
#include "newgrf_town.h"
+#include "widgets/newgrf_debug_widget.h"
+
#include "table/strings.h"
/** The sprite picker. */
@@ -274,15 +276,6 @@ static inline const NIHelper *GetFeatureHelper(uint window_number)
return GetFeature(window_number)->helper;
}
-
-/** Widget numbers of settings window */
-enum NewGRFInspectWidgets {
- NIW_CAPTION, ///< The caption bar ofcourse
- NIW_PARENT, ///< Inspect the parent
- NIW_MAINPANEL, ///< Panel widget containing the actual data
- NIW_SCROLLBAR, ///< Scrollbar
-};
-
/** Window used for inspecting NewGRFs. */
struct NewGRFInspectWindow : Window {
static const int LEFT_OFFSET = 5; ///< Position of left edge
@@ -643,23 +636,6 @@ GrfSpecFeature GetGrfSpecFeature(VehicleType type)
/**** Sprite Aligner ****/
-/** Widgets we want (some) influence over. */
-enum SpriteAlignerWidgets {
- SAW_CAPTION, ///< Caption of the window
- SAW_PREVIOUS, ///< Skip to the previous sprite
- SAW_GOTO, ///< Go to a given sprite
- SAW_NEXT, ///< Skip to the next sprite
- SAW_UP, ///< Move the sprite up
- SAW_LEFT, ///< Move the sprite to the left
- SAW_RIGHT, ///< Move the sprite to the right
- SAW_DOWN, ///< Move the sprite down
- SAW_SPRITE, ///< The actual sprite
- SAW_OFFSETS, ///< The sprite offsets
- SAW_PICKER, ///< Sprite picker
- SAW_LIST, ///< Queried sprite list
- SAW_SCROLLBAR,///< Scrollbar for sprite list
-};
-
/** Window used for aligning sprites. */
struct SpriteAlignerWindow : Window {
SpriteID current_sprite; ///< The currently shown sprite
diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp
index 4b414f5b0..ce18a1e61 100644
--- a/src/newgrf_gui.cpp
+++ b/src/newgrf_gui.cpp
@@ -28,6 +28,8 @@
#include "fileio_func.h"
#include "fontcache.h"
+#include "widgets/newgrf_widget.h"
+
#include "table/strings.h"
#include "table/sprites.h"
@@ -137,22 +139,6 @@ static void ShowNewGRFInfo(const GRFConfig *c, uint x, uint y, uint right, uint
}
}
-
-/** Enum referring to the widgets of the NewGRF parameters window */
-enum ShowNewGRFParametersWidgets {
- GRFPAR_WIDGET_SHOW_NUMPAR, ///< #NWID_SELECTION to optionally display #GRFPAR_WIDGET_NUMPAR
- GRFPAR_WIDGET_NUMPAR_DEC, ///< Button to decrease number of parameters
- GRFPAR_WIDGET_NUMPAR_INC, ///< Button to increase number of parameters
- GRFPAR_WIDGET_NUMPAR, ///< Optional number of parameters
- GRFPAR_WIDGET_NUMPAR_TEXT, ///< Text description
- GRFPAR_WIDGET_BACKGROUND, ///< Panel to draw the settings on
- GRFPAR_WIDGET_SCROLLBAR, ///< Scrollbar to scroll through all settings
- GRFPAR_WIDGET_ACCEPT, ///< Accept button
- GRFPAR_WIDGET_RESET, ///< Reset button
- GRFPAR_WIDGET_SHOW_DESCRIPTION, ///< #NWID_SELECTION to optionally display parameter descriptions
- GRFPAR_WIDGET_DESCRIPTION, ///< Multi-line description of a parameter
-};
-
/**
* Window for setting the parameters of a NewGRF.
*/
@@ -466,14 +452,6 @@ void OpenGRFParameterWindow(GRFConfig *c)
new NewGRFParametersWindow(&_newgrf_parameters_desc, c);
}
-/** Widgets of the #NewGRFTextfileWindow. */
-enum ShowNewGRFTextfileWidgets {
- GTW_WIDGET_CAPTION, ///< The caption of the window.
- GTW_WIDGET_BACKGROUND, ///< Panel to draw the textfile on.
- GTW_WIDGET_VSCROLLBAR, ///< Vertical scrollbar to scroll through the textfile up-and-down.
- GTW_WIDGET_HSCROLLBAR, ///< Horizontal scrollbar to scroll through the textfile left-to-right.
-};
-
/** Window for displaying the textfile of a NewGRF. */
struct NewGRFTextfileWindow : public Window, MissingGlyphSearcher {
const GRFConfig *grf_config; ///< View the textfile of this GRFConfig.
@@ -699,35 +677,6 @@ public:
static void NewGRFConfirmationCallback(Window *w, bool confirmed);
-/** Names of the manage newgrfs window widgets. */
-enum ShowNewGRFStateWidgets {
- SNGRFS_PRESET_LIST,
- SNGRFS_PRESET_SAVE,
- SNGRFS_PRESET_DELETE,
- SNGRFS_ADD,
- SNGRFS_REMOVE,
- SNGRFS_MOVE_UP,
- SNGRFS_MOVE_DOWN,
- SNGRFS_FILTER,
- SNGRFS_FILE_LIST,
- SNGRFS_SCROLLBAR,
- SNGRFS_AVAIL_LIST,
- SNGRFS_SCROLL2BAR,
- SNGRFS_NEWGRF_INFO_TITLE,
- SNGRFS_NEWGRF_INFO,
- SNGRFS_OPEN_URL,
- SNGRFS_NEWGRF_TEXTFILE,
- SNGRFS_SET_PARAMETERS = SNGRFS_NEWGRF_TEXTFILE + TFT_END,
- SNGRFS_TOGGLE_PALETTE,
- SNGRFS_APPLY_CHANGES,
- SNGRFS_RESCAN_FILES,
- SNGRFS_RESCAN_FILES2,
- SNGRFS_CONTENT_DOWNLOAD,
- SNGRFS_CONTENT_DOWNLOAD2,
- SNGRFS_SHOW_REMOVE, ///< Select active list buttons (0 = normal, 1 = simple layout).
- SNGRFS_SHOW_APPLY, ///< Select display of the buttons below the 'details'.
-};
-
/**
* Window for showing NewGRF files
*/
@@ -1961,12 +1910,6 @@ void ShowNewGRFSettings(bool editable, bool show_params, bool exec_changes, GRFC
new NewGRFWindow(&_newgrf_desc, editable, show_params, exec_changes, config);
}
-/** The widgets for the scan progress. */
-enum ScanProgressWindowWidgets {
- SPWW_PROGRESS_BAR, ///< Simple progress bar.
- GPWW_PROGRESS_TEXT, ///< Text explaining what is happening.
-};
-
/** Widgets for the progress window. */
static const NWidgetPart _nested_scan_progress_widgets[] = {
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_NEWGRF_SCAN_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
diff --git a/src/news_gui.cpp b/src/news_gui.cpp
index 3820fe125..77b88dd15 100644
--- a/src/news_gui.cpp
+++ b/src/news_gui.cpp
@@ -32,6 +32,8 @@
#include "engine_gui.h"
#include "core/geometry_func.hpp"
+#include "widgets/news_widget.h"
+
#include "table/strings.h"
const NewsItem *_statusbar_news_item = NULL;
@@ -71,27 +73,6 @@ static TileIndex GetReferenceTile(NewsReferenceType reftype, uint32 ref)
}
}
-/** Widget numbers of the news display windows. */
-enum NewsTypeWidgets {
- NTW_PANEL, ///< The news item background panel.
- NTW_TITLE, ///< Title of the company news.
- NTW_HEADLINE, ///< The news headline.
- NTW_CLOSEBOX, ///< Close the window.
- NTW_DATE, ///< Date of the news item.
- NTW_CAPTION, ///< Title bar of the window. Only used in small news items.
- NTW_INSET, ///< Inset around the viewport in the window. Only used in small news items.
- NTW_VIEWPORT, ///< Viewport in the window.
- NTW_COMPANY_MSG, ///< Message in company news items.
- NTW_MESSAGE, ///< Space for displaying the message. Only used in small news items.
- NTW_MGR_FACE, ///< Face of the manager.
- NTW_MGR_NAME, ///< Name of the manager.
- NTW_VEH_TITLE, ///< Vehicle new title.
- NTW_VEH_BKGND, ///< Dark background of new vehicle news.
- NTW_VEH_NAME, ///< Name of the new vehicle.
- NTW_VEH_SPR, ///< Graphical display of the new vehicle.
- NTW_VEH_INFO, ///< Some technical data of the new vehicle.
-};
-
/* Normal news items. */
static const NWidgetPart _nested_normal_news_widgets[] = {
NWidget(WWT_PANEL, COLOUR_WHITE, NTW_PANEL),
@@ -967,13 +948,6 @@ static void DrawNewsString(uint left, uint right, int y, TextColour colour, cons
DrawString(left, right, y, buffer2, colour);
}
-/** Widget numbers of the message history window. */
-enum MessageHistoryWidgets {
- MHW_STICKYBOX,
- MHW_BACKGROUND,
- MHW_SCROLLBAR,
-};
-
struct MessageHistoryWindow : Window {
static const int top_spacing; ///< Additional spacing at the top of the #MHW_BACKGROUND widget.
static const int bottom_spacing; ///< Additional spacing at the bottom of the #MHW_BACKGROUND widget.
@@ -1108,32 +1082,6 @@ void ShowMessageHistory()
new MessageHistoryWindow(&_message_history_desc);
}
-/** Constants in the message options window. */
-enum MessageOptionsSpace {
- MOS_WIDG_PER_SETTING = 4, ///< Number of widgets needed for each news category, starting at widget #WIDGET_NEWSOPT_START_OPTION.
-
- MOS_LEFT_EDGE = 6, ///< Number of pixels between left edge of the window and the options buttons column.
- MOS_COLUMN_SPACING = 4, ///< Number of pixels between the buttons and the description columns.
- MOS_RIGHT_EDGE = 6, ///< Number of pixels between right edge of the window and the options descriptions column.
- MOS_BUTTON_SPACE = 10, ///< Additional space in the button with the option value (for better looks).
-
- MOS_ABOVE_GLOBAL_SETTINGS = 6, ///< Number of vertical pixels between the categories and the global options.
- MOS_BOTTOM_EDGE = 6, ///< Number of pixels between bottom edge of the window and bottom of the global options.
-};
-
-/** Message options widget numbers. */
-enum MessageOptionWidgets {
- WIDGET_NEWSOPT_BACKGROUND, ///< Background widget.
- WIDGET_NEWSOPT_LABEL, ///< Top label.
- WIDGET_NEWSOPT_DROP_SUMMARY, ///< Dropdown that adjusts at once the level for all settings.
- WIDGET_NEWSOPT_LABEL_SUMMARY, ///< Label of the summary drop down.
- WIDGET_NEWSOPT_SOUNDTICKER, ///< Button for (de)activating sound on events.
- WIDGET_NEWSOPT_SOUNDTICKER_LABEL, ///< Label of the soundticker button,
-
- WIDGET_NEWSOPT_START_OPTION, ///< First widget that is part of a group [<][label][>] [description]
- WIDGET_NEWSOPT_END_OPTION = WIDGET_NEWSOPT_START_OPTION + NT_END * MOS_WIDG_PER_SETTING, ///< First widget after the groups.
-};
-
struct MessageOptionsWindow : Window {
static const StringID message_opt[]; ///< Message report options, 'off', 'summary', or 'full'.
int state; ///< Option value for setting all categories at once.
diff --git a/src/object_gui.cpp b/src/object_gui.cpp
index 6b89c4784..83b2e276e 100644
--- a/src/object_gui.cpp
+++ b/src/object_gui.cpp
@@ -19,26 +19,14 @@
#include "viewport_func.h"
#include "window_gui.h"
+#include "widgets/object_widget.h"
+
#include "table/strings.h"
static ObjectClassID _selected_object_class; ///< the currently visible object class
static int _selected_object_index; ///< the index of the selected object in the current class or -1
static uint8 _selected_object_view; ///< the view of the selected object
-/** Object widgets in the object picker window. */
-enum BuildObjectWidgets {
- BOW_CLASS_LIST, ///< The list with classes.
- BOW_SCROLLBAR, ///< The scrollbar associated with the list.
- BOW_OBJECT_MATRIX, ///< The matrix with preview sprites.
- BOW_OBJECT_SPRITE, ///< A preview sprite of the object.
- BOW_OBJECT_SIZE, ///< The size of an object.
- BOW_INFO, ///< Other information about the object (from the NewGRF).
-
- BOW_SELECT_MATRIX, ///< Selection preview matrix of objects of a given class.
- BOW_SELECT_IMAGE, ///< Preview image in the #BOW_SELECT_MATRIX.
- BOW_SELECT_SCROLL, ///< Scrollbar next to the #BOW_SELECT_MATRIX.
-};
-
/** The window used for building objects. */
class BuildObjectWindow : public PickerWindowBase {
static const int OBJECT_MARGIN = 4; ///< The margin (in pixels) around an object.
diff --git a/src/order_gui.cpp b/src/order_gui.cpp
index adfc34798..ddc480059 100644
--- a/src/order_gui.cpp
+++ b/src/order_gui.cpp
@@ -31,36 +31,9 @@
#include "hotkeys.h"
#include "aircraft.h"
-#include "table/strings.h"
+#include "widgets/order_widget.h"
-/** Widget numbers of the order window. */
-enum OrderWindowWidgets {
- ORDER_WIDGET_CAPTION,
- ORDER_WIDGET_TIMETABLE_VIEW,
- ORDER_WIDGET_ORDER_LIST,
- ORDER_WIDGET_SCROLLBAR,
- ORDER_WIDGET_SKIP,
- ORDER_WIDGET_DELETE,
- ORDER_WIDGET_STOP_SHARING,
- ORDER_WIDGET_NON_STOP,
- ORDER_WIDGET_GOTO,
- ORDER_WIDGET_FULL_LOAD,
- ORDER_WIDGET_UNLOAD,
- ORDER_WIDGET_REFIT,
- ORDER_WIDGET_SERVICE,
- ORDER_WIDGET_EMPTY,
- ORDER_WIDGET_REFIT_DROPDOWN,
- ORDER_WIDGET_COND_VARIABLE,
- ORDER_WIDGET_COND_COMPARATOR,
- ORDER_WIDGET_COND_VALUE,
- ORDER_WIDGET_SEL_TOP_LEFT, ///< #NWID_SELECTION widget for left part of the top row of the 'your train' order window.
- ORDER_WIDGET_SEL_TOP_MIDDLE, ///< #NWID_SELECTION widget for middle part of the top row of the 'your train' order window.
- ORDER_WIDGET_SEL_TOP_RIGHT, ///< #NWID_SELECTION widget for right part of the top row of the 'your train' order window.
- ORDER_WIDGET_SEL_TOP_ROW_GROUNDVEHICLE, ///< #NWID_SELECTION widget for the top row of the 'your train' order window.
- ORDER_WIDGET_SEL_TOP_ROW, ///< #NWID_SELECTION widget for the top row of the 'your non-trains' order window.
- ORDER_WIDGET_SEL_BOTTOM_MIDDLE, ///< #NWID_SELECTION widget for the middle part of the bottom row of the 'your train' order window.
- ORDER_WIDGET_SHARED_ORDER_LIST,
-};
+#include "table/strings.h"
/** Order load types that could be given to station orders. */
static const StringID _station_load_types[][5][5] = {
diff --git a/src/osk_gui.cpp b/src/osk_gui.cpp
index 001251790..79d8b14e0 100644
--- a/src/osk_gui.cpp
+++ b/src/osk_gui.cpp
@@ -17,37 +17,11 @@
#include "gfx_func.h"
#include "querystring_gui.h"
+#include "widgets/osk_widget.h"
+
#include "table/sprites.h"
#include "table/strings.h"
-/** Widget numbers of the on-screen keyboard (OSK) window. */
-enum OskWidgets {
- OSK_WIDGET_CAPTION, ///< Title bar.
- OSK_WIDGET_TEXT, ///< Edit box.
- OSK_WIDGET_CANCEL, ///< Cancel key.
- OSK_WIDGET_OK, ///< Ok key.
- OSK_WIDGET_BACKSPACE, ///< Backspace key.
- OSK_WIDGET_SPECIAL, ///< Special key (at keyborads often used for tab key).
- OSK_WIDGET_CAPS, ///< Capslock key.
- OSK_WIDGET_SHIFT, ///< Shift(lock) key.
- OSK_WIDGET_SPACE, ///< Space bar.
- OSK_WIDGET_LEFT, ///< Cursor left key.
- OSK_WIDGET_RIGHT, ///< Cursor right key.
- OSK_WIDGET_LETTERS, ///< First widget of the 'normal' keys.
-
- OSK_WIDGET_NUMBERS_FIRST = OSK_WIDGET_LETTERS, ///< First widget of the numbers row.
- OSK_WIDGET_NUMBERS_LAST = OSK_WIDGET_NUMBERS_FIRST + 13, ///< Last widget of the numbers row.
-
- OSK_WIDGET_QWERTY_FIRST, ///< First widget of the qwerty row.
- OSK_WIDGET_QWERTY_LAST = OSK_WIDGET_QWERTY_FIRST + 11, ///< Last widget of the qwerty row.
-
- OSK_WIDGET_ASDFG_FIRST, ///< First widget of the asdfg row.
- OSK_WIDGET_ASDFG_LAST = OSK_WIDGET_ASDFG_FIRST + 11, ///< Last widget of the asdfg row.
-
- OSK_WIDGET_ZXCVB_FIRST, ///< First widget of the zxcvb row.
- OSK_WIDGET_ZXCVB_LAST = OSK_WIDGET_ZXCVB_FIRST + 11, ///< Last widget of the zxcvb row.
-};
-
char _keyboard_opt[2][OSK_KEYBOARD_ENTRIES * 4 + 1];
static WChar _keyboard[2][OSK_KEYBOARD_ENTRIES];
diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp
index 80c2d143b..195202d80 100644
--- a/src/rail_gui.cpp
+++ b/src/rail_gui.cpp
@@ -37,6 +37,8 @@
#include "station_map.h"
#include "tunnelbridge_map.h"
+#include "widgets/rail_widget.h"
+
#include "table/strings.h"
static RailType _cur_railtype; ///< Rail type of the current build-rail toolbar.
@@ -277,27 +279,6 @@ void CcBuildRailTunnel(const CommandCost &result, TileIndex tile, uint32 p1, uin
}
}
-
-/** Enum referring to the widgets of the build rail toolbar */
-enum RailToolbarWidgets {
- RTW_CAPTION,
- RTW_BUILD_NS,
- RTW_BUILD_X,
- RTW_BUILD_EW,
- RTW_BUILD_Y,
- RTW_AUTORAIL,
- RTW_DEMOLISH,
- RTW_BUILD_DEPOT,
- RTW_BUILD_WAYPOINT,
- RTW_BUILD_STATION,
- RTW_BUILD_SIGNALS,
- RTW_BUILD_BRIDGE,
- RTW_BUILD_TUNNEL,
- RTW_REMOVE,
- RTW_CONVERT_RAIL,
-};
-
-
/**
* Toggles state of the Remove button of Build rail toolbar
* @param w window the button belongs to
@@ -892,48 +873,6 @@ static void HandleStationPlacement(TileIndex start, TileIndex end)
ShowSelectStationIfNeeded(cmdcont, ta);
}
-/** Enum referring to the widgets of the rail stations window */
-enum BuildRailStationWidgets {
- BRSW_PLATFORM_DIR_X, ///< Button to select '/' view.
- BRSW_PLATFORM_DIR_Y, ///< Button to select '\' view.
-
- BRSW_PLATFORM_NUM_1, ///< Button to select stations with a single platform.
- BRSW_PLATFORM_NUM_2, ///< Button to select stations with 2 platforms.
- BRSW_PLATFORM_NUM_3, ///< Button to select stations with 3 platforms.
- BRSW_PLATFORM_NUM_4, ///< Button to select stations with 4 platforms.
- BRSW_PLATFORM_NUM_5, ///< Button to select stations with 5 platforms.
- BRSW_PLATFORM_NUM_6, ///< Button to select stations with 6 platforms.
- BRSW_PLATFORM_NUM_7, ///< Button to select stations with 7 platforms.
-
- BRSW_PLATFORM_LEN_1, ///< Button to select single tile length station platforms.
- BRSW_PLATFORM_LEN_2, ///< Button to select 2 tiles length station platforms.
- BRSW_PLATFORM_LEN_3, ///< Button to select 3 tiles length station platforms.
- BRSW_PLATFORM_LEN_4, ///< Button to select 4 tiles length station platforms.
- BRSW_PLATFORM_LEN_5, ///< Button to select 5 tiles length station platforms.
- BRSW_PLATFORM_LEN_6, ///< Button to select 6 tiles length station platforms.
- BRSW_PLATFORM_LEN_7, ///< Button to select 7 tiles length station platforms.
-
- BRSW_PLATFORM_DRAG_N_DROP, ///< Button to enable drag and drop type station placement.
-
- BRSW_HIGHLIGHT_OFF, ///< Button for turning coverage highlighting off.
- BRSW_HIGHLIGHT_ON, ///< Button for turning coverage highlighting on.
- BRSW_COVERAGE_TEXTS, ///< Empty space for the coverage texts.
-
- BRSW_MATRIX, ///< Matrix widget displaying the available stations.
- BRSW_IMAGE, ///< Panel used at each cell of the matrix.
- BRSW_MATRIX_SCROLL, ///< Scrollbar of the matrix widget.
-
- BRSW_SHOW_NEWST_ADDITIONS, ///< Selection for newstation class selection list.
- BRSW_SHOW_NEWST_MATRIX, ///< Selection for newstation image matrix.
- BRSW_SHOW_NEWST_RESIZE, ///< Selection for panel and resize at bottom right for newstation.
- BRSW_SHOW_NEWST_TYPE, ///< Display of selected station type.
- BRSW_NEWST_LIST, ///< List with available newstation classes.
- BRSW_NEWST_SCROLL, ///< Scrollbar of the #BRSW_NEWST_LIST.
-
- BRSW_PLATFORM_NUM_BEGIN = BRSW_PLATFORM_NUM_1 - 1,
- BRSW_PLATFORM_LEN_BEGIN = BRSW_PLATFORM_LEN_1 - 1,
-};
-
struct BuildRailStationWindow : public PickerWindowBase {
private:
uint line_height; ///< Height of a single line in the newstation selection matrix (#BRSW_NEWST_LIST widget).
@@ -1498,27 +1437,6 @@ static void ShowStationBuilder(Window *parent)
new BuildRailStationWindow(&_station_builder_desc, parent, newstations);
}
-/** Enum referring to the widgets of the signal window */
-enum BuildSignalWidgets {
- BSW_SEMAPHORE_NORM,
- BSW_SEMAPHORE_ENTRY,
- BSW_SEMAPHORE_EXIT,
- BSW_SEMAPHORE_COMBO,
- BSW_SEMAPHORE_PBS,
- BSW_SEMAPHORE_PBS_OWAY,
- BSW_ELECTRIC_NORM,
- BSW_ELECTRIC_ENTRY,
- BSW_ELECTRIC_EXIT,
- BSW_ELECTRIC_COMBO,
- BSW_ELECTRIC_PBS,
- BSW_ELECTRIC_PBS_OWAY,
- BSW_CONVERT,
- BSW_DRAG_SIGNALS_DENSITY,
- BSW_DRAG_SIGNALS_DENSITY_LABEL,
- BSW_DRAG_SIGNALS_DENSITY_DECREASE,
- BSW_DRAG_SIGNALS_DENSITY_INCREASE,
-};
-
struct BuildSignalWindow : public PickerWindowBase {
private:
/**
@@ -1702,14 +1620,6 @@ static void ShowSignalBuilder(Window *parent)
new BuildSignalWindow(&_signal_builder_desc, parent);
}
-/** Enum referring to the widgets of the build rail depot window */
-enum BuildRailDepotWidgets {
- BRDW_DEPOT_NE,
- BRDW_DEPOT_SE,
- BRDW_DEPOT_SW,
- BRDW_DEPOT_NW,
-};
-
struct BuildRailDepotWindow : public PickerWindowBase {
BuildRailDepotWindow(const WindowDesc *desc, Window *parent) : PickerWindowBase(parent)
{
@@ -1784,13 +1694,6 @@ static void ShowBuildTrainDepotPicker(Window *parent)
new BuildRailDepotWindow(&_build_depot_desc, parent);
}
-/** Enum referring to the widgets of the build NewGRF rail waypoint window */
-enum BuildRailWaypointWidgets {
- BRWW_WAYPOINT_MATRIX,
- BRWW_WAYPOINT,
- BRWW_SCROLL,
-};
-
struct BuildRailWaypointWindow : PickerWindowBase {
BuildRailWaypointWindow(const WindowDesc *desc, Window *parent) : PickerWindowBase(parent)
{
diff --git a/src/road_gui.cpp b/src/road_gui.cpp
index ef287972a..6c67762b6 100644
--- a/src/road_gui.cpp
+++ b/src/road_gui.cpp
@@ -29,6 +29,8 @@
#include "hotkeys.h"
#include "road_gui.h"
+#include "widgets/road_widget.h"
+
#include "table/strings.h"
static void ShowRVStationPicker(Window *parent, RoadStopType rs);
@@ -268,24 +270,8 @@ static void PlaceRoad_TruckStation(TileIndex tile)
}
}
-/** Enum referring to the widgets of the build road toolbar */
-enum RoadToolbarWidgets {
- RTW_ROAD_X,
- RTW_ROAD_Y,
- RTW_AUTOROAD,
- RTW_DEMOLISH,
- RTW_DEPOT,
- RTW_BUS_STATION,
- RTW_TRUCK_STATION,
- RTW_ONE_WAY,
- RTW_BUILD_BRIDGE,
- RTW_BUILD_TUNNEL,
- RTW_REMOVE,
-};
-
typedef void OnButtonClick(Window *w);
-
/**
* Toogles state of the Remove button of Build road toolbar
* @param w window the button belongs to
@@ -852,15 +838,6 @@ EventState RoadToolbarEditorGlobalHotkeys(uint16 key, uint16 keycode)
return w->OnKeyPress(key, keycode);
}
-/** Enum referring to the widgets of the build road depot window */
-enum BuildRoadDepotWidgets {
- BRDW_CAPTION,
- BRDW_DEPOT_NE,
- BRDW_DEPOT_SE,
- BRDW_DEPOT_SW,
- BRDW_DEPOT_NW,
-};
-
struct BuildRoadDepotWindow : public PickerWindowBase {
BuildRoadDepotWindow(const WindowDesc *desc, Window *parent) : PickerWindowBase(parent)
{
@@ -944,21 +921,6 @@ static void ShowRoadDepotPicker(Window *parent)
new BuildRoadDepotWindow(&_build_road_depot_desc, parent);
}
-/** Enum referring to the widgets of the build road station window */
-enum BuildRoadStationWidgets {
- BRSW_CAPTION,
- BRSW_BACKGROUND,
- BRSW_STATION_NE,
- BRSW_STATION_SE,
- BRSW_STATION_SW,
- BRSW_STATION_NW,
- BRSW_STATION_X,
- BRSW_STATION_Y,
- BRSW_LT_OFF,
- BRSW_LT_ON,
- BRSW_INFO,
-};
-
struct BuildRoadStationWindow : public PickerWindowBase {
BuildRoadStationWindow(const WindowDesc *desc, Window *parent, RoadStopType rs) : PickerWindowBase(parent)
{
diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp
index 47bb9a4d3..0b21f4aed 100644
--- a/src/settings_gui.cpp
+++ b/src/settings_gui.cpp
@@ -34,6 +34,8 @@
#include "ai/ai.hpp"
#include "language.h"
+#include "widgets/settings_widget.h"
+
#include "table/sprites.h"
#include "table/strings.h"
#include <map>
@@ -103,28 +105,6 @@ static int GetCurRes()
return i;
}
-/** Widgets of the game options menu */
-enum GameOptionsWidgets {
- GOW_BACKGROUND, ///< Background of the window
- GOW_CURRENCY_DROPDOWN, ///< Currency dropdown
- GOW_DISTANCE_DROPDOWN, ///< Measuring unit dropdown
- GOW_ROADSIDE_DROPDOWN, ///< Dropdown to select the road side (to set the right side ;))
- GOW_TOWNNAME_DROPDOWN, ///< Town name dropdown
- GOW_AUTOSAVE_DROPDOWN, ///< Dropdown to say how often to autosave
- GOW_LANG_DROPDOWN, ///< Language dropdown
- GOW_RESOLUTION_DROPDOWN, ///< Dropdown for the resolution
- GOW_FULLSCREEN_BUTTON, ///< Toggle fullscreen
- GOW_SCREENSHOT_DROPDOWN, ///< Select the screenshot type... please use PNG!
- GOW_BASE_GRF_DROPDOWN, ///< Use to select a base GRF
- GOW_BASE_GRF_STATUS, ///< Info about missing files etc.
- GOW_BASE_GRF_DESCRIPTION, ///< Description of selected base GRF
- GOW_BASE_SFX_DROPDOWN, ///< Use to select a base SFX
- GOW_BASE_SFX_DESCRIPTION, ///< Description of selected base SFX
- GOW_BASE_MUSIC_DROPDOWN, ///< Use to select a base music set
- GOW_BASE_MUSIC_STATUS, ///< Info about corrupted files etc.
- GOW_BASE_MUSIC_DESCRIPTION, ///< Description of selected base music set
-};
-
static void ShowCustCurrency();
template <class T>
@@ -629,20 +609,6 @@ void ShowGameOptions()
extern void StartupEconomy();
-
-/* Names of the game difficulty settings window */
-enum GameDifficultyWidgets {
- GDW_LVL_EASY,
- GDW_LVL_MEDIUM,
- GDW_LVL_HARD,
- GDW_LVL_CUSTOM,
- GDW_HIGHSCORE,
- GDW_ACCEPT,
- GDW_CANCEL,
-
- GDW_OPTIONS_START,
-};
-
void SetDifficultyLevel(int mode, DifficultySettings *gm_opt);
class GameDifficultyWindow : public Window {
@@ -1596,12 +1562,6 @@ static SettingEntry _settings_main[] = {
/** Main page, holding all advanced settings */
static SettingsPage _settings_main_page = {_settings_main, lengthof(_settings_main)};
-/** Widget numbers of settings window */
-enum GameSettingsWidgets {
- SETTINGSEL_OPTIONSPANEL, ///< Panel widget containing the option lists
- SETTINGSEL_SCROLLBAR, ///< Scrollbar
-};
-
struct GameSettingsWindow : Window {
static const int SETTINGTREE_LEFT_OFFSET = 5; ///< Position of left edge of setting values
static const int SETTINGTREE_RIGHT_OFFSET = 5; ///< Position of right edge of setting values
@@ -1866,23 +1826,6 @@ void DrawArrowButtons(int x, int y, Colours button_colour, byte state, bool clic
}
}
-/** Widget numbers of the custom currency window. */
-enum CustomCurrencyWidgets {
- CUSTCURR_RATE_DOWN,
- CUSTCURR_RATE_UP,
- CUSTCURR_RATE,
- CUSTCURR_SEPARATOR_EDIT,
- CUSTCURR_SEPARATOR,
- CUSTCURR_PREFIX_EDIT,
- CUSTCURR_PREFIX,
- CUSTCURR_SUFFIX_EDIT,
- CUSTCURR_SUFFIX,
- CUSTCURR_YEAR_DOWN,
- CUSTCURR_YEAR_UP,
- CUSTCURR_YEAR,
- CUSTCURR_PREVIEW,
-};
-
struct CustomCurrencyWindow : Window {
int query_widget;
diff --git a/src/signs_gui.cpp b/src/signs_gui.cpp
index e0ab72e01..e9b025e12 100644
--- a/src/signs_gui.cpp
+++ b/src/signs_gui.cpp
@@ -28,6 +28,8 @@
#include "hotkeys.h"
#include "transparency.h"
+#include "widgets/sign_widget.h"
+
#include "table/strings.h"
#include "table/sprites.h"
@@ -139,16 +141,6 @@ struct SignList {
const Sign *SignList::last_sign = NULL;
bool SignList::match_case = false;
-/** Enum referring to the widgets in the sign list window */
-enum SignListWidgets {
- SLW_CAPTION,
- SLW_LIST,
- SLW_SCROLLBAR,
- SLW_FILTER_TEXT, ///< Text box for typing a filter string
- SLW_FILTER_MATCH_CASE_BTN, ///< Button to toggle if case sensitive filtering should be used
- SLW_FILTER_CLEAR_BTN, ///< Button to clear the filter
-};
-
/** Enum referring to the Hotkeys in the sign list window */
enum SignListHotkeys {
SLHK_FOCUS_FILTER_BOX, ///< Focus the edit box for editing the filter string
@@ -479,17 +471,6 @@ static bool RenameSign(SignID index, const char *text)
return remove;
}
-/** Widget numbers of the query sign edit window. */
-enum QueryEditSignWidgets {
- QUERY_EDIT_SIGN_WIDGET_CAPTION,
- QUERY_EDIT_SIGN_WIDGET_TEXT,
- QUERY_EDIT_SIGN_WIDGET_OK,
- QUERY_EDIT_SIGN_WIDGET_CANCEL,
- QUERY_EDIT_SIGN_WIDGET_DELETE,
- QUERY_EDIT_SIGN_WIDGET_PREVIOUS,
- QUERY_EDIT_SIGN_WIDGET_NEXT,
-};
-
struct SignWindow : QueryStringBaseWindow, SignList {
SignID cur_sign;
diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp
index c8b38f86e..1011ba584 100644
--- a/src/smallmap_gui.cpp
+++ b/src/smallmap_gui.cpp
@@ -27,29 +27,9 @@
#include "window_func.h"
#include "company_base.h"
-#include "table/strings.h"
+#include "widgets/smallmap_widget.h"
-/** Widget numbers of the small map window. */
-enum SmallMapWindowWidgets {
- SM_WIDGET_CAPTION, ///< Caption widget.
- SM_WIDGET_MAP_BORDER, ///< Border around the smallmap.
- SM_WIDGET_MAP, ///< Panel containing the smallmap.
- SM_WIDGET_LEGEND, ///< Bottom panel to display smallmap legends.
- SM_WIDGET_ZOOM_IN, ///< Button to zoom in one step.
- SM_WIDGET_ZOOM_OUT, ///< Button to zoom out one step.
- SM_WIDGET_CONTOUR, ///< Button to select the contour view (height map).
- SM_WIDGET_VEHICLES, ///< Button to select the vehicles view.
- SM_WIDGET_INDUSTRIES, ///< Button to select the industries view.
- SM_WIDGET_ROUTES, ///< Button to select the routes view.
- SM_WIDGET_VEGETATION, ///< Button to select the vegetation view.
- SM_WIDGET_OWNERS, ///< Button to select the owners view.
- SM_WIDGET_CENTERMAP, ///< Button to move smallmap center to main window center.
- SM_WIDGET_TOGGLETOWNNAME, ///< Toggle button to display town names.
- SM_WIDGET_SELECT_BUTTONS, ///< Selection widget for the buttons present in some smallmap modes.
- SM_WIDGET_ENABLE_ALL, ///< Button to enable display of all legend entries.
- SM_WIDGET_DISABLE_ALL, ///< Button to disable display of all legend entries.
- SM_WIDGET_SHOW_HEIGHT, ///< Show heightmap toggle button.
-};
+#include "table/strings.h"
static int _smallmap_industry_count; ///< Number of used industries
static int _smallmap_company_count; ///< Number of entries in the owner legend.
diff --git a/src/station_gui.cpp b/src/station_gui.cpp
index d061f3877..3fc28cfff 100644
--- a/src/station_gui.cpp
+++ b/src/station_gui.cpp
@@ -30,6 +30,8 @@
#include "core/geometry_func.hpp"
#include "vehiclelist.h"
+#include "widgets/station_widget.h"
+
#include "table/strings.h"
/**
@@ -173,29 +175,6 @@ static void StationsWndShowStationRating(int left, int right, int y, CargoID typ
typedef GUIList<const Station*> GUIStationList;
-/** Enum for CompanyStations, referring to _company_stations_widgets */
-enum StationListWidgets {
- SLW_CAPTION, ///< Window caption
- SLW_LIST, ///< The main panel, list of stations
- SLW_SCROLLBAR, ///< Scrollbar next to the main panel
-
- /* Vehicletypes need to be in order of StationFacility due to bit magic */
- SLW_TRAIN, ///< 'TRAIN' button - list only facilities where is a railroad station
- SLW_TRUCK, ///< 'TRUCK' button - list only facilities where is a truck stop
- SLW_BUS, ///< 'BUS' button - list only facilities where is a bus stop
- SLW_AIRPLANE, ///< 'AIRPLANE' button - list only facilities where is an airport
- SLW_SHIP, ///< 'SHIP' button - list only facilities where is a dock
- SLW_FACILALL, ///< 'ALL' button - list all facilities
-
- SLW_NOCARGOWAITING, ///< 'NO' button - list stations where no cargo is waiting
- SLW_CARGOALL, ///< 'ALL' button - list all stations
-
- SLW_SORTBY, ///< 'Sort by' button - reverse sort direction
- SLW_SORTDROPBTN, ///< Dropdown button
-
- SLW_CARGOSTART, ///< Widget numbers used for list of cargo types (not present in _company_stations_widgets)
-};
-
/**
* The list of stations per company.
*/
@@ -1335,12 +1314,6 @@ static const T *FindStationsNearby(TileArea ta, bool distant_join)
return NULL;
}
-enum JoinStationWidgets {
- JSW_WIDGET_CAPTION,
- JSW_PANEL,
- JSW_SCROLLBAR,
-};
-
static const NWidgetPart _nested_select_station_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
diff --git a/src/station_gui.h b/src/station_gui.h
index 32e33d344..b088f559f 100644
--- a/src/station_gui.h
+++ b/src/station_gui.h
@@ -16,22 +16,7 @@
#include "tilearea_type.h"
#include "window_type.h"
-/** Enum for StationView, referring to _station_view_widgets and _station_view_expanded_widgets */
-enum StationViewWidgets {
- SVW_CAPTION = 0, ///< Caption of the window
- SVW_WAITING = 1, ///< List of waiting cargo
- SVW_SCROLLBAR = 2, ///< Scrollbar
- SVW_ACCEPTLIST = 3, ///< List of accepted cargoes
- SVW_RATINGLIST = 3, ///< Ratings of cargoes
- SVW_LOCATION = 4, ///< 'Location' button
- SVW_RATINGS = 5, ///< 'Ratings' button
- SVW_ACCEPTS = 5, ///< 'Accepts' button
- SVW_RENAME = 6, ///< 'Rename' button
- SVW_TRAINS = 7, ///< List of scheduled trains button
- SVW_ROADVEHS, ///< List of scheduled road vehs button
- SVW_SHIPS, ///< List of scheduled ships button
- SVW_PLANES, ///< List of scheduled planes button
-};
+#include "widgets/station_widget.h"
/** Types of cargo to display for station coverage. */
enum StationCoverageType {
diff --git a/src/statusbar_gui.cpp b/src/statusbar_gui.cpp
index ed9822eee..667240595 100644
--- a/src/statusbar_gui.cpp
+++ b/src/statusbar_gui.cpp
@@ -26,6 +26,8 @@
#include "statusbar_gui.h"
#include "core/geometry_func.hpp"
+#include "widgets/statusbar_widget.h"
+
#include "table/strings.h"
#include "table/sprites.h"
@@ -71,12 +73,6 @@ static bool DrawScrollingStatusText(const NewsItem *ni, int scroll_pos, int left
return (_current_text_dir == TD_RTL) ? (pos < right - left) : (pos + width > 0);
}
-enum StatusbarWidget {
- SBW_LEFT, ///< left part of the statusbar; date is shown there
- SBW_MIDDLE, ///< middle part; current news or company name or *** SAVING *** or *** PAUSED ***
- SBW_RIGHT, ///< right part; bank balance
-};
-
struct StatusBarWindow : Window {
bool saving;
int ticker_scroll;
diff --git a/src/subsidy_gui.cpp b/src/subsidy_gui.cpp
index 9e31fb970..71bb3f2cf 100644
--- a/src/subsidy_gui.cpp
+++ b/src/subsidy_gui.cpp
@@ -22,13 +22,9 @@
#include "subsidy_base.h"
#include "core/geometry_func.hpp"
-#include "table/strings.h"
+#include "widgets/subsidy_widget.h"
-/** Widget numbers for the subsidy list window. */
-enum SubsidyListWidgets {
- SLW_PANEL,
- SLW_SCROLLBAR,
-};
+#include "table/strings.h"
struct SubsidyListWindow : Window {
Scrollbar *vscroll;
diff --git a/src/terraform_gui.cpp b/src/terraform_gui.cpp
index ee6a3f986..8e0024752 100644
--- a/src/terraform_gui.cpp
+++ b/src/terraform_gui.cpp
@@ -32,6 +32,8 @@
#include "hotkeys.h"
#include "engine_base.h"
+#include "widgets/terraform_widget.h"
+
#include "table/strings.h"
void CcTerraform(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
@@ -141,20 +143,6 @@ void PlaceProc_DemolishArea(TileIndex tile)
VpStartPlaceSizing(tile, VPM_X_AND_Y, DDSP_DEMOLISH_AREA);
}
-/** Enum referring to the widgets of the terraform toolbar */
-enum TerraformToolbarWidgets {
- TTW_SHOW_PLACE_OBJECT, ///< Should the place object button be shown?
- TTW_BUTTONS_START, ///< Start of pushable buttons
- TTW_LOWER_LAND = TTW_BUTTONS_START, ///< Lower land button
- TTW_RAISE_LAND, ///< Raise land button
- TTW_LEVEL_LAND, ///< Level land button
- TTW_DEMOLISH, ///< Demolish aka dynamite button
- TTW_BUY_LAND, ///< Buy land button
- TTW_PLANT_TREES, ///< Plant trees button (note: opens seperate window, no place-push-button)
- TTW_PLACE_SIGN, ///< Place sign button
- TTW_PLACE_OBJECT, ///< Place object button
-};
-
/** Terra form toolbar managing class. */
struct TerraformToolbarWindow : Window {
int last_user_action; ///< Last started user action.
@@ -467,26 +455,6 @@ static const int8 _multi_terraform_coords[][2] = {
{-28, 0}, {-24, -2}, {-20, -4}, {-16, -6}, {-12, -8}, { -8,-10}, { -4,-12}, { 0,-14}, { 4,-12}, { 8,-10}, { 12, -8}, { 16, -6}, { 20, -4}, { 24, -2}, { 28, 0},
};
-/** Enum referring to the widgets of the editor terraform toolbar */
-enum EditorTerraformToolbarWidgets {
- ETTW_SHOW_PLACE_DESERT, ///< Should the place desert button be shown?
- ETTW_START, ///< Used for iterations
- ETTW_DOTS = ETTW_START, ///< Invisible widget for rendering the terraform size on.
- ETTW_BUTTONS_START, ///< Start of pushable buttons
- ETTW_DEMOLISH = ETTW_BUTTONS_START, ///< Demolish aka dynamite button
- ETTW_LOWER_LAND, ///< Lower land button
- ETTW_RAISE_LAND, ///< Raise land button
- ETTW_LEVEL_LAND, ///< Level land button
- ETTW_PLACE_ROCKS, ///< Place rocks button
- ETTW_PLACE_DESERT, ///< Place desert button (in tropical climate)
- ETTW_PLACE_OBJECT, ///< Place transmitter button
- ETTW_BUTTONS_END, ///< End of pushable buttons
- ETTW_INCREASE_SIZE = ETTW_BUTTONS_END, ///< Upwards arrow button to increase terraforming size
- ETTW_DECREASE_SIZE, ///< Downwards arrow button to decrease terraforming size
- ETTW_NEW_SCENARIO, ///< Button for generating a new scenario
- ETTW_RESET_LANDSCAPE, ///< Button for removing all company-owned property
-};
-
static const NWidgetPart _nested_scen_edit_land_gen_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
diff --git a/src/timetable_gui.cpp b/src/timetable_gui.cpp
index 9017c2a43..a3b53fff3 100644
--- a/src/timetable_gui.cpp
+++ b/src/timetable_gui.cpp
@@ -25,27 +25,11 @@
#include "vehicle_gui.h"
#include "settings_type.h"
+#include "widgets/timetable_widget.h"
+
#include "table/sprites.h"
#include "table/strings.h"
-enum TimetableViewWindowWidgets {
- TTV_CAPTION,
- TTV_ORDER_VIEW,
- TTV_TIMETABLE_PANEL,
- TTV_ARRIVAL_DEPARTURE_PANEL, ///< Panel with the expected/scheduled arrivals
- TTV_SCROLLBAR,
- TTV_SUMMARY_PANEL,
- TTV_START_DATE,
- TTV_CHANGE_TIME,
- TTV_CLEAR_TIME,
- TTV_RESET_LATENESS,
- TTV_AUTOFILL,
- TTV_EXPECTED, ///< Toggle between expected and scheduled arrivals
- TTV_SHARED_ORDER_LIST, ///< Show the shared order list
- TTV_ARRIVAL_DEPARTURE_SELECTION, ///< Disable/hide the arrival departure panel
- TTV_EXPECTED_SELECTION, ///< Disable/hide the expected selection button
-};
-
/** Container for the arrival/departure dates of a vehicle */
struct TimetableArrivalDeparture {
Ticks arrival; ///< The arrival time
diff --git a/src/toolbar_gui.cpp b/src/toolbar_gui.cpp
index d349e4c3a..a6379c5a5 100644
--- a/src/toolbar_gui.cpp
+++ b/src/toolbar_gui.cpp
@@ -44,6 +44,8 @@
#include "engine_base.h"
#include "settings_type.h"
+#include "widgets/toolbar_widget.h"
+
#include "network/network.h"
#include "network/network_gui.h"
#include "network/network_func.h"
@@ -68,63 +70,6 @@ enum CallBackFunction {
CBF_PLACE_LANDINFO,
};
-/** Toolbar widgets in the normal game mode */
-enum ToolbarNormalWidgets {
- TBN_PAUSE = 0,
- TBN_FASTFORWARD,
- TBN_SETTINGS,
- TBN_SAVEGAME,
- TBN_SMALLMAP,
- TBN_TOWNDIRECTORY,
- TBN_SUBSIDIES,
- TBN_STATIONS,
- TBN_FINANCES,
- TBN_COMPANIES,
- TBN_GRAPHICS,
- TBN_LEAGUE,
- TBN_INDUSTRIES,
- TBN_VEHICLESTART, ///< trains, actually. So following are trucks, boats and planes
- TBN_TRAINS = TBN_VEHICLESTART,
- TBN_ROADVEHS,
- TBN_SHIPS,
- TBN_AIRCRAFTS,
- TBN_ZOOMIN,
- TBN_ZOOMOUT,
- TBN_RAILS,
- TBN_ROADS,
- TBN_WATER,
- TBN_AIR,
- TBN_LANDSCAPE,
- TBN_MUSICSOUND,
- TBN_NEWSREPORT,
- TBN_HELP,
- TBN_SWITCHBAR, ///< only available when toolbar has been split
- TBN_END ///< The end marker
-};
-
-/** Toolbar widgets in the scenario editor */
-enum ToolbarScenEditorWidgets {
- TBSE_PAUSE = 0,
- TBSE_FASTFORWARD,
- TBSE_SETTINGS,
- TBSE_SAVESCENARIO,
- TBSE_SPACERPANEL,
- TBSE_DATEPANEL,
- TBSE_DATEBACKWARD,
- TBSE_DATEFORWARD,
- TBSE_SMALLMAP,
- TBSE_ZOOMIN,
- TBSE_ZOOMOUT,
- TBSE_LANDGENERATE,
- TBSE_TOWNGENERATE,
- TBSE_INDUSTRYGENERATE,
- TBSE_BUILDROAD,
- TBSE_BUILDDOCKS,
- TBSE_PLANTTREES,
- TBSE_PLACESIGNS,
- TBSE_DATEPANEL_CONTAINER,
-};
-
/**
* Drop down list entry for showing a checked/unchecked toggle item.
*/
diff --git a/src/town_gui.cpp b/src/town_gui.cpp
index e2aa9b95a..4f77dfedd 100644
--- a/src/town_gui.cpp
+++ b/src/town_gui.cpp
@@ -36,20 +36,12 @@
#include "genworld.h"
#include "sprite.h"
+#include "widgets/town_widget.h"
+
#include "table/strings.h"
typedef GUIList<const Town*> GUITownList;
-/** Widget numbers of the town authority window. */
-enum TownAuthorityWidgets {
- TWA_CAPTION,
- TWA_RATING_INFO, ///< Overview with ratings for each company.
- TWA_COMMAND_LIST, ///< List of commands for the player.
- TWA_SCROLLBAR,
- TWA_ACTION_INFO, ///< Additional information about the action.
- TWA_EXECUTE, ///< Do-it button.
-};
-
static const NWidgetPart _nested_town_authority_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
@@ -303,17 +295,6 @@ static void ShowTownAuthorityWindow(uint town)
AllocateWindowDescFront<TownAuthorityWindow>(&_town_authority_desc, town);
}
-/** Widget numbers of the town view window. */
-enum TownViewWidgets {
- TVW_CAPTION,
- TVW_VIEWPORT,
- TVW_INFOPANEL,
- TVW_CENTERVIEW,
- TVW_SHOWAUTHORITY,
- TVW_CHANGENAME,
- TVW_EXPAND,
- TVW_DELETE,
-};
/* Town view window. */
struct TownViewWindow : Window {
@@ -609,16 +590,6 @@ void ShowTownViewWindow(TownID town)
}
}
-/** Widget numbers of town directory window. */
-enum TownDirectoryWidgets {
- TDW_SORTNAME,
- TDW_SORTPOPULATION,
- TDW_CENTERTOWN,
- TDW_SCROLLBAR,
- TDW_BOTTOM_PANEL,
- TDW_BOTTOM_TEXT,
-};
-
static const NWidgetPart _nested_town_directory_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
@@ -915,29 +886,6 @@ void CcFoundRandomTown(const CommandCost &result, TileIndex tile, uint32 p1, uin
if (result.Succeeded()) ScrollMainWindowToTile(Town::Get(_new_town_id)->xy);
}
-/** Widget numbers of town scenario editor window. */
-enum TownScenarioEditorWidgets {
- TSEW_BACKGROUND,
- TSEW_NEWTOWN,
- TSEW_RANDOMTOWN,
- TSEW_MANYRANDOMTOWNS,
- TSEW_TOWNNAME_TEXT,
- TSEW_TOWNNAME_EDITBOX,
- TSEW_TOWNNAME_RANDOM,
- TSEW_TOWNSIZE,
- TSEW_SIZE_SMALL,
- TSEW_SIZE_MEDIUM,
- TSEW_SIZE_LARGE,
- TSEW_SIZE_RANDOM,
- TSEW_CITY,
- TSEW_TOWNLAYOUT,
- TSEW_LAYOUT_ORIGINAL,
- TSEW_LAYOUT_BETTER,
- TSEW_LAYOUT_GRID2,
- TSEW_LAYOUT_GRID3,
- TSEW_LAYOUT_RANDOM,
-};
-
static const NWidgetPart _nested_found_town_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
diff --git a/src/transparency_gui.cpp b/src/transparency_gui.cpp
index d7fcf082e..77247fa12 100644
--- a/src/transparency_gui.cpp
+++ b/src/transparency_gui.cpp
@@ -14,6 +14,8 @@
#include "transparency.h"
#include "sound_func.h"
+#include "widgets/transparency_widget.h"
+
#include "table/sprites.h"
#include "table/strings.h"
@@ -22,25 +24,6 @@ TransparencyOptionBits _transparency_lock; ///< Prevent these bits from flipping
TransparencyOptionBits _invisibility_opt; ///< The bits that should be invisible.
byte _display_opt; ///< What do we want to draw/do?
-/** Widget numbers of the transparency window. */
-enum TransparencyToolbarWidgets {
- /* Button row. */
- TTW_WIDGET_BEGIN, ///< First toggle button.
- TTW_WIDGET_SIGNS = TTW_WIDGET_BEGIN, ///< Signs background transparency toggle button.
- TTW_WIDGET_TREES, ///< Trees transparency toggle button.
- TTW_WIDGET_HOUSES, ///< Houses transparency toggle button.
- TTW_WIDGET_INDUSTRIES, ///< industries transparency toggle button.
- TTW_WIDGET_BUILDINGS, ///< Company buildings and structures transparency toggle button.
- TTW_WIDGET_BRIDGES, ///< Bridges transparency toggle button.
- TTW_WIDGET_STRUCTURES, ///< Object structure transparency toggle button.
- TTW_WIDGET_CATENARY, ///< Catenary transparency toggle button.
- TTW_WIDGET_LOADING, ///< Loading indicators transparency toggle button.
- TTW_WIDGET_END, ///< End of toggle buttons.
-
- /* Panel with buttons for invisibility */
- TTW_WIDGET_BUTTONS, ///< Panel with 'invisibility' buttons.
-};
-
class TransparenciesWindow : public Window
{
public:
diff --git a/src/tree_gui.cpp b/src/tree_gui.cpp
index 76f254dda..5429e716d 100644
--- a/src/tree_gui.cpp
+++ b/src/tree_gui.cpp
@@ -19,30 +19,14 @@
#include "sound_func.h"
#include "tree_map.h"
+#include "widgets/tree_widget.h"
+
#include "table/sprites.h"
#include "table/strings.h"
#include "table/tree_land.h"
void PlaceTreesRandomly();
-/** Widget definitions for the build trees window. */
-enum BuildTreesWidgets {
- BTW_TYPE_11,
- BTW_TYPE_12,
- BTW_TYPE_13,
- BTW_TYPE_14,
- BTW_TYPE_21,
- BTW_TYPE_22,
- BTW_TYPE_23,
- BTW_TYPE_24,
- BTW_TYPE_31,
- BTW_TYPE_32,
- BTW_TYPE_33,
- BTW_TYPE_34,
- BTW_TYPE_RANDOM,
- BTW_MANY_RANDOM,
-};
-
/** Tree Sprites with their palettes */
const PalSpriteID tree_sprites[] = {
{ 1621, PAL_NONE }, { 1587, PAL_NONE }, { 1656, PAL_NONE }, { 1579, PAL_NONE },
diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp
index 6c85e3f9c..8018896c3 100644
--- a/src/vehicle_gui.cpp
+++ b/src/vehicle_gui.cpp
@@ -356,19 +356,6 @@ static void DrawVehicleRefitWindow(const SubtypeList list[NUM_CARGO], int sel, u
}
}
-/** Widget numbers of the vehicle refit window. */
-enum VehicleRefitWidgets {
- VRW_CAPTION,
- VRW_VEHICLE_PANEL_DISPLAY,
- VRW_SHOW_HSCROLLBAR,
- VRW_HSCROLLBAR,
- VRW_SELECTHEADER,
- VRW_MATRIX,
- VRW_SCROLLBAR,
- VRW_INFOPANEL,
- VRW_REFITBUTTON,
-};
-
/** Refit cargo window. */
struct RefitWindow : public Window {
int sel; ///< Index in refit options, \c -1 if nothing is selected.
@@ -1173,19 +1160,6 @@ void ChangeVehicleViewWindow(VehicleID from_index, VehicleID to_index)
ChangeVehicleWindow(WC_VEHICLE_TIMETABLE, from_index, to_index);
}
-enum VehicleListWindowWidgets {
- VLW_WIDGET_CAPTION,
- VLW_WIDGET_SORT_ORDER,
- VLW_WIDGET_SORT_BY_PULLDOWN,
- VLW_WIDGET_LIST,
- VLW_WIDGET_SCROLLBAR,
- VLW_WIDGET_HIDE_BUTTONS,
- VLW_WIDGET_AVAILABLE_VEHICLES,
- VLW_WIDGET_MANAGE_VEHICLES_DROPDOWN,
- VLW_WIDGET_STOP_ALL,
- VLW_WIDGET_START_ALL,
-};
-
static const NWidgetPart _nested_vehicle_list[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
@@ -1715,23 +1689,6 @@ void ShowVehicleListWindow(CompanyID company, VehicleType vehicle_type, TileInde
/* Unified vehicle GUI - Vehicle Details Window */
-/** Constants of vehicle details widget indices */
-enum VehicleDetailsWindowWidgets {
- VLD_WIDGET_CAPTION,
- VLD_WIDGET_RENAME_VEHICLE,
- VLD_WIDGET_TOP_DETAILS,
- VLD_WIDGET_INCREASE_SERVICING_INTERVAL,
- VLD_WIDGET_DECREASE_SERVICING_INTERVAL,
- VLD_WIDGET_SERVICING_INTERVAL,
- VLD_WIDGET_MIDDLE_DETAILS,
- VLD_WIDGET_MATRIX,
- VLD_WIDGET_SCROLLBAR,
- VLD_WIDGET_DETAILS_CARGO_CARRIED,
- VLD_WIDGET_DETAILS_TRAIN_VEHICLES,
- VLD_WIDGET_DETAILS_CAPACITY_OF_EACH,
- VLD_WIDGET_DETAILS_TOTAL_CARGO,
-};
-
assert_compile(VLD_WIDGET_DETAILS_CARGO_CARRIED == VLD_WIDGET_DETAILS_CARGO_CARRIED + TDW_TAB_CARGO );
assert_compile(VLD_WIDGET_DETAILS_TRAIN_VEHICLES == VLD_WIDGET_DETAILS_CARGO_CARRIED + TDW_TAB_INFO );
assert_compile(VLD_WIDGET_DETAILS_CAPACITY_OF_EACH == VLD_WIDGET_DETAILS_CARGO_CARRIED + TDW_TAB_CAPACITY);
diff --git a/src/vehicle_gui.h b/src/vehicle_gui.h
index c52d8626f..249019262 100644
--- a/src/vehicle_gui.h
+++ b/src/vehicle_gui.h
@@ -18,26 +18,10 @@
#include "station_type.h"
#include "engine_type.h"
#include "company_type.h"
+#include "widgets/vehicle_widget.h"
void ShowVehicleRefitWindow(const Vehicle *v, VehicleOrderID order, Window *parent, bool auto_refit = false);
-/** Constants of vehicle view widget indices */
-enum VehicleViewWindowWidgets {
- VVW_WIDGET_CAPTION,
- VVW_WIDGET_VIEWPORT, ///< Viewport widget.
- VVW_WIDGET_START_STOP_VEH,
- VVW_WIDGET_CENTER_MAIN_VIEH,
- VVW_WIDGET_GOTO_DEPOT,
- VVW_WIDGET_REFIT_VEH,
- VVW_WIDGET_SHOW_ORDERS,
- VVW_WIDGET_SHOW_DETAILS,
- VVW_WIDGET_CLONE_VEH,
- VVW_WIDGET_SELECT_DEPOT_CLONE, ///< Selection widget between 'goto depot', and 'clone vehicle' buttons.
- VVW_WIDGET_SELECT_REFIT_TURN, ///< Selection widget between 'refit' and 'turn around' buttons.
- VVW_WIDGET_TURN_AROUND,
- VVW_WIDGET_FORCE_PROCEED,
-};
-
/** The tabs in the train details window */
enum TrainDetailsWindowTabs {
TDW_TAB_CARGO = 0, ///< Tab with cargo carried by the vehicles
diff --git a/src/viewport_gui.cpp b/src/viewport_gui.cpp
index f9d189cfb..d1c24f66f 100644
--- a/src/viewport_gui.cpp
+++ b/src/viewport_gui.cpp
@@ -17,19 +17,11 @@
#include "zoom_func.h"
#include "window_func.h"
+#include "widgets/viewport_widget.h"
+
#include "table/strings.h"
#include "table/sprites.h"
-/** Widget numbers of the extra viewport window. */
-enum ExtraViewportWindowWidgets {
- EVW_CAPTION,
- EVW_VIEWPORT,
- EVW_ZOOMIN,
- EVW_ZOOMOUT,
- EVW_MAIN_TO_VIEW,
- EVW_VIEW_TO_MAIN,
-};
-
/* Extra ViewPort Window Stuff */
static const NWidgetPart _nested_extra_view_port_widgets[] = {
NWidget(NWID_HORIZONTAL),
diff --git a/src/waypoint_gui.cpp b/src/waypoint_gui.cpp
index 673ddfd3b..e9e9b6436 100644
--- a/src/waypoint_gui.cpp
+++ b/src/waypoint_gui.cpp
@@ -23,16 +23,9 @@
#include "window_func.h"
#include "waypoint_base.h"
-#include "table/strings.h"
+#include "widgets/waypoint_widget.h"
-/** Widget definitions for the waypoint window. */
-enum WaypointWindowWidgets {
- WAYPVW_CAPTION,
- WAYPVW_VIEWPORT,
- WAYPVW_CENTERVIEW,
- WAYPVW_RENAME,
- WAYPVW_SHOW_VEHICLES,
-};
+#include "table/strings.h"
/** GUI for accessing waypoints and buoys. */
struct WaypointWindow : Window {
diff --git a/src/widgets/ai_widget.h b/src/widgets/ai_widget.h
new file mode 100644
index 000000000..51cab3f30
--- /dev/null
+++ b/src/widgets/ai_widget.h
@@ -0,0 +1,65 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file ai_widget.h Types related to the ai widgets. */
+
+#ifndef WIDGETS_AI_WIDGET_H
+#define WIDGETS_AI_WIDGET_H
+
+/** Widgets of the WC_AI_LIST. */
+enum AIListWindowWidgets {
+ AIL_WIDGET_LIST, ///< The matrix with all available AIs
+ AIL_WIDGET_SCROLLBAR, ///< Scrollbar next to the AI list
+ AIL_WIDGET_INFO_BG, ///< Panel to draw some AI information on
+ AIL_WIDGET_ACCEPT, ///< Accept button
+ AIL_WIDGET_CANCEL, ///< Cancel button
+};
+
+/** Widgets of the WC_AI_SETTINGS. */
+enum AISettingsWindowWidgets {
+ AIS_WIDGET_BACKGROUND, ///< Panel to draw the settings on
+ AIS_WIDGET_SCROLLBAR, ///< Scrollbar to scroll through all settings
+ AIS_WIDGET_ACCEPT, ///< Accept button
+ AIS_WIDGET_RESET, ///< Reset button
+};
+
+/** Widgets of the WC_GAME_OPTIONS (WC_GAME_OPTIONS is also used in others). */
+enum AIConfigWindowWidgets {
+ AIC_WIDGET_BACKGROUND, ///< Window background
+ AIC_WIDGET_DECREASE, ///< Decrease the number of AIs
+ AIC_WIDGET_INCREASE, ///< Increase the number of AIs
+ AIC_WIDGET_NUMBER, ///< Number of AIs
+ AIC_WIDGET_LIST, ///< List with currently selected AIs
+ AIC_WIDGET_SCROLLBAR, ///< Scrollbar to scroll through the selected AIs
+ AIC_WIDGET_MOVE_UP, ///< Move up button
+ AIC_WIDGET_MOVE_DOWN, ///< Move down button
+ AIC_WIDGET_CHANGE, ///< Select another AI button
+ AIC_WIDGET_CONFIGURE, ///< Change AI settings button
+ AIC_WIDGET_CLOSE, ///< Close window button
+ AIC_WIDGET_CONTENT_DOWNLOAD, ///< Download content button
+};
+
+/** Widgets of the WC_AI_DEBUG. */
+enum AIDebugWindowWidgets {
+ AID_WIDGET_VIEW,
+ AID_WIDGET_NAME_TEXT,
+ AID_WIDGET_SETTINGS,
+ AID_WIDGET_RELOAD_TOGGLE,
+ AID_WIDGET_LOG_PANEL,
+ AID_WIDGET_SCROLLBAR,
+ AID_WIDGET_COMPANY_BUTTON_START,
+ AID_WIDGET_COMPANY_BUTTON_END = AID_WIDGET_COMPANY_BUTTON_START + MAX_COMPANIES - 1,
+ AID_BREAK_STRING_WIDGETS,
+ AID_WIDGET_BREAK_STR_ON_OFF_BTN,
+ AID_WIDGET_BREAK_STR_EDIT_BOX,
+ AID_WIDGET_MATCH_CASE_BTN,
+ AID_WIDGET_CONTINUE_BTN,
+};
+
+#endif /* WIDGETS_AI_WIDGET_H */
diff --git a/src/widgets/airport_widget.h b/src/widgets/airport_widget.h
new file mode 100644
index 000000000..35df2e1a4
--- /dev/null
+++ b/src/widgets/airport_widget.h
@@ -0,0 +1,37 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file airport_widget.h Types related to the airport widgets. */
+
+#ifndef WIDGETS_AIRPORT_WIDGET_H
+#define WIDGETS_AIRPORT_WIDGET_H
+
+/** Widgets of the WC_BUILD_TOOLBAR (WC_BUILD_TOOLBAR is also used in others). */
+enum AirportToolbarWidgets {
+ ATW_AIRPORT,
+ ATW_DEMOLISH,
+};
+
+/** Widgets of the WC_BUILD_STATION (WC_BUILD_STATION is also used in others). */
+enum AirportPickerWidgets {
+ BAIRW_CLASS_DROPDOWN,
+ BAIRW_AIRPORT_LIST,
+ BAIRW_SCROLLBAR,
+ BAIRW_LAYOUT_NUM,
+ BAIRW_LAYOUT_DECREASE,
+ BAIRW_LAYOUT_INCREASE,
+ BAIRW_AIRPORT_SPRITE,
+ BAIRW_EXTRA_TEXT,
+ BAIRW_BOTTOMPANEL,
+ BAIRW_COVERAGE_LABEL,
+ BAIRW_BTN_DONTHILIGHT,
+ BAIRW_BTN_DOHILIGHT,
+};
+
+#endif /* WIDGETS_AIRPORT_WIDGET_H */
diff --git a/src/widgets/autoreplace_widget.h b/src/widgets/autoreplace_widget.h
new file mode 100644
index 000000000..51205a269
--- /dev/null
+++ b/src/widgets/autoreplace_widget.h
@@ -0,0 +1,40 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file autoreplace_widget.h Types related to the autoreplace widgets. */
+
+#ifndef WIDGETS_AUTOREPLACE_WIDGET_H
+#define WIDGETS_AUTOREPLACE_WIDGET_H
+
+/** Widgets of the WC_REPLACE_VEHICLE. */
+enum ReplaceVehicleWindowWidgets {
+ RVW_WIDGET_CAPTION,
+
+ /* Left and right matrix + details. */
+ RVW_WIDGET_LEFT_MATRIX,
+ RVW_WIDGET_LEFT_SCROLLBAR,
+ RVW_WIDGET_RIGHT_MATRIX,
+ RVW_WIDGET_RIGHT_SCROLLBAR,
+ RVW_WIDGET_LEFT_DETAILS,
+ RVW_WIDGET_RIGHT_DETAILS,
+
+ /* Button row. */
+ RVW_WIDGET_START_REPLACE,
+ RVW_WIDGET_INFO_TAB,
+ RVW_WIDGET_STOP_REPLACE,
+
+ /* Train only widgets. */
+ RVW_WIDGET_TRAIN_ENGINEWAGON_TOGGLE,
+ RVW_WIDGET_TRAIN_FLUFF_LEFT,
+ RVW_WIDGET_TRAIN_RAILTYPE_DROPDOWN,
+ RVW_WIDGET_TRAIN_FLUFF_RIGHT,
+ RVW_WIDGET_TRAIN_WAGONREMOVE_TOGGLE,
+};
+
+#endif /* WIDGETS_AUTOREPLACE_WIDGET_H */
diff --git a/src/widgets/bootstrap_widget.h b/src/widgets/bootstrap_widget.h
new file mode 100644
index 000000000..9fd25d90e
--- /dev/null
+++ b/src/widgets/bootstrap_widget.h
@@ -0,0 +1,22 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file bootstrap_widget.h Types related to the bootstrap widgets. */
+
+#ifndef WIDGETS_BOOTSTRAP_WIDGET_H
+#define WIDGETS_BOOTSTRAP_WIDGET_H
+
+/** Widgets of the WC_CONFIRM_POPUP_QUERY (WC_CONFIRM_POPUP_QUERY is also used in QueryWidgets). */
+enum BootstrapAskForDownloadWidgets {
+ BAFDW_QUESTION, ///< The question whether to download.
+ BAFDW_YES, ///< An affirmative answer to the question.
+ BAFDW_NO, ///< An negative answer to the question.
+};
+
+#endif /* WIDGETS_BOOTSTRAP_WIDGET_H */
diff --git a/src/widgets/bridge_widget.h b/src/widgets/bridge_widget.h
new file mode 100644
index 000000000..aa4a7cd4c
--- /dev/null
+++ b/src/widgets/bridge_widget.h
@@ -0,0 +1,24 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file bridge_widget.h Types related to the bridge widgets. */
+
+#ifndef WIDGETS_BRIDGE_WIDGET_H
+#define WIDGETS_BRIDGE_WIDGET_H
+
+/** Widgets of the WC_BUILD_BRIDGE. */
+enum BuildBridgeSelectionWidgets {
+ BBSW_CAPTION,
+ BBSW_DROPDOWN_ORDER,
+ BBSW_DROPDOWN_CRITERIA,
+ BBSW_BRIDGE_LIST,
+ BBSW_SCROLLBAR,
+};
+
+#endif /* WIDGETS_BRIDGE_WIDGET_H */
diff --git a/src/widgets/build_vehicle_widget.h b/src/widgets/build_vehicle_widget.h
new file mode 100644
index 000000000..715f47d5c
--- /dev/null
+++ b/src/widgets/build_vehicle_widget.h
@@ -0,0 +1,30 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file build_vehicle_widget.h Types related to the build_vehicle widgets. */
+
+#ifndef WIDGETS_BUILD_VEHICLE_WIDGET_H
+#define WIDGETS_BUILD_VEHICLE_WIDGET_H
+
+/** Widgets of the WC_BUILD_VEHICLE. */
+enum BuildVehicleWidgets {
+ BUILD_VEHICLE_WIDGET_CAPTION,
+ BUILD_VEHICLE_WIDGET_SORT_ASSENDING_DESCENDING,
+ BUILD_VEHICLE_WIDGET_SORT_DROPDOWN,
+ BUILD_VEHICLE_WIDGET_CARGO_FILTER_DROPDOWN,
+ BUILD_VEHICLE_WIDGET_LIST,
+ BUILD_VEHICLE_WIDGET_SCROLLBAR,
+ BUILD_VEHICLE_WIDGET_PANEL,
+ BUILD_VEHICLE_WIDGET_BUILD,
+ BUILD_VEHICLE_WIDGET_BUILD_SEL,
+ BUILD_VEHICLE_WIDGET_RENAME,
+ BUILD_VEHICLE_WIDGET_END
+};
+
+#endif /* WIDGETS_BUILD_VEHICLE_WIDGET_H */
diff --git a/src/widgets/cheat_widget.h b/src/widgets/cheat_widget.h
new file mode 100644
index 000000000..64ebc588d
--- /dev/null
+++ b/src/widgets/cheat_widget.h
@@ -0,0 +1,20 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file cheat_widget.h Types related to the cheat widgets. */
+
+#ifndef WIDGETS_CHEAT_WIDGET_H
+#define WIDGETS_CHEAT_WIDGET_H
+
+/** Widgets of the WC_CHEATS. */
+enum CheatWidgets {
+ CW_PANEL,
+};
+
+#endif /* WIDGETS_CHEAT_WIDGET_H */
diff --git a/src/widgets/company_widget.h b/src/widgets/company_widget.h
new file mode 100644
index 000000000..684df9376
--- /dev/null
+++ b/src/widgets/company_widget.h
@@ -0,0 +1,191 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file company_widget.h Types related to the company widgets. */
+
+#ifndef WIDGETS_COMPANY_WIDGET_H
+#define WIDGETS_COMPANY_WIDGET_H
+
+/** Widgets of the WC_COMPANY. */
+enum CompanyWindowWidgets {
+ CW_WIDGET_CAPTION,
+
+ CW_WIDGET_FACE,
+ CW_WIDGET_FACE_TITLE,
+
+ CW_WIDGET_DESC_INAUGURATION,
+ CW_WIDGET_DESC_COLOUR_SCHEME,
+ CW_WIDGET_DESC_COLOUR_SCHEME_EXAMPLE,
+ CW_WIDGET_DESC_VEHICLE,
+ CW_WIDGET_DESC_VEHICLE_COUNTS,
+ CW_WIDGET_DESC_COMPANY_VALUE,
+ CW_WIDGET_DESC_INFRASTRUCTURE,
+ CW_WIDGET_DESC_INFRASTRUCTURE_COUNTS,
+
+ CW_WIDGET_SELECT_DESC_OWNERS,
+ CW_WIDGET_DESC_OWNERS,
+
+ CW_WIDGET_SELECT_BUTTONS, ///< Selection widget for the button bar.
+ CW_WIDGET_NEW_FACE,
+ CW_WIDGET_COLOUR_SCHEME,
+ CW_WIDGET_PRESIDENT_NAME,
+ CW_WIDGET_COMPANY_NAME,
+ CW_WIDGET_BUY_SHARE,
+ CW_WIDGET_SELL_SHARE,
+
+ CW_WIDGET_SELECT_VIEW_BUILD_HQ,
+ CW_WIDGET_VIEW_HQ,
+ CW_WIDGET_BUILD_HQ,
+
+ CW_WIDGET_SELECT_RELOCATE, ///< View/hide the 'Relocate HQ' button.
+ CW_WIDGET_RELOCATE_HQ,
+
+ CW_WIDGET_VIEW_INFRASTRUCTURE,
+
+ CW_WIDGET_HAS_PASSWORD, ///< Draw a lock when the company has a password
+ CW_WIDGET_SELECT_MULTIPLAYER, ///< Multiplayer selection panel.
+ CW_WIDGET_COMPANY_PASSWORD,
+ CW_WIDGET_COMPANY_JOIN,
+};
+
+/** Widgets of the WC_FINANCES. */
+enum CompanyFinancesWindowWidgets {
+ CFW_CAPTION, ///< Caption of the window
+ CFW_TOGGLE_SIZE, ///< Toggle windows size
+ CFW_SEL_PANEL, ///< Select panel or nothing
+ CFW_EXPS_CATEGORY, ///< Column for expenses category strings
+ CFW_EXPS_PRICE1, ///< Column for year Y-2 expenses
+ CFW_EXPS_PRICE2, ///< Column for year Y-1 expenses
+ CFW_EXPS_PRICE3, ///< Column for year Y expenses
+ CFW_TOTAL_PANEL, ///< Panel for totals
+ CFW_SEL_MAXLOAN, ///< Selection of maxloan column
+ CFW_BALANCE_VALUE, ///< Bank balance value
+ CFW_LOAN_VALUE, ///< Loan
+ CFW_LOAN_LINE, ///< Line for summing bank balance and loan
+ CFW_TOTAL_VALUE, ///< Total
+ CFW_MAXLOAN_GAP, ///< Gap above max loan widget
+ CFW_MAXLOAN_VALUE, ///< Max loan widget
+ CFW_SEL_BUTTONS, ///< Selection of buttons
+ CFW_INCREASE_LOAN, ///< Increase loan
+ CFW_REPAY_LOAN, ///< Decrease loan
+ CFW_INFRASTRUCTURE,///< View company infrastructure
+};
+
+
+/** Widgets of the WC_COMPANY_COLOUR. */
+enum SelectCompanyLiveryWindowWidgets {
+ SCLW_WIDGET_CAPTION,
+ SCLW_WIDGET_CLASS_GENERAL,
+ SCLW_WIDGET_CLASS_RAIL,
+ SCLW_WIDGET_CLASS_ROAD,
+ SCLW_WIDGET_CLASS_SHIP,
+ SCLW_WIDGET_CLASS_AIRCRAFT,
+ SCLW_WIDGET_SPACER_DROPDOWN,
+ SCLW_WIDGET_PRI_COL_DROPDOWN,
+ SCLW_WIDGET_SEC_COL_DROPDOWN,
+ SCLW_WIDGET_MATRIX,
+};
+
+
+/** Widgets of the WC_COMPANY_MANAGER_FACE.
+ * Do not change the order of the widgets from SCMFW_WIDGET_HAS_MOUSTACHE_EARRING to SCMFW_WIDGET_GLASSES_R,
+ * this order is needed for the WE_CLICK event of DrawFaceStringLabel().
+ */
+enum SelectCompanyManagerFaceWidgets {
+ SCMFW_WIDGET_CAPTION,
+ SCMFW_WIDGET_TOGGLE_LARGE_SMALL,
+ SCMFW_WIDGET_SELECT_FACE,
+ SCMFW_WIDGET_CANCEL,
+ SCMFW_WIDGET_ACCEPT,
+ SCMFW_WIDGET_MALE, ///< Male button in the simple view.
+ SCMFW_WIDGET_FEMALE, ///< Female button in the simple view.
+ SCMFW_WIDGET_MALE2, ///< Male button in the advanced view.
+ SCMFW_WIDGET_FEMALE2, ///< Female button in the advanced view.
+ SCMFW_WIDGET_SEL_LOADSAVE, ///< Selection to display the load/save/number buttons in the advanced view.
+ SCMFW_WIDGET_SEL_MALEFEMALE, ///< Selection to display the male/female buttons in the simple view.
+ SCMFW_WIDGET_SEL_PARTS, ///< Selection to display the buttons for setting each part of the face in the advanced view.
+ SCMFW_WIDGET_RANDOM_NEW_FACE,
+ SCMFW_WIDGET_TOGGLE_LARGE_SMALL_BUTTON,
+ SCMFM_WIDGET_FACE,
+ SCMFW_WIDGET_LOAD,
+ SCMFW_WIDGET_FACECODE,
+ SCMFW_WIDGET_SAVE,
+ SCMFW_WIDGET_HAS_MOUSTACHE_EARRING_TEXT,
+ SCMFW_WIDGET_TIE_EARRING_TEXT,
+ SCMFW_WIDGET_LIPS_MOUSTACHE_TEXT,
+ SCMFW_WIDGET_HAS_GLASSES_TEXT,
+ SCMFW_WIDGET_HAIR_TEXT,
+ SCMFW_WIDGET_EYEBROWS_TEXT,
+ SCMFW_WIDGET_EYECOLOUR_TEXT,
+ SCMFW_WIDGET_GLASSES_TEXT,
+ SCMFW_WIDGET_NOSE_TEXT,
+ SCMFW_WIDGET_CHIN_TEXT,
+ SCMFW_WIDGET_JACKET_TEXT,
+ SCMFW_WIDGET_COLLAR_TEXT,
+ SCMFW_WIDGET_ETHNICITY_EUR,
+ SCMFW_WIDGET_ETHNICITY_AFR,
+ SCMFW_WIDGET_HAS_MOUSTACHE_EARRING,
+ SCMFW_WIDGET_HAS_GLASSES,
+ SCMFW_WIDGET_EYECOLOUR_L,
+ SCMFW_WIDGET_EYECOLOUR,
+ SCMFW_WIDGET_EYECOLOUR_R,
+ SCMFW_WIDGET_CHIN_L,
+ SCMFW_WIDGET_CHIN,
+ SCMFW_WIDGET_CHIN_R,
+ SCMFW_WIDGET_EYEBROWS_L,
+ SCMFW_WIDGET_EYEBROWS,
+ SCMFW_WIDGET_EYEBROWS_R,
+ SCMFW_WIDGET_LIPS_MOUSTACHE_L,
+ SCMFW_WIDGET_LIPS_MOUSTACHE,
+ SCMFW_WIDGET_LIPS_MOUSTACHE_R,
+ SCMFW_WIDGET_NOSE_L,
+ SCMFW_WIDGET_NOSE,
+ SCMFW_WIDGET_NOSE_R,
+ SCMFW_WIDGET_HAIR_L,
+ SCMFW_WIDGET_HAIR,
+ SCMFW_WIDGET_HAIR_R,
+ SCMFW_WIDGET_JACKET_L,
+ SCMFW_WIDGET_JACKET,
+ SCMFW_WIDGET_JACKET_R,
+ SCMFW_WIDGET_COLLAR_L,
+ SCMFW_WIDGET_COLLAR,
+ SCMFW_WIDGET_COLLAR_R,
+ SCMFW_WIDGET_TIE_EARRING_L,
+ SCMFW_WIDGET_TIE_EARRING,
+ SCMFW_WIDGET_TIE_EARRING_R,
+ SCMFW_WIDGET_GLASSES_L,
+ SCMFW_WIDGET_GLASSES,
+ SCMFW_WIDGET_GLASSES_R,
+};
+
+/** Widgets of the WC_COMPANY_INFRASTRUCTURE. */
+enum CompanyInfrastructureWindowWidgets {
+ CIW_WIDGET_CAPTION,
+ CIW_WIDGET_RAIL_DESC,
+ CIW_WIDGET_RAIL_COUNT,
+ CIW_WIDGET_ROAD_DESC,
+ CIW_WIDGET_ROAD_COUNT,
+ CIW_WIDGET_WATER_DESC,
+ CIW_WIDGET_WATER_COUNT,
+ CIW_WIDGET_STATION_DESC,
+ CIW_WIDGET_STATION_COUNT,
+ CIW_WIDGET_TOTAL_DESC,
+ CIW_WIDGET_TOTAL,
+};
+
+/** Widgets of the WC_BUY_COMPANY. */
+enum BuyCompanyWidgets {
+ BCW_CAPTION,
+ BCW_FACE,
+ BCW_QUESTION,
+ BCW_NO,
+ BCW_YES,
+};
+
+#endif /* WIDGETS_COMPANY_WIDGET_H */
diff --git a/src/widgets/console_widget.h b/src/widgets/console_widget.h
new file mode 100644
index 000000000..773d9d572
--- /dev/null
+++ b/src/widgets/console_widget.h
@@ -0,0 +1,20 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file console_widget.h Types related to the console widgets. */
+
+#ifndef WIDGETS_CONSOLE_WIDGET_H
+#define WIDGETS_CONSOLE_WIDGET_H
+
+/** Widgets of the WC_CONSOLE. */
+enum ConsoleWidgets {
+ CW_BACKGROUND, ///< Background of the console
+};
+
+#endif /* WIDGETS_CONSOLE_WIDGET_H */
diff --git a/src/widgets/date_widget.h b/src/widgets/date_widget.h
new file mode 100644
index 000000000..78fd49080
--- /dev/null
+++ b/src/widgets/date_widget.h
@@ -0,0 +1,23 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file date_widget.h Types related to the date widgets. */
+
+#ifndef WIDGETS_DATE_WIDGET_H
+#define WIDGETS_DATE_WIDGET_H
+
+/** Widgets of the WC_SET_DATE. */
+enum SetDateWidgets {
+ SDW_DAY, ///< Dropdown for the day
+ SDW_MONTH, ///< Dropdown for the month
+ SDW_YEAR, ///< Dropdown for the year
+ SDW_SET_DATE, ///< Actually set the date
+};
+
+#endif /* WIDGETS_DATE_WIDGET_H */
diff --git a/src/widgets/depot_widget.h b/src/widgets/depot_widget.h
new file mode 100644
index 000000000..755a8be57
--- /dev/null
+++ b/src/widgets/depot_widget.h
@@ -0,0 +1,37 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file depot_widget.h Types related to the depot widgets. */
+
+#ifndef WIDGETS_DEPOT_WIDGET_H
+#define WIDGETS_DEPOT_WIDGET_H
+
+/** Widgets of the WC_VEHICLE_DEPOT. */
+enum DepotWindowWidgets {
+ DEPOT_WIDGET_CAPTION,
+ DEPOT_WIDGET_SELL,
+ DEPOT_WIDGET_SHOW_SELL_CHAIN,
+ DEPOT_WIDGET_SELL_CHAIN,
+ DEPOT_WIDGET_SELL_ALL,
+ DEPOT_WIDGET_AUTOREPLACE,
+ DEPOT_WIDGET_MATRIX,
+ DEPOT_WIDGET_V_SCROLL, ///< Vertical scrollbar
+ DEPOT_WIDGET_SHOW_H_SCROLL,
+ DEPOT_WIDGET_H_SCROLL, ///< Horizontal scrollbar
+ DEPOT_WIDGET_BUILD,
+ DEPOT_WIDGET_CLONE,
+ DEPOT_WIDGET_LOCATION,
+ DEPOT_WIDGET_SHOW_RENAME,
+ DEPOT_WIDGET_RENAME,
+ DEPOT_WIDGET_VEHICLE_LIST,
+ DEPOT_WIDGET_STOP_ALL,
+ DEPOT_WIDGET_START_ALL,
+};
+
+#endif /* WIDGETS_DEPOT_WIDGET_H */
diff --git a/src/widgets/dock_widget.h b/src/widgets/dock_widget.h
new file mode 100644
index 000000000..eedd42a25
--- /dev/null
+++ b/src/widgets/dock_widget.h
@@ -0,0 +1,29 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file dock_widget.h Types related to the dock widgets. */
+
+#ifndef WIDGETS_DOCK_WIDGET_H
+#define WIDGETS_DOCK_WIDGET_H
+
+/** Widgets of the WC_SCEN_BUILD_TOOLBAR / WC_BUILD_TOOLBAR (WC_SCEN_BUILD_TOOLBAR / WC_BUILD_TOOLBAR is also used in others). */
+enum DockToolbarWidgets {
+ DTW_BUTTONS_BEGIN, ///< Begin of clickable buttons (except seperating panel)
+ DTW_CANAL = DTW_BUTTONS_BEGIN, ///< Build canal button
+ DTW_LOCK, ///< Build lock button
+ DTW_DEMOLISH, ///< Demolish aka dynamite button
+ DTW_DEPOT, ///< Build depot button
+ DTW_STATION, ///< Build station button
+ DTW_BUOY, ///< Build buoy button
+ DTW_RIVER, ///< Build river button (in scenario editor)
+ DTW_BUILD_AQUEDUCT, ///< Build aqueduct button
+ DTW_END, ///< End of toolbar widgets
+};
+
+#endif /* WIDGETS_DOCK_WIDGET_H */
diff --git a/src/widgets/dropdown.cpp b/src/widgets/dropdown.cpp
index b57ea0c35..54294796d 100644
--- a/src/widgets/dropdown.cpp
+++ b/src/widgets/dropdown.cpp
@@ -16,6 +16,8 @@
#include "../window_func.h"
#include "dropdown_type.h"
+#include "dropdown_widget.h"
+
void DropDownListItem::Draw(int left, int right, int top, int bottom, bool sel, int bg_colour) const
{
@@ -79,13 +81,6 @@ static void DeleteDropDownList(DropDownList *list)
delete list;
}
-/** Widget numbers of the dropdown menu. */
-enum DropdownMenuWidgets {
- DDM_ITEMS, ///< Panel showing the dropdown items.
- DDM_SHOW_SCROLL, ///< Hide scrollbar if too few items.
- DDM_SCROLL, ///< Scrollbar.
-};
-
static const NWidgetPart _nested_dropdown_menu_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_PANEL, COLOUR_END, DDM_ITEMS), SetMinimalSize(1, 1), SetScrollbar(DDM_SCROLL), EndContainer(),
diff --git a/src/widgets/dropdown_widget.h b/src/widgets/dropdown_widget.h
new file mode 100644
index 000000000..58ea586fe
--- /dev/null
+++ b/src/widgets/dropdown_widget.h
@@ -0,0 +1,22 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file dropdown_widget.h Types related to the dropdown widgets. */
+
+#ifndef WIDGETS_DROPDOWN_WIDGET_H
+#define WIDGETS_DROPDOWN_WIDGET_H
+
+/** Widgets of the WC_DROPDOWN_MENU. */
+enum DropdownMenuWidgets {
+ DDM_ITEMS, ///< Panel showing the dropdown items.
+ DDM_SHOW_SCROLL, ///< Hide scrollbar if too few items.
+ DDM_SCROLL, ///< Scrollbar.
+};
+
+#endif /* WIDGETS_DROPDOWN_WIDGET_H */
diff --git a/src/widgets/engine_widget.h b/src/widgets/engine_widget.h
new file mode 100644
index 000000000..32297b432
--- /dev/null
+++ b/src/widgets/engine_widget.h
@@ -0,0 +1,22 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file engine_widget.h Types related to the engine widgets. */
+
+#ifndef WIDGETS_ENGINE_WIDGET_H
+#define WIDGETS_ENGINE_WIDGET_H
+
+/** Widgets of the WC_ENGINE_PREVIEW. */
+enum EnginePreviewWidgets {
+ EPW_QUESTION, ///< The container for the question
+ EPW_NO, ///< No button
+ EPW_YES, ///< Yes button
+};
+
+#endif /* WIDGETS_ENGINE_WIDGET_H */
diff --git a/src/widgets/error_widget.h b/src/widgets/error_widget.h
new file mode 100644
index 000000000..6a45aa75b
--- /dev/null
+++ b/src/widgets/error_widget.h
@@ -0,0 +1,22 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file error_widget.h Types related to the error widgets. */
+
+#ifndef WIDGETS_ERROR_WIDGET_H
+#define WIDGETS_ERROR_WIDGET_H
+
+/** Widgets of the WC_ERRMSG. */
+enum ErrorMessageWidgets {
+ EMW_CAPTION,
+ EMW_FACE,
+ EMW_MESSAGE,
+};
+
+#endif /* WIDGETS_ERROR_WIDGET_H */
diff --git a/src/widgets/fios_widget.h b/src/widgets/fios_widget.h
new file mode 100644
index 000000000..74012abff
--- /dev/null
+++ b/src/widgets/fios_widget.h
@@ -0,0 +1,36 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file fios_widget.h Types related to the fios widgets. */
+
+#ifndef WIDGETS_FIOS_WIDGET_H
+#define WIDGETS_FIOS_WIDGET_H
+
+/** Widgets of the WC_SAVELOAD. */
+enum SaveLoadWindowWidgets {
+ SLWW_WINDOWTITLE,
+ SLWW_SORT_BYNAME,
+ SLWW_SORT_BYDATE,
+ SLWW_BACKGROUND,
+ SLWW_FILE_BACKGROUND,
+ SLWW_HOME_BUTTON,
+ SLWW_DRIVES_DIRECTORIES_LIST,
+ SLWW_SCROLLBAR,
+ SLWW_CONTENT_DOWNLOAD, ///< only available for play scenario/heightmap (content download)
+ SLWW_SAVE_OSK_TITLE, ///< only available for save operations
+ SLWW_DELETE_SELECTION, ///< same in here
+ SLWW_SAVE_GAME, ///< not to mention in here too
+ SLWW_CONTENT_DOWNLOAD_SEL, ///< Selection 'stack' to 'hide' the content download
+ SLWW_DETAILS, ///< Panel with game details
+ SLWW_NEWGRF_INFO, ///< Button to open NewGgrf configuration
+ SLWW_LOAD_BUTTON, ///< Button to load game/scenario
+ SLWW_MISSING_NEWGRFS, ///< Button to find missing NewGRFs online
+};
+
+#endif /* WIDGETS_FIOS_WIDGET_H */
diff --git a/src/widgets/genworld_widget.h b/src/widgets/genworld_widget.h
new file mode 100644
index 000000000..7ff0c5423
--- /dev/null
+++ b/src/widgets/genworld_widget.h
@@ -0,0 +1,93 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file genworld_widget.h Types related to the genworld widgets. */
+
+#ifndef WIDGETS_GENWORLD_WIDGET_H
+#define WIDGETS_GENWORLD_WIDGET_H
+
+/** Widgets of the WC_GENERATE_LANDSCAPE (WC_GENERATE_LANDSCAPE is also used in GenerateLandscapeWindowWidgets and CreateScenarioWindowWidgets). */
+enum GenenerateLandscapeWindowMode {
+ GLWM_GENERATE, ///< Generate new game
+ GLWM_HEIGHTMAP, ///< Load from heightmap
+ GLWM_SCENARIO, ///< Generate flat land
+};
+
+/** Widgets of the WC_GENERATE_LANDSCAPE (WC_GENERATE_LANDSCAPE is also used in GenenerateLandscapeWindowMode and CreateScenarioWindowWidgets). */
+enum GenerateLandscapeWindowWidgets {
+ GLAND_TEMPERATE, ///< Button with icon "Temperate"
+ GLAND_ARCTIC, ///< Button with icon "Arctic"
+ GLAND_TROPICAL, ///< Button with icon "Tropical"
+ GLAND_TOYLAND, ///< Button with icon "Toyland"
+
+ GLAND_MAPSIZE_X_PULLDOWN, ///< Dropdown 'map X size'
+ GLAND_MAPSIZE_Y_PULLDOWN, ///< Dropdown 'map Y size'
+
+ GLAND_TOWN_PULLDOWN, ///< Dropdown 'No. of towns'
+ GLAND_INDUSTRY_PULLDOWN, ///< Dropdown 'No. of industries'
+
+ GLAND_RANDOM_EDITBOX, ///< 'Random seed' editbox
+ GLAND_RANDOM_BUTTON, ///< 'Randomise' button
+
+ GLAND_GENERATE_BUTTON, ///< 'Generate' button
+
+ GLAND_START_DATE_DOWN, ///< Decrease start year
+ GLAND_START_DATE_TEXT, ///< Start year
+ GLAND_START_DATE_UP, ///< Increase start year
+
+ GLAND_SNOW_LEVEL_DOWN, ///< Decrease snow level
+ GLAND_SNOW_LEVEL_TEXT, ///< Snow level
+ GLAND_SNOW_LEVEL_UP, ///< Increase snow level
+
+ GLAND_TREE_PULLDOWN, ///< Dropdown 'Tree algorithm'
+ GLAND_LANDSCAPE_PULLDOWN, ///< Dropdown 'Land generator'
+
+ GLAND_HEIGHTMAP_NAME_TEXT, ///< Heightmap name
+ GLAND_HEIGHTMAP_SIZE_TEXT, ///< Size of heightmap
+ GLAND_HEIGHTMAP_ROTATION_PULLDOWN, ///< Dropdown 'Heightmap rotation'
+
+ GLAND_TERRAIN_PULLDOWN, ///< Dropdown 'Terrain type'
+ GLAND_WATER_PULLDOWN, ///< Dropdown 'Sea level'
+ GLAND_RIVER_PULLDOWN, ///< Dropdown 'Rivers'
+ GLAND_SMOOTHNESS_PULLDOWN, ///< Dropdown 'Smoothness'
+ GLAND_VARIETY_PULLDOWN, ///< Dropdown 'Variety distribution'
+
+ GLAND_BORDERS_RANDOM, ///< 'Random'/'Manual' borders
+ GLAND_WATER_NW, ///< NW 'Water'/'Freeform'
+ GLAND_WATER_NE, ///< NE 'Water'/'Freeform'
+ GLAND_WATER_SE, ///< SE 'Water'/'Freeform'
+ GLAND_WATER_SW, ///< SW 'Water'/'Freeform'
+};
+
+/** Widgets of the WC_GENERATE_LANDSCAPE (WC_GENERATE_LANDSCAPE is also used in GenerateLandscapeWindowWidgets and GenenerateLandscapeWindowMode). */
+enum CreateScenarioWindowWidgets {
+ CSCEN_TEMPERATE, ///< Select temperate landscape style.
+ CSCEN_ARCTIC, ///< Select arctic landscape style.
+ CSCEN_TROPICAL, ///< Select tropical landscape style.
+ CSCEN_TOYLAND, ///< Select toy-land landscape style.
+ CSCEN_EMPTY_WORLD, ///< Generate an empty flat world.
+ CSCEN_RANDOM_WORLD, ///< Generate random land button
+ CSCEN_MAPSIZE_X_PULLDOWN, ///< Pull-down arrow for x map size.
+ CSCEN_MAPSIZE_Y_PULLDOWN, ///< Pull-down arrow for y map size.
+ CSCEN_START_DATE_DOWN, ///< Decrease start year (start earlier).
+ CSCEN_START_DATE_TEXT, ///< Clickable start date value.
+ CSCEN_START_DATE_UP, ///< Increase start year (start later).
+ CSCEN_FLAT_LAND_HEIGHT_DOWN, ///< Decrease flat land height.
+ CSCEN_FLAT_LAND_HEIGHT_TEXT, ///< Clickable flat land height value.
+ CSCEN_FLAT_LAND_HEIGHT_UP ///< Increase flat land height.
+};
+
+/** Widgets of the WC_MODAL_PROGRESS (WC_MODAL_PROGRESS is also used in ScanProgressWindowWidgets). */
+enum GenerationProgressWindowWidgets {
+ GPWW_PROGRESS_BAR,
+ GPWW_PROGRESS_TEXT,
+ GPWW_ABORT,
+};
+
+#endif /* WIDGETS_GENWORLD_WIDGET_H */
diff --git a/src/widgets/graph_widget.h b/src/widgets/graph_widget.h
new file mode 100644
index 000000000..b2d95c98a
--- /dev/null
+++ b/src/widgets/graph_widget.h
@@ -0,0 +1,66 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file graph_widget.h Types related to the graph widgets. */
+
+#ifndef WIDGETS_GRAPH_WIDGET_H
+#define WIDGETS_GRAPH_WIDGET_H
+
+/** Widgets of the WC_GRAPH_LEGEND. */
+enum GraphLegendWidgetNumbers {
+ GLW_BACKGROUND,
+
+ GLW_FIRST_COMPANY,
+ GLW_LAST_COMPANY = GLW_FIRST_COMPANY + MAX_COMPANIES - 1,
+};
+
+/** Widgets of the WC_OPERATING_PROFIT / WC_DELIVERED_CARGO / WC_COMPANY_VALUE / WC_INCOME_GRAPH. */
+enum CompanyValueWidgets {
+ BGW_KEY_BUTTON,
+ BGW_BACKGROUND,
+ BGW_GRAPH,
+ BGW_RESIZE,
+};
+
+/** Widget of the WC_PERFORMANCE_HISTORY. */
+enum PerformanceHistoryGraphWidgets {
+ PHW_KEY,
+ PHW_DETAILED_PERFORMANCE,
+ PHW_BACKGROUND,
+ PHW_GRAPH,
+ PHW_RESIZE,
+};
+
+/** Widget of the WC_PAYMENT_RATES. */
+enum CargoPaymentRatesWidgets {
+ CPW_BACKGROUND,
+ CPW_HEADER,
+ CPW_GRAPH,
+ CPW_RESIZE,
+ CPW_FOOTER,
+ CPW_ENABLE_CARGOES,
+ CPW_DISABLE_CARGOES,
+ CPW_CARGO_FIRST,
+};
+
+/** Widget of the WC_COMPANY_LEAGUE. */
+enum CompanyLeagueWidgets {
+ CLW_BACKGROUND,
+};
+
+/** Widget of the WC_PERFORMANCE_DETAIL. */
+enum PerformanceRatingDetailsWidgets {
+ PRW_SCORE_FIRST,
+ PRW_SCORE_LAST = PRW_SCORE_FIRST + (SCORE_END - SCORE_BEGIN) - 1,
+
+ PRW_COMPANY_FIRST,
+ PRW_COMPANY_LAST = PRW_COMPANY_FIRST + MAX_COMPANIES - 1,
+};
+
+#endif /* WIDGETS_GRAPH_WIDGET_H */
diff --git a/src/widgets/group_widget.h b/src/widgets/group_widget.h
new file mode 100644
index 000000000..e405d0ca8
--- /dev/null
+++ b/src/widgets/group_widget.h
@@ -0,0 +1,37 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file group_widget.h Types related to the group widgets. */
+
+#ifndef WIDGETS_GROUP_WIDGET_H
+#define WIDGETS_GROUP_WIDGET_H
+
+/** Widgets of the WC_TRAINS_LIST / WC_ROADVEH_LIST / WC_SHIPS_LIST / WC_AIRCRAFT_LIST. */
+enum GroupListWidgets {
+ GRP_WIDGET_CAPTION,
+ GRP_WIDGET_SORT_BY_ORDER,
+ GRP_WIDGET_SORT_BY_DROPDOWN,
+ GRP_WIDGET_LIST_VEHICLE,
+ GRP_WIDGET_LIST_VEHICLE_SCROLLBAR,
+ GRP_WIDGET_AVAILABLE_VEHICLES,
+ GRP_WIDGET_MANAGE_VEHICLES_DROPDOWN,
+ GRP_WIDGET_STOP_ALL,
+ GRP_WIDGET_START_ALL,
+
+ GRP_WIDGET_ALL_VEHICLES,
+ GRP_WIDGET_DEFAULT_VEHICLES,
+ GRP_WIDGET_LIST_GROUP,
+ GRP_WIDGET_LIST_GROUP_SCROLLBAR,
+ GRP_WIDGET_CREATE_GROUP,
+ GRP_WIDGET_DELETE_GROUP,
+ GRP_WIDGET_RENAME_GROUP,
+ GRP_WIDGET_REPLACE_PROTECTION,
+};
+
+#endif /* WIDGETS_GROUP_WIDGET_H */
diff --git a/src/widgets/highscore_widget.h b/src/widgets/highscore_widget.h
new file mode 100644
index 000000000..f7cec2e8b
--- /dev/null
+++ b/src/widgets/highscore_widget.h
@@ -0,0 +1,20 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file highscore_widget.h Types related to the highscore widgets. */
+
+#ifndef WIDGETS_HIGHSCORE_WIDGET_H
+#define WIDGETS_HIGHSCORE_WIDGET_H
+
+/** Widgets of the WC_HIGHSCORE / WC_ENDSCREEN. */
+enum HighscoreWidgets {
+ HSW_BACKGROUND,
+};
+
+#endif /* WIDGETS_HIGHSCORE_WIDGET_H */
diff --git a/src/widgets/industry_widget.h b/src/widgets/industry_widget.h
new file mode 100644
index 000000000..9a4f5aa54
--- /dev/null
+++ b/src/widgets/industry_widget.h
@@ -0,0 +1,50 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file industry_widget.h Types related to the industry widgets. */
+
+#ifndef WIDGETS_INDUSTRY_WIDGET_H
+#define WIDGETS_INDUSTRY_WIDGET_H
+
+/** Widgets of the WC_BUILD_INDUSTRY. */
+enum DynamicPlaceIndustriesWidgets {
+ DPIW_MATRIX_WIDGET,
+ DPIW_SCROLLBAR,
+ DPIW_INFOPANEL,
+ DPIW_DISPLAY_WIDGET,
+ DPIW_FUND_WIDGET,
+};
+
+/** Widgets of the WC_INDUSTRY_VIEW. */
+enum IndustryViewWidgets {
+ IVW_CAPTION,
+ IVW_VIEWPORT,
+ IVW_INFO,
+ IVW_GOTO,
+ IVW_DISPLAY,
+};
+
+/** Widgets of the WC_INDUSTRY_DIRECTORY. */
+enum IndustryDirectoryWidgets {
+ IDW_DROPDOWN_ORDER,
+ IDW_DROPDOWN_CRITERIA,
+ IDW_INDUSTRY_LIST,
+ IDW_SCROLLBAR,
+};
+
+/** Widgets of the WC_INDUSTRY_CARGOES */
+enum IndustryCargoesWidgets {
+ ICW_CAPTION,
+ ICW_NOTIFY,
+ ICW_PANEL,
+ ICW_SCROLLBAR,
+};
+
+
+#endif /* WIDGETS_INDUSTRY_WIDGET_H */
diff --git a/src/widgets/intro_widget.h b/src/widgets/intro_widget.h
new file mode 100644
index 000000000..5b7de2252
--- /dev/null
+++ b/src/widgets/intro_widget.h
@@ -0,0 +1,38 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file intro_widget.h Types related to the intro widgets. */
+
+#ifndef WIDGETS_INTRO_WIDGET_H
+#define WIDGETS_INTRO_WIDGET_H
+
+/** Widgets of the WC_SELECT_GAME. */
+enum SelectGameIntroWidgets {
+ SGI_GENERATE_GAME,
+ SGI_LOAD_GAME,
+ SGI_PLAY_SCENARIO,
+ SGI_PLAY_HEIGHTMAP,
+ SGI_EDIT_SCENARIO,
+ SGI_PLAY_NETWORK,
+ SGI_TEMPERATE_LANDSCAPE,
+ SGI_ARCTIC_LANDSCAPE,
+ SGI_TROPIC_LANDSCAPE,
+ SGI_TOYLAND_LANDSCAPE,
+ SGI_TRANSLATION_SELECTION,
+ SGI_TRANSLATION,
+ SGI_OPTIONS,
+ SGI_DIFFICULTIES,
+ SGI_SETTINGS_OPTIONS,
+ SGI_GRF_SETTINGS,
+ SGI_CONTENT_DOWNLOAD,
+ SGI_AI_SETTINGS,
+ SGI_EXIT,
+};
+
+#endif /* WIDGETS_INTRO_WIDGET_H */
diff --git a/src/widgets/main_widget.h b/src/widgets/main_widget.h
new file mode 100644
index 000000000..823e62283
--- /dev/null
+++ b/src/widgets/main_widget.h
@@ -0,0 +1,20 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file main_widget.h Types related to the main widgets. */
+
+#ifndef WIDGETS_MAIN_WIDGET_H
+#define WIDGETS_MAIN_WIDGET_H
+
+/** Widgets of the WC_MAIN_WINDOW. */
+enum MainWindowWidgets {
+ MW_VIEWPORT, ///< Main window viewport.
+};
+
+#endif /* WIDGETS_MAIN_WIDGET_H */
diff --git a/src/widgets/misc_widget.h b/src/widgets/misc_widget.h
new file mode 100644
index 000000000..b446509e2
--- /dev/null
+++ b/src/widgets/misc_widget.h
@@ -0,0 +1,48 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file misc_widget.h Types related to the misc widgets. */
+
+#ifndef WIDGETS_MISC_WIDGET_H
+#define WIDGETS_MISC_WIDGET_H
+
+/** Widgets of the WC_LAND_INFO. */
+enum LandInfoWidgets {
+ LIW_BACKGROUND, ///< Background to draw on
+};
+
+/** Widgets of the WC_TOOLTIPS. */
+enum ToolTipsWidgets {
+ TTW_BACKGROUND, ///< Background to draw on
+};
+
+/** Widgets of the WC_GAME_OPTIONS (WC_GAME_OPTIONS is also used in others). */
+enum AboutWidgets {
+ AW_SCROLLING_TEXT, ///< The actually scrolling text
+ AW_WEBSITE, ///< URL of OpenTTD website
+};
+
+/** Widgets of the WC_QUERY_STRING (WC_QUERY_STRING is also used in QueryEditSignWidgets). */
+enum QueryStringWidgets {
+ QUERY_STR_WIDGET_CAPTION,
+ QUERY_STR_WIDGET_TEXT,
+ QUERY_STR_WIDGET_DEFAULT,
+ QUERY_STR_WIDGET_CANCEL,
+ QUERY_STR_WIDGET_OK
+};
+
+/** Widgets of the WC_CONFIRM_POPUP_QUERY (WC_CONFIRM_POPUP_QUERY is also used in BootstrapAskForDownloadWidgets). */
+enum QueryWidgets {
+ QUERY_WIDGET_CAPTION,
+ QUERY_WIDGET_TEXT,
+ QUERY_WIDGET_NO,
+ QUERY_WIDGET_YES
+};
+
+#endif /* WIDGETS_MISC_WIDGET_H */
diff --git a/src/widgets/music_widget.h b/src/widgets/music_widget.h
new file mode 100644
index 000000000..a74509c75
--- /dev/null
+++ b/src/widgets/music_widget.h
@@ -0,0 +1,53 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file music_widget.h Types related to the music widgets. */
+
+#ifndef WIDGETS_MUSIC_WIDGET_H
+#define WIDGETS_MUSIC_WIDGET_H
+
+/** Widgets of the WC_MUSIC_TRACK_SELECTION. */
+enum MusicTrackSelectionWidgets {
+ MTSW_LIST_LEFT,
+ MTSW_PLAYLIST,
+ MTSW_LIST_RIGHT,
+ MTSW_ALL,
+ MTSW_OLD,
+ MTSW_NEW,
+ MTSW_EZY,
+ MTSW_CUSTOM1,
+ MTSW_CUSTOM2,
+ MTSW_CLEAR,
+};
+
+/** Widgets of the WC_MUSIC_WINDOW. */
+enum MusicWidgets {
+ MW_PREV,
+ MW_NEXT,
+ MW_STOP,
+ MW_PLAY,
+ MW_SLIDERS,
+ MW_MUSIC_VOL,
+ MW_EFFECT_VOL,
+ MW_BACKGROUND,
+ MW_TRACK,
+ MW_TRACK_NR,
+ MW_TRACK_TITLE,
+ MW_TRACK_NAME,
+ MW_SHUFFLE,
+ MW_PROGRAMME,
+ MW_ALL,
+ MW_OLD,
+ MW_NEW,
+ MW_EZY,
+ MW_CUSTOM1,
+ MW_CUSTOM2,
+};
+
+#endif /* WIDGETS_MUSIC_WIDGET_H */
diff --git a/src/widgets/network_chat_widget.h b/src/widgets/network_chat_widget.h
new file mode 100644
index 000000000..d87a2d9fa
--- /dev/null
+++ b/src/widgets/network_chat_widget.h
@@ -0,0 +1,25 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file network_chat_widget.h Types related to the network chat widgets. */
+
+#ifndef WIDGETS_NETWORK_CHAT_WIDGET_H
+#define WIDGETS_NETWORK_CHAT_WIDGET_H
+
+/** Widgets of the WC_SEND_NETWORK_MSG. */
+enum NetWorkChatWidgets {
+ NWCW_CLOSE,
+ NWCW_BACKGROUND,
+ NWCW_DESTINATION,
+ NWCW_TEXTBOX,
+ NWCW_SENDBUTTON,
+};
+
+
+#endif /* WIDGETS_NETWORK_CHAT_WIDGET_H */
diff --git a/src/widgets/network_content_widget.h b/src/widgets/network_content_widget.h
new file mode 100644
index 000000000..c3a18cd9a
--- /dev/null
+++ b/src/widgets/network_content_widget.h
@@ -0,0 +1,47 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file network_content_widget.h Types related to the network content widgets. */
+
+#ifndef WIDGETS_NETWORK_CONTENT_WIDGET_H
+#define WIDGETS_NETWORK_CONTENT_WIDGET_H
+
+/** Widgets of the WC_NETWORK_STATUS_WINDOW (WC_NETWORK_STATUS_WINDOW is also used in NetworkJoinStatusWidgets). */
+enum NetworkContentDownloadStatusWindowWidgets {
+ NCDSWW_BACKGROUND, ///< Background
+ NCDSWW_CANCELOK, ///< (Optional) Cancel/OK button
+};
+
+/** Widgets of the WC_NETWORK_WINDOW (WC_NETWORK_WINDOW is also used in NetworkGameWindowWidgets, NetworkStartServerWidgets, and NetworkLobbyWindowWidgets). */
+enum NetworkContentListWindowWidgets {
+ NCLWW_BACKGROUND, ///< Resize button
+
+ NCLWW_FILTER_CAPT, ///< Caption for the filter editbox
+ NCLWW_FILTER, ///< Filter editbox
+
+ NCLWW_CHECKBOX, ///< Button above checkboxes
+ NCLWW_TYPE, ///< 'Type' button
+ NCLWW_NAME, ///< 'Name' button
+
+ NCLWW_MATRIX, ///< Panel with list of content
+ NCLWW_SCROLLBAR, ///< Scrollbar of matrix
+
+ NCLWW_DETAILS, ///< Panel with content details
+
+ NCLWW_SELECT_ALL, ///< 'Select all' button
+ NCLWW_SELECT_UPDATE, ///< 'Select updates' button
+ NCLWW_UNSELECT, ///< 'Unselect all' button
+ NCLWW_OPEN_URL, ///< 'Open url' button
+ NCLWW_CANCEL, ///< 'Cancel' button
+ NCLWW_DOWNLOAD, ///< 'Download' button
+
+ NCLWW_SEL_ALL_UPDATE, ///< #NWID_SELECTION widget for select all/update buttons.
+};
+
+#endif /* WIDGETS_NETWORK_CONTENT_WIDGET_H */
diff --git a/src/widgets/network_widget.h b/src/widgets/network_widget.h
new file mode 100644
index 000000000..7b5e09cf1
--- /dev/null
+++ b/src/widgets/network_widget.h
@@ -0,0 +1,128 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file network_widget.h Types related to the network widgets. */
+
+#ifndef WIDGETS_NETWORK_WIDGET_H
+#define WIDGETS_NETWORK_WIDGET_H
+
+/** Widgets of the WC_NETWORK_WINDOW (WC_NETWORK_WINDOW is also used in NetworkContentListWindowWidgets, NetworkStartServerWidgets, and NetworkLobbyWindowWidgets). */
+enum NetworkGameWindowWidgets {
+ NGWW_MAIN, ///< Main panel
+
+ NGWW_CONNECTION, ///< Label in front of connection droplist
+ NGWW_CONN_BTN, ///< 'Connection' droplist button
+ NGWW_CLIENT_LABEL, ///< Label in front of client name edit box
+ NGWW_CLIENT, ///< Panel with editbox to set client name
+
+ NGWW_HEADER, ///< Header container of the matrix
+ NGWW_NAME, ///< 'Name' button
+ NGWW_CLIENTS, ///< 'Clients' button
+ NGWW_MAPSIZE, ///< 'Map size' button
+ NGWW_DATE, ///< 'Date' button
+ NGWW_YEARS, ///< 'Years' button
+ NGWW_INFO, ///< Third button in the game list panel
+
+ NGWW_MATRIX, ///< Panel with list of games
+ NGWW_SCROLLBAR, ///< Scrollbar of matrix
+
+ NGWW_LASTJOINED_LABEL, ///< Label "Last joined server:"
+ NGWW_LASTJOINED, ///< Info about the last joined server
+ NGWW_LASTJOINED_SPACER, ///< Spacer after last joined server panel
+
+ NGWW_DETAILS, ///< Panel with game details
+ NGWW_DETAILS_SPACER, ///< Spacer for game actual details
+ NGWW_JOIN, ///< 'Join game' button
+ NGWW_REFRESH, ///< 'Refresh server' button
+ NGWW_NEWGRF, ///< 'NewGRF Settings' button
+ NGWW_NEWGRF_SEL, ///< Selection 'widget' to hide the NewGRF settings
+ NGWW_NEWGRF_MISSING, ///< 'Find missing NewGRF online' button
+ NGWW_NEWGRF_MISSING_SEL, ///< Selection widget for the above button
+
+ NGWW_FIND, ///< 'Find server' button
+ NGWW_ADD, ///< 'Add server' button
+ NGWW_START, ///< 'Start server' button
+ NGWW_CANCEL, ///< 'Cancel' button
+};
+
+/** Widgets of the WC_NETWORK_WINDOW (WC_NETWORK_WINDOW is also used in NetworkContentListWindowWidgets, NetworkGameWindowWidgets, and NetworkLobbyWindowWidgets). */
+enum NetworkStartServerWidgets {
+ NSSW_BACKGROUND,
+ NSSW_GAMENAME_LABEL,
+ NSSW_GAMENAME, ///< Background for editbox to set game name
+ NSSW_SETPWD, ///< 'Set password' button
+ NSSW_CONNTYPE_LABEL,
+ NSSW_CONNTYPE_BTN, ///< 'Connection type' droplist button
+ NSSW_CLIENTS_LABEL,
+ NSSW_CLIENTS_BTND, ///< 'Max clients' downarrow
+ NSSW_CLIENTS_TXT, ///< 'Max clients' text
+ NSSW_CLIENTS_BTNU, ///< 'Max clients' uparrow
+ NSSW_COMPANIES_LABEL,
+ NSSW_COMPANIES_BTND, ///< 'Max companies' downarrow
+ NSSW_COMPANIES_TXT, ///< 'Max companies' text
+ NSSW_COMPANIES_BTNU, ///< 'Max companies' uparrow
+ NSSW_SPECTATORS_LABEL,
+ NSSW_SPECTATORS_BTND, ///< 'Max spectators' downarrow
+ NSSW_SPECTATORS_TXT, ///< 'Max spectators' text
+ NSSW_SPECTATORS_BTNU, ///< 'Max spectators' uparrow
+
+ NSSW_LANGUAGE_LABEL,
+ NSSW_LANGUAGE_BTN, ///< 'Language spoken' droplist button
+
+ NSSW_GENERATE_GAME, ///< New game button
+ NSSW_LOAD_GAME, ///< Load game button
+ NSSW_PLAY_SCENARIO, ///< Play scenario button
+ NSSW_PLAY_HEIGHTMAP, ///< Play heightmap button
+
+ NSSW_CANCEL, ///< 'Cancel' button
+};
+
+/** Widgets of the WC_NETWORK_WINDOW (WC_NETWORK_WINDOW is also used in NetworkContentListWindowWidgets, NetworkGameWindowWidgets, and NetworkStartServerWidgets). */
+enum NetworkLobbyWindowWidgets {
+ NLWW_BACKGROUND, ///< Background panel
+ NLWW_TEXT, ///< Heading text
+ NLWW_HEADER, ///< Header above list of companies
+ NLWW_MATRIX, ///< List of companies
+ NLWW_SCROLLBAR, ///< Scroll bar
+ NLWW_DETAILS, ///< Company details
+ NLWW_JOIN, ///< 'Join company' button
+ NLWW_NEW, ///< 'New company' button
+ NLWW_SPECTATE, ///< 'Spectate game' button
+ NLWW_REFRESH, ///< 'Refresh server' button
+ NLWW_CANCEL, ///< 'Cancel' button
+};
+
+/** Widgets of the WC_CLIENT_LIST. */
+enum ClientListWidgets {
+ CLW_PANEL,
+};
+
+/** Widgets of the WC_CLIENT_LIST_POPUP. */
+enum ClientListPopupWidgets {
+ CLPW_PANEL,
+};
+
+/** Widgets of the WC_NETWORK_STATUS_WINDOW (WC_NETWORK_STATUS_WINDOW is also used in NetworkContentDownloadStatusWindowWidgets). */
+enum NetworkJoinStatusWidgets {
+ NJSW_BACKGROUND, ///< Background
+ NJSW_CANCELOK, ///< Cancel/OK button
+};
+
+/** Widgets of the WC_COMPANY_PASSWORD_WINDOW. */
+enum NetworkCompanyPasswordWindowWidgets {
+ NCPWW_BACKGROUND, ///< The background of the interface
+ NCPWW_LABEL, ///< Label in front of the password field
+ NCPWW_PASSWORD, ///< Input field for the password
+ NCPWW_SAVE_AS_DEFAULT_PASSWORD, ///< Toggle 'button' for saving the current password as default password
+ NCPWW_CANCEL, ///< Close the window without changing anything
+ NCPWW_OK, ///< Safe the password etc.
+};
+
+
+#endif /* WIDGETS_NETWORK_WIDGET_H */
diff --git a/src/widgets/newgrf_debug_widget.h b/src/widgets/newgrf_debug_widget.h
new file mode 100644
index 000000000..2ae0b8ec8
--- /dev/null
+++ b/src/widgets/newgrf_debug_widget.h
@@ -0,0 +1,40 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file newgrf_debug_widget.h Types related to the newgrf debug widgets. */
+
+#ifndef WIDGETS_NEWGRF_DEBUG_WIDGET_H
+#define WIDGETS_NEWGRF_DEBUG_WIDGET_H
+
+/** Widgets of the WC_NEWGRF_INSPECT. */
+enum NewGRFInspectWidgets {
+ NIW_CAPTION, ///< The caption bar ofcourse
+ NIW_PARENT, ///< Inspect the parent
+ NIW_MAINPANEL, ///< Panel widget containing the actual data
+ NIW_SCROLLBAR, ///< Scrollbar
+};
+
+/** Widgets of the WC_SPRITE_ALIGNER. */
+enum SpriteAlignerWidgets {
+ SAW_CAPTION, ///< Caption of the window
+ SAW_PREVIOUS, ///< Skip to the previous sprite
+ SAW_GOTO, ///< Go to a given sprite
+ SAW_NEXT, ///< Skip to the next sprite
+ SAW_UP, ///< Move the sprite up
+ SAW_LEFT, ///< Move the sprite to the left
+ SAW_RIGHT, ///< Move the sprite to the right
+ SAW_DOWN, ///< Move the sprite down
+ SAW_SPRITE, ///< The actual sprite
+ SAW_OFFSETS, ///< The sprite offsets
+ SAW_PICKER, ///< Sprite picker
+ SAW_LIST, ///< Queried sprite list
+ SAW_SCROLLBAR,///< Scrollbar for sprite list
+};
+
+#endif /* WIDGETS_NEWGRF_DEBUG_WIDGET_H */
diff --git a/src/widgets/newgrf_widget.h b/src/widgets/newgrf_widget.h
new file mode 100644
index 000000000..d76d3019b
--- /dev/null
+++ b/src/widgets/newgrf_widget.h
@@ -0,0 +1,73 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file newgrf_widget.h Types related to the newgrf widgets. */
+
+#ifndef WIDGETS_NEWGRF_WIDGET_H
+#define WIDGETS_NEWGRF_WIDGET_H
+
+/** Widgets of the WC_GRF_PARAMETERS. */
+enum ShowNewGRFParametersWidgets {
+ GRFPAR_WIDGET_SHOW_NUMPAR, ///< #NWID_SELECTION to optionally display #GRFPAR_WIDGET_NUMPAR
+ GRFPAR_WIDGET_NUMPAR_DEC, ///< Button to decrease number of parameters
+ GRFPAR_WIDGET_NUMPAR_INC, ///< Button to increase number of parameters
+ GRFPAR_WIDGET_NUMPAR, ///< Optional number of parameters
+ GRFPAR_WIDGET_NUMPAR_TEXT, ///< Text description
+ GRFPAR_WIDGET_BACKGROUND, ///< Panel to draw the settings on
+ GRFPAR_WIDGET_SCROLLBAR, ///< Scrollbar to scroll through all settings
+ GRFPAR_WIDGET_ACCEPT, ///< Accept button
+ GRFPAR_WIDGET_RESET, ///< Reset button
+ GRFPAR_WIDGET_SHOW_DESCRIPTION, ///< #NWID_SELECTION to optionally display parameter descriptions
+ GRFPAR_WIDGET_DESCRIPTION, ///< Multi-line description of a parameter
+};
+
+/** Widgets of the WC_NEWGRF_TEXTFILE. */
+enum ShowNewGRFTextfileWidgets {
+ GTW_WIDGET_CAPTION, ///< The caption of the window.
+ GTW_WIDGET_BACKGROUND, ///< Panel to draw the textfile on.
+ GTW_WIDGET_VSCROLLBAR, ///< Vertical scrollbar to scroll through the textfile up-and-down.
+ GTW_WIDGET_HSCROLLBAR, ///< Horizontal scrollbar to scroll through the textfile left-to-right.
+};
+
+/** Widgets of the WC_GAME_OPTIONS (WC_GAME_OPTIONS is also used in others). */
+enum ShowNewGRFStateWidgets {
+ SNGRFS_PRESET_LIST,
+ SNGRFS_PRESET_SAVE,
+ SNGRFS_PRESET_DELETE,
+ SNGRFS_ADD,
+ SNGRFS_REMOVE,
+ SNGRFS_MOVE_UP,
+ SNGRFS_MOVE_DOWN,
+ SNGRFS_FILTER,
+ SNGRFS_FILE_LIST,
+ SNGRFS_SCROLLBAR,
+ SNGRFS_AVAIL_LIST,
+ SNGRFS_SCROLL2BAR,
+ SNGRFS_NEWGRF_INFO_TITLE,
+ SNGRFS_NEWGRF_INFO,
+ SNGRFS_OPEN_URL,
+ SNGRFS_NEWGRF_TEXTFILE,
+ SNGRFS_SET_PARAMETERS = SNGRFS_NEWGRF_TEXTFILE + TFT_END,
+ SNGRFS_TOGGLE_PALETTE,
+ SNGRFS_APPLY_CHANGES,
+ SNGRFS_RESCAN_FILES,
+ SNGRFS_RESCAN_FILES2,
+ SNGRFS_CONTENT_DOWNLOAD,
+ SNGRFS_CONTENT_DOWNLOAD2,
+ SNGRFS_SHOW_REMOVE, ///< Select active list buttons (0 = normal, 1 = simple layout).
+ SNGRFS_SHOW_APPLY, ///< Select display of the buttons below the 'details'.
+};
+
+/** Widgets of the WC_MODAL_PROGRESS (WC_MODAL_PROGRESS is also used in GenerationProgressWindowWidgets). */
+enum ScanProgressWindowWidgets {
+ SPWW_PROGRESS_BAR, ///< Simple progress bar.
+ GPWW_PROGRESS_TEXT, ///< Text explaining what is happening.
+};
+
+#endif /* WIDGETS_NEWGRF_WIDGET_H */
diff --git a/src/widgets/news_widget.h b/src/widgets/news_widget.h
new file mode 100644
index 000000000..5326188a1
--- /dev/null
+++ b/src/widgets/news_widget.h
@@ -0,0 +1,70 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file news_widget.h Types related to the news widgets. */
+
+#ifndef WIDGETS_NEWS_WIDGET_H
+#define WIDGETS_NEWS_WIDGET_H
+
+/** Constants in the message options window. */
+enum MessageOptionsSpace {
+ MOS_WIDG_PER_SETTING = 4, ///< Number of widgets needed for each news category, starting at widget #WIDGET_NEWSOPT_START_OPTION.
+
+ MOS_LEFT_EDGE = 6, ///< Number of pixels between left edge of the window and the options buttons column.
+ MOS_COLUMN_SPACING = 4, ///< Number of pixels between the buttons and the description columns.
+ MOS_RIGHT_EDGE = 6, ///< Number of pixels between right edge of the window and the options descriptions column.
+ MOS_BUTTON_SPACE = 10, ///< Additional space in the button with the option value (for better looks).
+
+ MOS_ABOVE_GLOBAL_SETTINGS = 6, ///< Number of vertical pixels between the categories and the global options.
+ MOS_BOTTOM_EDGE = 6, ///< Number of pixels between bottom edge of the window and bottom of the global options.
+};
+
+
+/** Widgets of the WC_NEWS_WINDOW. */
+enum NewsTypeWidgets {
+ NTW_PANEL, ///< The news item background panel.
+ NTW_TITLE, ///< Title of the company news.
+ NTW_HEADLINE, ///< The news headline.
+ NTW_CLOSEBOX, ///< Close the window.
+ NTW_DATE, ///< Date of the news item.
+ NTW_CAPTION, ///< Title bar of the window. Only used in small news items.
+ NTW_INSET, ///< Inset around the viewport in the window. Only used in small news items.
+ NTW_VIEWPORT, ///< Viewport in the window.
+ NTW_COMPANY_MSG, ///< Message in company news items.
+ NTW_MESSAGE, ///< Space for displaying the message. Only used in small news items.
+ NTW_MGR_FACE, ///< Face of the manager.
+ NTW_MGR_NAME, ///< Name of the manager.
+ NTW_VEH_TITLE, ///< Vehicle new title.
+ NTW_VEH_BKGND, ///< Dark background of new vehicle news.
+ NTW_VEH_NAME, ///< Name of the new vehicle.
+ NTW_VEH_SPR, ///< Graphical display of the new vehicle.
+ NTW_VEH_INFO, ///< Some technical data of the new vehicle.
+};
+
+/** Widgets of the WC_MESSAGE_HISTORY. */
+enum MessageHistoryWidgets {
+ MHW_STICKYBOX,
+ MHW_BACKGROUND,
+ MHW_SCROLLBAR,
+};
+
+/** Widgets of the WC_GAME_OPTIONS (WC_GAME_OPTIONS is also used in others). */
+enum MessageOptionWidgets {
+ WIDGET_NEWSOPT_BACKGROUND, ///< Background widget.
+ WIDGET_NEWSOPT_LABEL, ///< Top label.
+ WIDGET_NEWSOPT_DROP_SUMMARY, ///< Dropdown that adjusts at once the level for all settings.
+ WIDGET_NEWSOPT_LABEL_SUMMARY, ///< Label of the summary drop down.
+ WIDGET_NEWSOPT_SOUNDTICKER, ///< Button for (de)activating sound on events.
+ WIDGET_NEWSOPT_SOUNDTICKER_LABEL, ///< Label of the soundticker button,
+
+ WIDGET_NEWSOPT_START_OPTION, ///< First widget that is part of a group [<][label][>] [description]
+ WIDGET_NEWSOPT_END_OPTION = WIDGET_NEWSOPT_START_OPTION + NT_END * MOS_WIDG_PER_SETTING, ///< First widget after the groups.
+};
+
+#endif /* WIDGETS_NEWS_WIDGET_H */
diff --git a/src/widgets/object_widget.h b/src/widgets/object_widget.h
new file mode 100644
index 000000000..fd2eb3328
--- /dev/null
+++ b/src/widgets/object_widget.h
@@ -0,0 +1,29 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file object_widget.h Types related to the object widgets. */
+
+#ifndef WIDGETS_OBJECT_WIDGET_H
+#define WIDGETS_OBJECT_WIDGET_H
+
+/** Widgets of the WC_BUILD_OBJECT. */
+enum BuildObjectWidgets {
+ BOW_CLASS_LIST, ///< The list with classes.
+ BOW_SCROLLBAR, ///< The scrollbar associated with the list.
+ BOW_OBJECT_MATRIX, ///< The matrix with preview sprites.
+ BOW_OBJECT_SPRITE, ///< A preview sprite of the object.
+ BOW_OBJECT_SIZE, ///< The size of an object.
+ BOW_INFO, ///< Other information about the object (from the NewGRF).
+
+ BOW_SELECT_MATRIX, ///< Selection preview matrix of objects of a given class.
+ BOW_SELECT_IMAGE, ///< Preview image in the #BOW_SELECT_MATRIX.
+ BOW_SELECT_SCROLL, ///< Scrollbar next to the #BOW_SELECT_MATRIX.
+};
+
+#endif /* WIDGETS_OBJECT_WIDGET_H */
diff --git a/src/widgets/order_widget.h b/src/widgets/order_widget.h
new file mode 100644
index 000000000..f753456d6
--- /dev/null
+++ b/src/widgets/order_widget.h
@@ -0,0 +1,44 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file order_widget.h Types related to the order widgets. */
+
+#ifndef WIDGETS_ORDER_WIDGET_H
+#define WIDGETS_ORDER_WIDGET_H
+
+/** Widgets of the WC_VEHICLE_ORDERS. */
+enum OrderWindowWidgets {
+ ORDER_WIDGET_CAPTION,
+ ORDER_WIDGET_TIMETABLE_VIEW,
+ ORDER_WIDGET_ORDER_LIST,
+ ORDER_WIDGET_SCROLLBAR,
+ ORDER_WIDGET_SKIP,
+ ORDER_WIDGET_DELETE,
+ ORDER_WIDGET_STOP_SHARING,
+ ORDER_WIDGET_NON_STOP,
+ ORDER_WIDGET_GOTO,
+ ORDER_WIDGET_FULL_LOAD,
+ ORDER_WIDGET_UNLOAD,
+ ORDER_WIDGET_REFIT,
+ ORDER_WIDGET_SERVICE,
+ ORDER_WIDGET_EMPTY,
+ ORDER_WIDGET_REFIT_DROPDOWN,
+ ORDER_WIDGET_COND_VARIABLE,
+ ORDER_WIDGET_COND_COMPARATOR,
+ ORDER_WIDGET_COND_VALUE,
+ ORDER_WIDGET_SEL_TOP_LEFT, ///< #NWID_SELECTION widget for left part of the top row of the 'your train' order window.
+ ORDER_WIDGET_SEL_TOP_MIDDLE, ///< #NWID_SELECTION widget for middle part of the top row of the 'your train' order window.
+ ORDER_WIDGET_SEL_TOP_RIGHT, ///< #NWID_SELECTION widget for right part of the top row of the 'your train' order window.
+ ORDER_WIDGET_SEL_TOP_ROW_GROUNDVEHICLE, ///< #NWID_SELECTION widget for the top row of the 'your train' order window.
+ ORDER_WIDGET_SEL_TOP_ROW, ///< #NWID_SELECTION widget for the top row of the 'your non-trains' order window.
+ ORDER_WIDGET_SEL_BOTTOM_MIDDLE, ///< #NWID_SELECTION widget for the middle part of the bottom row of the 'your train' order window.
+ ORDER_WIDGET_SHARED_ORDER_LIST,
+};
+
+#endif /* WIDGETS_ORDER_WIDGET_H */
diff --git a/src/widgets/osk_widget.h b/src/widgets/osk_widget.h
new file mode 100644
index 000000000..9512af821
--- /dev/null
+++ b/src/widgets/osk_widget.h
@@ -0,0 +1,43 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file osk_widget.h Types related to the osk widgets. */
+
+#ifndef WIDGETS_OSK_WIDGET_H
+#define WIDGETS_OSK_WIDGET_H
+
+/** Widgets of the WC_OSK. */
+enum OskWidgets {
+ OSK_WIDGET_CAPTION, ///< Title bar.
+ OSK_WIDGET_TEXT, ///< Edit box.
+ OSK_WIDGET_CANCEL, ///< Cancel key.
+ OSK_WIDGET_OK, ///< Ok key.
+ OSK_WIDGET_BACKSPACE, ///< Backspace key.
+ OSK_WIDGET_SPECIAL, ///< Special key (at keyborads often used for tab key).
+ OSK_WIDGET_CAPS, ///< Capslock key.
+ OSK_WIDGET_SHIFT, ///< Shift(lock) key.
+ OSK_WIDGET_SPACE, ///< Space bar.
+ OSK_WIDGET_LEFT, ///< Cursor left key.
+ OSK_WIDGET_RIGHT, ///< Cursor right key.
+ OSK_WIDGET_LETTERS, ///< First widget of the 'normal' keys.
+
+ OSK_WIDGET_NUMBERS_FIRST = OSK_WIDGET_LETTERS, ///< First widget of the numbers row.
+ OSK_WIDGET_NUMBERS_LAST = OSK_WIDGET_NUMBERS_FIRST + 13, ///< Last widget of the numbers row.
+
+ OSK_WIDGET_QWERTY_FIRST, ///< First widget of the qwerty row.
+ OSK_WIDGET_QWERTY_LAST = OSK_WIDGET_QWERTY_FIRST + 11, ///< Last widget of the qwerty row.
+
+ OSK_WIDGET_ASDFG_FIRST, ///< First widget of the asdfg row.
+ OSK_WIDGET_ASDFG_LAST = OSK_WIDGET_ASDFG_FIRST + 11, ///< Last widget of the asdfg row.
+
+ OSK_WIDGET_ZXCVB_FIRST, ///< First widget of the zxcvb row.
+ OSK_WIDGET_ZXCVB_LAST = OSK_WIDGET_ZXCVB_FIRST + 11, ///< Last widget of the zxcvb row.
+};
+
+#endif /* WIDGETS_OSK_WIDGET_H */
diff --git a/src/widgets/rail_widget.h b/src/widgets/rail_widget.h
new file mode 100644
index 000000000..ebf3b2584
--- /dev/null
+++ b/src/widgets/rail_widget.h
@@ -0,0 +1,112 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file rail_widget.h Types related to the rail widgets. */
+
+#ifndef WIDGETS_RAIL_WIDGET_H
+#define WIDGETS_RAIL_WIDGET_H
+
+/** Widgets of the WC_BUILD_TOOLBAR (WC_BUILD_TOOLBAR is also used in others). */
+enum RailToolbarWidgets {
+ RTW_CAPTION,
+ RTW_BUILD_NS,
+ RTW_BUILD_X,
+ RTW_BUILD_EW,
+ RTW_BUILD_Y,
+ RTW_AUTORAIL,
+ RTW_DEMOLISH,
+ RTW_BUILD_DEPOT,
+ RTW_BUILD_WAYPOINT,
+ RTW_BUILD_STATION,
+ RTW_BUILD_SIGNALS,
+ RTW_BUILD_BRIDGE,
+ RTW_BUILD_TUNNEL,
+ RTW_REMOVE,
+ RTW_CONVERT_RAIL,
+};
+
+/** Widgets of the WC_BUILD_STATION (WC_BUILD_STATION is also used in others). */
+enum BuildRailStationWidgets {
+ BRSW_PLATFORM_DIR_X, ///< Button to select '/' view.
+ BRSW_PLATFORM_DIR_Y, ///< Button to select '\' view.
+
+ BRSW_PLATFORM_NUM_1, ///< Button to select stations with a single platform.
+ BRSW_PLATFORM_NUM_2, ///< Button to select stations with 2 platforms.
+ BRSW_PLATFORM_NUM_3, ///< Button to select stations with 3 platforms.
+ BRSW_PLATFORM_NUM_4, ///< Button to select stations with 4 platforms.
+ BRSW_PLATFORM_NUM_5, ///< Button to select stations with 5 platforms.
+ BRSW_PLATFORM_NUM_6, ///< Button to select stations with 6 platforms.
+ BRSW_PLATFORM_NUM_7, ///< Button to select stations with 7 platforms.
+
+ BRSW_PLATFORM_LEN_1, ///< Button to select single tile length station platforms.
+ BRSW_PLATFORM_LEN_2, ///< Button to select 2 tiles length station platforms.
+ BRSW_PLATFORM_LEN_3, ///< Button to select 3 tiles length station platforms.
+ BRSW_PLATFORM_LEN_4, ///< Button to select 4 tiles length station platforms.
+ BRSW_PLATFORM_LEN_5, ///< Button to select 5 tiles length station platforms.
+ BRSW_PLATFORM_LEN_6, ///< Button to select 6 tiles length station platforms.
+ BRSW_PLATFORM_LEN_7, ///< Button to select 7 tiles length station platforms.
+
+ BRSW_PLATFORM_DRAG_N_DROP, ///< Button to enable drag and drop type station placement.
+
+ BRSW_HIGHLIGHT_OFF, ///< Button for turning coverage highlighting off.
+ BRSW_HIGHLIGHT_ON, ///< Button for turning coverage highlighting on.
+ BRSW_COVERAGE_TEXTS, ///< Empty space for the coverage texts.
+
+ BRSW_MATRIX, ///< Matrix widget displaying the available stations.
+ BRSW_IMAGE, ///< Panel used at each cell of the matrix.
+ BRSW_MATRIX_SCROLL, ///< Scrollbar of the matrix widget.
+
+ BRSW_SHOW_NEWST_ADDITIONS, ///< Selection for newstation class selection list.
+ BRSW_SHOW_NEWST_MATRIX, ///< Selection for newstation image matrix.
+ BRSW_SHOW_NEWST_RESIZE, ///< Selection for panel and resize at bottom right for newstation.
+ BRSW_SHOW_NEWST_TYPE, ///< Display of selected station type.
+ BRSW_NEWST_LIST, ///< List with available newstation classes.
+ BRSW_NEWST_SCROLL, ///< Scrollbar of the #BRSW_NEWST_LIST.
+
+ BRSW_PLATFORM_NUM_BEGIN = BRSW_PLATFORM_NUM_1 - 1,
+ BRSW_PLATFORM_LEN_BEGIN = BRSW_PLATFORM_LEN_1 - 1,
+};
+
+/** Widgets of the WC_BUILD_SIGNAL. */
+enum BuildSignalWidgets {
+ BSW_SEMAPHORE_NORM,
+ BSW_SEMAPHORE_ENTRY,
+ BSW_SEMAPHORE_EXIT,
+ BSW_SEMAPHORE_COMBO,
+ BSW_SEMAPHORE_PBS,
+ BSW_SEMAPHORE_PBS_OWAY,
+ BSW_ELECTRIC_NORM,
+ BSW_ELECTRIC_ENTRY,
+ BSW_ELECTRIC_EXIT,
+ BSW_ELECTRIC_COMBO,
+ BSW_ELECTRIC_PBS,
+ BSW_ELECTRIC_PBS_OWAY,
+ BSW_CONVERT,
+ BSW_DRAG_SIGNALS_DENSITY,
+ BSW_DRAG_SIGNALS_DENSITY_LABEL,
+ BSW_DRAG_SIGNALS_DENSITY_DECREASE,
+ BSW_DRAG_SIGNALS_DENSITY_INCREASE,
+};
+
+/** Widgets of the WC_BUILD_DEPOT (WC_BUILD_DEPOT is also used in others). */
+enum BuildRailDepotWidgets {
+ BRDW_DEPOT_NE,
+ BRDW_DEPOT_SE,
+ BRDW_DEPOT_SW,
+ BRDW_DEPOT_NW,
+};
+
+/** Widgets of the WC_BUILD_DEPOT (WC_BUILD_DEPOT is also used in others). */
+enum BuildRailWaypointWidgets {
+ BRWW_WAYPOINT_MATRIX,
+ BRWW_WAYPOINT,
+ BRWW_SCROLL,
+};
+
+#endif /* WIDGETS_RAIL_WIDGET_H */
diff --git a/src/widgets/road_widget.h b/src/widgets/road_widget.h
new file mode 100644
index 000000000..f2e5f54ca
--- /dev/null
+++ b/src/widgets/road_widget.h
@@ -0,0 +1,54 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file road_widget.h Types related to the road widgets. */
+
+#ifndef WIDGETS_ROAD_WIDGET_H
+#define WIDGETS_ROAD_WIDGET_H
+
+/** Widgets of the WC_SCEN_BUILD_TOOLBAR / WC_BUILD_TOOLBAR (WC_SCEN_BUILD_TOOLBAR / WC_BUILD_TOOLBAR is also used in others). */
+enum RoadToolbarWidgets {
+ RTW_ROAD_X,
+ RTW_ROAD_Y,
+ RTW_AUTOROAD,
+ RTW_DEMOLISH,
+ RTW_DEPOT,
+ RTW_BUS_STATION,
+ RTW_TRUCK_STATION,
+ RTW_ONE_WAY,
+ RTW_BUILD_BRIDGE,
+ RTW_BUILD_TUNNEL,
+ RTW_REMOVE,
+};
+
+/** Widgets of the WC_BUILD_DEPOT (WC_BUILD_DEPOT is also used in others). */
+enum BuildRoadDepotWidgets {
+ BRDW_CAPTION,
+ BRDW_DEPOT_NE,
+ BRDW_DEPOT_SE,
+ BRDW_DEPOT_SW,
+ BRDW_DEPOT_NW,
+};
+
+/** Widgets of the WC_BUS_STATION / WC_TRUCK_STATION. */
+enum BuildRoadStationWidgets {
+ BRSW_CAPTION,
+ BRSW_BACKGROUND,
+ BRSW_STATION_NE,
+ BRSW_STATION_SE,
+ BRSW_STATION_SW,
+ BRSW_STATION_NW,
+ BRSW_STATION_X,
+ BRSW_STATION_Y,
+ BRSW_LT_OFF,
+ BRSW_LT_ON,
+ BRSW_INFO,
+};
+
+#endif /* WIDGETS_ROAD_WIDGET_H */
diff --git a/src/widgets/settings_widget.h b/src/widgets/settings_widget.h
new file mode 100644
index 000000000..9eb5bf4f4
--- /dev/null
+++ b/src/widgets/settings_widget.h
@@ -0,0 +1,73 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file settings_widget.h Types related to the settings widgets. */
+
+#ifndef WIDGETS_SETTINGS_WIDGET_H
+#define WIDGETS_SETTINGS_WIDGET_H
+
+/** Widgets of the WC_GAME_OPTIONS (WC_GAME_OPTIONS is also used in others). */
+enum GameOptionsWidgets {
+ GOW_BACKGROUND, ///< Background of the window
+ GOW_CURRENCY_DROPDOWN, ///< Currency dropdown
+ GOW_DISTANCE_DROPDOWN, ///< Measuring unit dropdown
+ GOW_ROADSIDE_DROPDOWN, ///< Dropdown to select the road side (to set the right side ;))
+ GOW_TOWNNAME_DROPDOWN, ///< Town name dropdown
+ GOW_AUTOSAVE_DROPDOWN, ///< Dropdown to say how often to autosave
+ GOW_LANG_DROPDOWN, ///< Language dropdown
+ GOW_RESOLUTION_DROPDOWN, ///< Dropdown for the resolution
+ GOW_FULLSCREEN_BUTTON, ///< Toggle fullscreen
+ GOW_SCREENSHOT_DROPDOWN, ///< Select the screenshot type... please use PNG!
+ GOW_BASE_GRF_DROPDOWN, ///< Use to select a base GRF
+ GOW_BASE_GRF_STATUS, ///< Info about missing files etc.
+ GOW_BASE_GRF_DESCRIPTION, ///< Description of selected base GRF
+ GOW_BASE_SFX_DROPDOWN, ///< Use to select a base SFX
+ GOW_BASE_SFX_DESCRIPTION, ///< Description of selected base SFX
+ GOW_BASE_MUSIC_DROPDOWN, ///< Use to select a base music set
+ GOW_BASE_MUSIC_STATUS, ///< Info about corrupted files etc.
+ GOW_BASE_MUSIC_DESCRIPTION, ///< Description of selected base music set
+};
+
+/** Widgets of the WC_GAME_OPTIONS (WC_GAME_OPTIONS is also used in others). */
+enum GameDifficultyWidgets {
+ GDW_LVL_EASY,
+ GDW_LVL_MEDIUM,
+ GDW_LVL_HARD,
+ GDW_LVL_CUSTOM,
+ GDW_HIGHSCORE,
+ GDW_ACCEPT,
+ GDW_CANCEL,
+
+ GDW_OPTIONS_START,
+};
+
+/** Widgets of the WC_GAME_OPTIONS (WC_GAME_OPTIONS is also used in others). */
+enum GameSettingsWidgets {
+ SETTINGSEL_OPTIONSPANEL, ///< Panel widget containing the option lists
+ SETTINGSEL_SCROLLBAR, ///< Scrollbar
+};
+
+/** Widgets of the WC_CUSTOM_CURRENCY. */
+enum CustomCurrencyWidgets {
+ CUSTCURR_RATE_DOWN,
+ CUSTCURR_RATE_UP,
+ CUSTCURR_RATE,
+ CUSTCURR_SEPARATOR_EDIT,
+ CUSTCURR_SEPARATOR,
+ CUSTCURR_PREFIX_EDIT,
+ CUSTCURR_PREFIX,
+ CUSTCURR_SUFFIX_EDIT,
+ CUSTCURR_SUFFIX,
+ CUSTCURR_YEAR_DOWN,
+ CUSTCURR_YEAR_UP,
+ CUSTCURR_YEAR,
+ CUSTCURR_PREVIEW,
+};
+
+#endif /* WIDGETS_SETTINGS_WIDGET_H */
diff --git a/src/widgets/sign_widget.h b/src/widgets/sign_widget.h
new file mode 100644
index 000000000..0163334cc
--- /dev/null
+++ b/src/widgets/sign_widget.h
@@ -0,0 +1,36 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file sign_widget.h Types related to the sign widgets. */
+
+#ifndef WIDGETS_SIGN_WIDGET_H
+#define WIDGETS_SIGN_WIDGET_H
+
+/** Widgets of the WC_SIGN_LIST. */
+enum SignListWidgets {
+ SLW_CAPTION,
+ SLW_LIST,
+ SLW_SCROLLBAR,
+ SLW_FILTER_TEXT, ///< Text box for typing a filter string
+ SLW_FILTER_MATCH_CASE_BTN, ///< Button to toggle if case sensitive filtering should be used
+ SLW_FILTER_CLEAR_BTN, ///< Button to clear the filter
+};
+
+/** Widgets of the WC_QUERY_STRING (WC_QUERY_STRING is also used in QueryStringWidgets). */
+enum QueryEditSignWidgets {
+ QUERY_EDIT_SIGN_WIDGET_CAPTION,
+ QUERY_EDIT_SIGN_WIDGET_TEXT,
+ QUERY_EDIT_SIGN_WIDGET_OK,
+ QUERY_EDIT_SIGN_WIDGET_CANCEL,
+ QUERY_EDIT_SIGN_WIDGET_DELETE,
+ QUERY_EDIT_SIGN_WIDGET_PREVIOUS,
+ QUERY_EDIT_SIGN_WIDGET_NEXT,
+};
+
+#endif /* */
diff --git a/src/widgets/smallmap_widget.h b/src/widgets/smallmap_widget.h
new file mode 100644
index 000000000..c23163ba3
--- /dev/null
+++ b/src/widgets/smallmap_widget.h
@@ -0,0 +1,37 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file smallmap_widget.h Types related to the smallmap widgets. */
+
+#ifndef WIDGETS_SMALLMAP_WIDGET_H
+#define WIDGETS_SMALLMAP_WIDGET_H
+
+/** Widgets of the WC_SMALLMAP. */
+enum SmallMapWindowWidgets {
+ SM_WIDGET_CAPTION, ///< Caption widget.
+ SM_WIDGET_MAP_BORDER, ///< Border around the smallmap.
+ SM_WIDGET_MAP, ///< Panel containing the smallmap.
+ SM_WIDGET_LEGEND, ///< Bottom panel to display smallmap legends.
+ SM_WIDGET_ZOOM_IN, ///< Button to zoom in one step.
+ SM_WIDGET_ZOOM_OUT, ///< Button to zoom out one step.
+ SM_WIDGET_CONTOUR, ///< Button to select the contour view (height map).
+ SM_WIDGET_VEHICLES, ///< Button to select the vehicles view.
+ SM_WIDGET_INDUSTRIES, ///< Button to select the industries view.
+ SM_WIDGET_ROUTES, ///< Button to select the routes view.
+ SM_WIDGET_VEGETATION, ///< Button to select the vegetation view.
+ SM_WIDGET_OWNERS, ///< Button to select the owners view.
+ SM_WIDGET_CENTERMAP, ///< Button to move smallmap center to main window center.
+ SM_WIDGET_TOGGLETOWNNAME, ///< Toggle button to display town names.
+ SM_WIDGET_SELECT_BUTTONS, ///< Selection widget for the buttons present in some smallmap modes.
+ SM_WIDGET_ENABLE_ALL, ///< Button to enable display of all legend entries.
+ SM_WIDGET_DISABLE_ALL, ///< Button to disable display of all legend entries.
+ SM_WIDGET_SHOW_HEIGHT, ///< Show heightmap toggle button.
+};
+
+#endif /* WIDGETS_SMALLPAM_WIDGET_H */
diff --git a/src/widgets/station_widget.h b/src/widgets/station_widget.h
new file mode 100644
index 000000000..67a60f54d
--- /dev/null
+++ b/src/widgets/station_widget.h
@@ -0,0 +1,62 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file station_widget.h Types related to the station widgets. */
+
+#ifndef WIDGETS_STATION_WIDGET_H
+#define WIDGETS_STATION_WIDGET_H
+
+/** Widgets of the WC_STATION_VIEW. */
+enum StationViewWidgets {
+ SVW_CAPTION = 0, ///< Caption of the window
+ SVW_WAITING = 1, ///< List of waiting cargo
+ SVW_SCROLLBAR = 2, ///< Scrollbar
+ SVW_ACCEPTLIST = 3, ///< List of accepted cargoes
+ SVW_RATINGLIST = 3, ///< Ratings of cargoes
+ SVW_LOCATION = 4, ///< 'Location' button
+ SVW_RATINGS = 5, ///< 'Ratings' button
+ SVW_ACCEPTS = 5, ///< 'Accepts' button
+ SVW_RENAME = 6, ///< 'Rename' button
+ SVW_TRAINS = 7, ///< List of scheduled trains button
+ SVW_ROADVEHS, ///< List of scheduled road vehs button
+ SVW_SHIPS, ///< List of scheduled ships button
+ SVW_PLANES, ///< List of scheduled planes button
+};
+
+/** Widgets of the WC_STATION_LIST. */
+enum StationListWidgets {
+ SLW_CAPTION, ///< Window caption
+ SLW_LIST, ///< The main panel, list of stations
+ SLW_SCROLLBAR, ///< Scrollbar next to the main panel
+
+ /* Vehicletypes need to be in order of StationFacility due to bit magic */
+ SLW_TRAIN, ///< 'TRAIN' button - list only facilities where is a railroad station
+ SLW_TRUCK, ///< 'TRUCK' button - list only facilities where is a truck stop
+ SLW_BUS, ///< 'BUS' button - list only facilities where is a bus stop
+ SLW_AIRPLANE, ///< 'AIRPLANE' button - list only facilities where is an airport
+ SLW_SHIP, ///< 'SHIP' button - list only facilities where is a dock
+ SLW_FACILALL, ///< 'ALL' button - list all facilities
+
+ SLW_NOCARGOWAITING, ///< 'NO' button - list stations where no cargo is waiting
+ SLW_CARGOALL, ///< 'ALL' button - list all stations
+
+ SLW_SORTBY, ///< 'Sort by' button - reverse sort direction
+ SLW_SORTDROPBTN, ///< Dropdown button
+
+ SLW_CARGOSTART, ///< Widget numbers used for list of cargo types (not present in _company_stations_widgets)
+};
+
+/** Widgets of the WC_SELECT_STATION. */
+enum JoinStationWidgets {
+ JSW_WIDGET_CAPTION,
+ JSW_PANEL,
+ JSW_SCROLLBAR,
+};
+
+#endif /* WIDGETS_STATION_WIDGET_H */
diff --git a/src/widgets/statusbar_widget.h b/src/widgets/statusbar_widget.h
new file mode 100644
index 000000000..50094f0fa
--- /dev/null
+++ b/src/widgets/statusbar_widget.h
@@ -0,0 +1,22 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file statusbar_widget.h Types related to the statusbar widgets. */
+
+#ifndef WIDGETS_STATUSBAR_WIDGET_H
+#define WIDGETS_STATUSBAR_WIDGET_H
+
+/** Widgets of the WC_STATUS_BAR. */
+enum StatusbarWidget {
+ SBW_LEFT, ///< left part of the statusbar; date is shown there
+ SBW_MIDDLE, ///< middle part; current news or company name or *** SAVING *** or *** PAUSED ***
+ SBW_RIGHT, ///< right part; bank balance
+};
+
+#endif /* WIDGETS_STATUSBAR_WIDGET_H */
diff --git a/src/widgets/subsidy_widget.h b/src/widgets/subsidy_widget.h
new file mode 100644
index 000000000..db6472c5f
--- /dev/null
+++ b/src/widgets/subsidy_widget.h
@@ -0,0 +1,21 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file subsidy_widget.h Types related to the subsidy widgets. */
+
+#ifndef WIDGETS_SUBSIDY_WIDGET_H
+#define WIDGETS_SUBSIDY_WIDGET_H
+
+/** Widgets of the WC_SUBSIDIES_LIST. */
+enum SubsidyListWidgets {
+ SLW_PANEL,
+ SLW_SCROLLBAR,
+};
+
+#endif /* WIDGETS_SUBSIDY_WIDGET_H */
diff --git a/src/widgets/terraform_widget.h b/src/widgets/terraform_widget.h
new file mode 100644
index 000000000..0c085fe55
--- /dev/null
+++ b/src/widgets/terraform_widget.h
@@ -0,0 +1,49 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file terraform_widget.h Types related to the terraform widgets. */
+
+#ifndef WIDGETS_TERRAFORM_WIDGET_H
+#define WIDGETS_TERRAFORM_WIDGET_H
+
+/** Widgets of the WC_SCEN_LAND_GEN (WC_SCEN_LAND_GEN is also used in EditorTerraformToolbarWidgets). */
+enum TerraformToolbarWidgets {
+ TTW_SHOW_PLACE_OBJECT, ///< Should the place object button be shown?
+ TTW_BUTTONS_START, ///< Start of pushable buttons
+ TTW_LOWER_LAND = TTW_BUTTONS_START, ///< Lower land button
+ TTW_RAISE_LAND, ///< Raise land button
+ TTW_LEVEL_LAND, ///< Level land button
+ TTW_DEMOLISH, ///< Demolish aka dynamite button
+ TTW_BUY_LAND, ///< Buy land button
+ TTW_PLANT_TREES, ///< Plant trees button (note: opens seperate window, no place-push-button)
+ TTW_PLACE_SIGN, ///< Place sign button
+ TTW_PLACE_OBJECT, ///< Place object button
+};
+
+/** Widgets of the WC_SCEN_LAND_GEN (WC_SCEN_LAND_GEN is also used in TerraformToolbarWidgets). */
+enum EditorTerraformToolbarWidgets {
+ ETTW_SHOW_PLACE_DESERT, ///< Should the place desert button be shown?
+ ETTW_START, ///< Used for iterations
+ ETTW_DOTS = ETTW_START, ///< Invisible widget for rendering the terraform size on.
+ ETTW_BUTTONS_START, ///< Start of pushable buttons
+ ETTW_DEMOLISH = ETTW_BUTTONS_START, ///< Demolish aka dynamite button
+ ETTW_LOWER_LAND, ///< Lower land button
+ ETTW_RAISE_LAND, ///< Raise land button
+ ETTW_LEVEL_LAND, ///< Level land button
+ ETTW_PLACE_ROCKS, ///< Place rocks button
+ ETTW_PLACE_DESERT, ///< Place desert button (in tropical climate)
+ ETTW_PLACE_OBJECT, ///< Place transmitter button
+ ETTW_BUTTONS_END, ///< End of pushable buttons
+ ETTW_INCREASE_SIZE = ETTW_BUTTONS_END, ///< Upwards arrow button to increase terraforming size
+ ETTW_DECREASE_SIZE, ///< Downwards arrow button to decrease terraforming size
+ ETTW_NEW_SCENARIO, ///< Button for generating a new scenario
+ ETTW_RESET_LANDSCAPE, ///< Button for removing all company-owned property
+};
+
+#endif /* WIDGETS_TERRAFORM_WIDGET_H */
diff --git a/src/widgets/timetable_widget.h b/src/widgets/timetable_widget.h
new file mode 100644
index 000000000..e90c1f554
--- /dev/null
+++ b/src/widgets/timetable_widget.h
@@ -0,0 +1,34 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file timetable_widget.h Types related to the timetable widgets. */
+
+#ifndef WIDGETS_TIMETABLE_WIDGET_H
+#define WIDGETS_TIMETABLE_WIDGET_H
+
+/** Widgets of the WC_VEHICLE_TIMETABLE. */
+enum TimetableViewWindowWidgets {
+ TTV_CAPTION,
+ TTV_ORDER_VIEW,
+ TTV_TIMETABLE_PANEL,
+ TTV_ARRIVAL_DEPARTURE_PANEL, ///< Panel with the expected/scheduled arrivals
+ TTV_SCROLLBAR,
+ TTV_SUMMARY_PANEL,
+ TTV_START_DATE,
+ TTV_CHANGE_TIME,
+ TTV_CLEAR_TIME,
+ TTV_RESET_LATENESS,
+ TTV_AUTOFILL,
+ TTV_EXPECTED, ///< Toggle between expected and scheduled arrivals
+ TTV_SHARED_ORDER_LIST, ///< Show the shared order list
+ TTV_ARRIVAL_DEPARTURE_SELECTION, ///< Disable/hide the arrival departure panel
+ TTV_EXPECTED_SELECTION, ///< Disable/hide the expected selection button
+};
+
+#endif /* WIDGETS_TIMETABLE_WIDGET_H */
diff --git a/src/widgets/toolbar_widget.h b/src/widgets/toolbar_widget.h
new file mode 100644
index 000000000..11c0e4906
--- /dev/null
+++ b/src/widgets/toolbar_widget.h
@@ -0,0 +1,72 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file tooltype_widget.h Types related to the toolbar widgets. */
+
+#ifndef WIDGETS_TOOLBAR_WIDGET_H
+#define WIDGETS_TOOLBAR_WIDGET_H
+
+/** Widgets of the WC_MAIN_TOOLBAR, when in normal game mode. */
+enum ToolbarNormalWidgets {
+ TBN_PAUSE = 0,
+ TBN_FASTFORWARD,
+ TBN_SETTINGS,
+ TBN_SAVEGAME,
+ TBN_SMALLMAP,
+ TBN_TOWNDIRECTORY,
+ TBN_SUBSIDIES,
+ TBN_STATIONS,
+ TBN_FINANCES,
+ TBN_COMPANIES,
+ TBN_GRAPHICS,
+ TBN_LEAGUE,
+ TBN_INDUSTRIES,
+ TBN_VEHICLESTART, ///< trains, actually. So following are trucks, boats and planes
+ TBN_TRAINS = TBN_VEHICLESTART,
+ TBN_ROADVEHS,
+ TBN_SHIPS,
+ TBN_AIRCRAFTS,
+ TBN_ZOOMIN,
+ TBN_ZOOMOUT,
+ TBN_RAILS,
+ TBN_ROADS,
+ TBN_WATER,
+ TBN_AIR,
+ TBN_LANDSCAPE,
+ TBN_MUSICSOUND,
+ TBN_NEWSREPORT,
+ TBN_HELP,
+ TBN_SWITCHBAR, ///< only available when toolbar has been split
+ TBN_END ///< The end marker
+};
+
+/** Widgets of the WC_MAIN_TOOLBAR, when in scenario editor. */
+enum ToolbarScenEditorWidgets {
+ TBSE_PAUSE = 0,
+ TBSE_FASTFORWARD,
+ TBSE_SETTINGS,
+ TBSE_SAVESCENARIO,
+ TBSE_SPACERPANEL,
+ TBSE_DATEPANEL,
+ TBSE_DATEBACKWARD,
+ TBSE_DATEFORWARD,
+ TBSE_SMALLMAP,
+ TBSE_ZOOMIN,
+ TBSE_ZOOMOUT,
+ TBSE_LANDGENERATE,
+ TBSE_TOWNGENERATE,
+ TBSE_INDUSTRYGENERATE,
+ TBSE_BUILDROAD,
+ TBSE_BUILDDOCKS,
+ TBSE_PLANTTREES,
+ TBSE_PLACESIGNS,
+ TBSE_DATEPANEL_CONTAINER,
+};
+
+#endif /* WIDGETS_TOOLBAR_WIDGET_H */
diff --git a/src/widgets/town_widget.h b/src/widgets/town_widget.h
new file mode 100644
index 000000000..35164ffe1
--- /dev/null
+++ b/src/widgets/town_widget.h
@@ -0,0 +1,70 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file town_widget.h Types related to the town widgets. */
+
+#ifndef WIDGETS_TOWN_WIDGET_H
+#define WIDGETS_TOWN_WIDGET_H
+
+/** Widgets of the WC_TOWN_DIRECTORY. */
+enum TownDirectoryWidgets {
+ TDW_SORTNAME,
+ TDW_SORTPOPULATION,
+ TDW_CENTERTOWN,
+ TDW_SCROLLBAR,
+ TDW_BOTTOM_PANEL,
+ TDW_BOTTOM_TEXT,
+};
+
+/** Widgets of the WC_TOWN_AUTHORITY. */
+enum TownAuthorityWidgets {
+ TWA_CAPTION,
+ TWA_RATING_INFO, ///< Overview with ratings for each company.
+ TWA_COMMAND_LIST, ///< List of commands for the player.
+ TWA_SCROLLBAR,
+ TWA_ACTION_INFO, ///< Additional information about the action.
+ TWA_EXECUTE, ///< Do-it button.
+};
+
+/** Widgets of the WC_TOWN_VIEW. */
+enum TownViewWidgets {
+ TVW_CAPTION,
+ TVW_VIEWPORT,
+ TVW_INFOPANEL,
+ TVW_CENTERVIEW,
+ TVW_SHOWAUTHORITY,
+ TVW_CHANGENAME,
+ TVW_EXPAND,
+ TVW_DELETE,
+};
+
+/** Widgets of the WC_FOUND_TOWN. */
+enum TownScenarioEditorWidgets {
+ TSEW_BACKGROUND,
+ TSEW_NEWTOWN,
+ TSEW_RANDOMTOWN,
+ TSEW_MANYRANDOMTOWNS,
+ TSEW_TOWNNAME_TEXT,
+ TSEW_TOWNNAME_EDITBOX,
+ TSEW_TOWNNAME_RANDOM,
+ TSEW_TOWNSIZE,
+ TSEW_SIZE_SMALL,
+ TSEW_SIZE_MEDIUM,
+ TSEW_SIZE_LARGE,
+ TSEW_SIZE_RANDOM,
+ TSEW_CITY,
+ TSEW_TOWNLAYOUT,
+ TSEW_LAYOUT_ORIGINAL,
+ TSEW_LAYOUT_BETTER,
+ TSEW_LAYOUT_GRID2,
+ TSEW_LAYOUT_GRID3,
+ TSEW_LAYOUT_RANDOM,
+};
+
+#endif /* WIDGETS_TOWN_WIDGET_H */
diff --git a/src/widgets/transparency_widget.h b/src/widgets/transparency_widget.h
new file mode 100644
index 000000000..9d2714ce6
--- /dev/null
+++ b/src/widgets/transparency_widget.h
@@ -0,0 +1,34 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file transparency_widget.h Types related to the transparency widgets. */
+
+#ifndef WIDGETS_TRANSPARENCY_WIDGET_H
+#define WIDGETS_TRANSPARENCY_WIDGET_H
+
+/** Widgets of the WC_TRANSPARENCY_TOOLBAR. */
+enum TransparencyToolbarWidgets {
+ /* Button row. */
+ TTW_WIDGET_BEGIN, ///< First toggle button.
+ TTW_WIDGET_SIGNS = TTW_WIDGET_BEGIN, ///< Signs background transparency toggle button.
+ TTW_WIDGET_TREES, ///< Trees transparency toggle button.
+ TTW_WIDGET_HOUSES, ///< Houses transparency toggle button.
+ TTW_WIDGET_INDUSTRIES, ///< industries transparency toggle button.
+ TTW_WIDGET_BUILDINGS, ///< Company buildings and structures transparency toggle button.
+ TTW_WIDGET_BRIDGES, ///< Bridges transparency toggle button.
+ TTW_WIDGET_STRUCTURES, ///< Object structure transparency toggle button.
+ TTW_WIDGET_CATENARY, ///< Catenary transparency toggle button.
+ TTW_WIDGET_LOADING, ///< Loading indicators transparency toggle button.
+ TTW_WIDGET_END, ///< End of toggle buttons.
+
+ /* Panel with buttons for invisibility */
+ TTW_WIDGET_BUTTONS, ///< Panel with 'invisibility' buttons.
+};
+
+#endif /* WIDGETS_TRANSPARENCY_WIDGET_H */
diff --git a/src/widgets/tree_widget.h b/src/widgets/tree_widget.h
new file mode 100644
index 000000000..7a1164f33
--- /dev/null
+++ b/src/widgets/tree_widget.h
@@ -0,0 +1,33 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file tree_widget.h Types related to the tree widgets. */
+
+#ifndef WIDGETS_TREE_WIDGET_H
+#define WIDGETS_TREE_WIDGET_H
+
+/** Widgets of the WC_BUILD_TREES. */
+enum BuildTreesWidgets {
+ BTW_TYPE_11,
+ BTW_TYPE_12,
+ BTW_TYPE_13,
+ BTW_TYPE_14,
+ BTW_TYPE_21,
+ BTW_TYPE_22,
+ BTW_TYPE_23,
+ BTW_TYPE_24,
+ BTW_TYPE_31,
+ BTW_TYPE_32,
+ BTW_TYPE_33,
+ BTW_TYPE_34,
+ BTW_TYPE_RANDOM,
+ BTW_MANY_RANDOM,
+};
+
+#endif /* WIDGETS_TREE_WIDGET_H */
diff --git a/src/widgets/vehicle_widget.h b/src/widgets/vehicle_widget.h
new file mode 100644
index 000000000..d66ff5ee4
--- /dev/null
+++ b/src/widgets/vehicle_widget.h
@@ -0,0 +1,77 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file vehicle_widget.h Types related to the vehicle widgets. */
+
+#ifndef WIDGETS_VEHICLE_WIDGET_H
+#define WIDGETS_VEHICLE_WIDGET_H
+
+/** Widgets of the WC_VEHICLE_VIEW. */
+enum VehicleViewWindowWidgets {
+ VVW_WIDGET_CAPTION,
+ VVW_WIDGET_VIEWPORT, ///< Viewport widget.
+ VVW_WIDGET_START_STOP_VEH,
+ VVW_WIDGET_CENTER_MAIN_VIEH,
+ VVW_WIDGET_GOTO_DEPOT,
+ VVW_WIDGET_REFIT_VEH,
+ VVW_WIDGET_SHOW_ORDERS,
+ VVW_WIDGET_SHOW_DETAILS,
+ VVW_WIDGET_CLONE_VEH,
+ VVW_WIDGET_SELECT_DEPOT_CLONE, ///< Selection widget between 'goto depot', and 'clone vehicle' buttons.
+ VVW_WIDGET_SELECT_REFIT_TURN, ///< Selection widget between 'refit' and 'turn around' buttons.
+ VVW_WIDGET_TURN_AROUND,
+ VVW_WIDGET_FORCE_PROCEED,
+};
+
+/** Widgets of the WC_VEHICLE_REFIT. */
+enum VehicleRefitWidgets {
+ VRW_CAPTION,
+ VRW_VEHICLE_PANEL_DISPLAY,
+ VRW_SHOW_HSCROLLBAR,
+ VRW_HSCROLLBAR,
+ VRW_SELECTHEADER,
+ VRW_MATRIX,
+ VRW_SCROLLBAR,
+ VRW_INFOPANEL,
+ VRW_REFITBUTTON,
+};
+
+/** Widgets of the WC_VEHICLE_DETAILS. */
+enum VehicleDetailsWindowWidgets {
+ VLD_WIDGET_CAPTION,
+ VLD_WIDGET_RENAME_VEHICLE,
+ VLD_WIDGET_TOP_DETAILS,
+ VLD_WIDGET_INCREASE_SERVICING_INTERVAL,
+ VLD_WIDGET_DECREASE_SERVICING_INTERVAL,
+ VLD_WIDGET_SERVICING_INTERVAL,
+ VLD_WIDGET_MIDDLE_DETAILS,
+ VLD_WIDGET_MATRIX,
+ VLD_WIDGET_SCROLLBAR,
+ VLD_WIDGET_DETAILS_CARGO_CARRIED,
+ VLD_WIDGET_DETAILS_TRAIN_VEHICLES,
+ VLD_WIDGET_DETAILS_CAPACITY_OF_EACH,
+ VLD_WIDGET_DETAILS_TOTAL_CARGO,
+};
+
+/** Widgets of the vehicle lists (WC_INVALID). */
+enum VehicleListWindowWidgets {
+ VLW_WIDGET_CAPTION,
+ VLW_WIDGET_SORT_ORDER,
+ VLW_WIDGET_SORT_BY_PULLDOWN,
+ VLW_WIDGET_LIST,
+ VLW_WIDGET_SCROLLBAR,
+ VLW_WIDGET_HIDE_BUTTONS,
+ VLW_WIDGET_AVAILABLE_VEHICLES,
+ VLW_WIDGET_MANAGE_VEHICLES_DROPDOWN,
+ VLW_WIDGET_STOP_ALL,
+ VLW_WIDGET_START_ALL,
+};
+
+
+#endif /* WIDGETS_VEHICLE_WIDGET_H */
diff --git a/src/widgets/viewport_widget.h b/src/widgets/viewport_widget.h
new file mode 100644
index 000000000..04bab1814
--- /dev/null
+++ b/src/widgets/viewport_widget.h
@@ -0,0 +1,25 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file viewport_widget.h Types related to the viewport widgets. */
+
+#ifndef WIDGETS_VIEWPORT_WIDGET_H
+#define WIDGETS_VIEWPORT_WIDGET_H
+
+/** Widgets of the WC_EXTRA_VIEW_PORT. */
+enum ExtraViewportWindowWidgets {
+ EVW_CAPTION,
+ EVW_VIEWPORT,
+ EVW_ZOOMIN,
+ EVW_ZOOMOUT,
+ EVW_MAIN_TO_VIEW,
+ EVW_VIEW_TO_MAIN,
+};
+
+#endif /* WIDGETS_VIEWPORT_WIDGET_H */
diff --git a/src/widgets/waypoint_widget.h b/src/widgets/waypoint_widget.h
new file mode 100644
index 000000000..8d0565e68
--- /dev/null
+++ b/src/widgets/waypoint_widget.h
@@ -0,0 +1,24 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * 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.
+ * 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.
+ * 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/>.
+ */
+
+/** @file waypoint_widget.h Types related to the waypoint widgets. */
+
+#ifndef WIDGETS_WAYPOINT_WIDGET_H
+#define WIDGETS_WAYPOINT_WIDGET_H
+
+/** Widgets of the WC_WAYPOINT_VIEW. */
+enum WaypointWindowWidgets {
+ WAYPVW_CAPTION,
+ WAYPVW_VIEWPORT,
+ WAYPVW_CENTERVIEW,
+ WAYPVW_RENAME,
+ WAYPVW_SHOW_VEHICLES,
+};
+
+#endif /* WIDGETS_WAYPOINT_WIDGET_H */
diff --git a/src/window_type.h b/src/window_type.h
index 22acaeb63..5d5a66672 100644
--- a/src/window_type.h
+++ b/src/window_type.h
@@ -71,7 +71,6 @@ enum WindowClass {
WC_MUSIC_WINDOW,
WC_MUSIC_TRACK_SELECTION,
WC_SCEN_LAND_GEN,
- WC_SCEN_INDUSTRY,
WC_SCEN_BUILD_TOOLBAR,
WC_BUILD_TREES,
WC_SEND_NETWORK_MSG,