changeset 18783:d51770d2b734 draft

(svn r23631) -Add: ScriptWindow, to manipulate windows on the client (GameScript only)
author truebrain <truebrain@openttd.org>
date Mon, 19 Dec 2011 21:05:14 +0000
parents d14680ee0033
children c6637e50e2f9
files projects/openttd_vs100.vcxproj projects/openttd_vs100.vcxproj.filters projects/openttd_vs80.vcproj projects/openttd_vs90.vcproj source.list src/game/game_instance.cpp src/script/api/ai/ai_event.hpp.sq src/script/api/game/game_event.hpp.sq src/script/api/game/game_event_types.hpp.sq src/script/api/game/game_window.hpp.sq src/script/api/script_event.hpp src/script/api/script_event_types.hpp src/script/api/script_window.cpp src/script/api/script_window.hpp src/script/api/template/template_event_types.hpp.sq src/script/api/template/template_window.hpp.sq src/widget.cpp src/widget_type.h src/window.cpp src/window_gui.h
diffstat 20 files changed, 4215 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/projects/openttd_vs100.vcxproj
+++ b/projects/openttd_vs100.vcxproj
@@ -989,6 +989,7 @@
     <ClInclude Include="..\src\script\api\script_viewport.hpp" />
     <ClInclude Include="..\src\script\api\script_waypoint.hpp" />
     <ClInclude Include="..\src\script\api\script_waypointlist.hpp" />
+    <ClInclude Include="..\src\script\api\script_window.hpp" />
     <ClCompile Include="..\src\script\api\script_accounting.cpp" />
     <ClCompile Include="..\src\script\api\script_admin.cpp" />
     <ClCompile Include="..\src\script\api\script_airport.cpp" />
@@ -1045,6 +1046,7 @@
     <ClCompile Include="..\src\script\api\script_viewport.cpp" />
     <ClCompile Include="..\src\script\api\script_waypoint.cpp" />
     <ClCompile Include="..\src\script\api\script_waypointlist.cpp" />
+    <ClCompile Include="..\src\script\api\script_window.cpp" />
     <ClCompile Include="..\src\blitter\32bpp_anim.cpp" />
     <ClInclude Include="..\src\blitter\32bpp_anim.hpp" />
     <ClCompile Include="..\src\blitter\32bpp_base.cpp" />
--- a/projects/openttd_vs100.vcxproj.filters
+++ b/projects/openttd_vs100.vcxproj.filters
@@ -2196,6 +2196,9 @@
     <ClInclude Include="..\src\script\api\script_waypointlist.hpp">
       <Filter>Script API</Filter>
     </ClInclude>
+    <ClInclude Include="..\src\script\api\script_window.hpp">
+      <Filter>Script API</Filter>
+    </ClInclude>
     <ClCompile Include="..\src\script\api\script_accounting.cpp">
       <Filter>Script API Implementation</Filter>
     </ClCompile>
@@ -2364,6 +2367,9 @@
     <ClCompile Include="..\src\script\api\script_waypointlist.cpp">
       <Filter>Script API Implementation</Filter>
     </ClCompile>
+    <ClCompile Include="..\src\script\api\script_window.cpp">
+      <Filter>Script API Implementation</Filter>
+    </ClCompile>
     <ClCompile Include="..\src\blitter\32bpp_anim.cpp">
       <Filter>Blitters</Filter>
     </ClCompile>
--- a/projects/openttd_vs80.vcproj
+++ b/projects/openttd_vs80.vcproj
@@ -3290,6 +3290,10 @@
 				RelativePath=".\..\src\script\api\script_waypointlist.hpp"
 				>
 			</File>
+			<File
+				RelativePath=".\..\src\script\api\script_window.hpp"
+				>
+			</File>
 		</Filter>
 		<Filter
 			Name="Script API Implementation"
@@ -3518,6 +3522,10 @@
 				RelativePath=".\..\src\script\api\script_waypointlist.cpp"
 				>
 			</File>
+			<File
+				RelativePath=".\..\src\script\api\script_window.cpp"
+				>
+			</File>
 		</Filter>
 		<Filter
 			Name="Blitters"
--- a/projects/openttd_vs90.vcproj
+++ b/projects/openttd_vs90.vcproj
@@ -3287,6 +3287,10 @@
 				RelativePath=".\..\src\script\api\script_waypointlist.hpp"
 				>
 			</File>
+			<File
+				RelativePath=".\..\src\script\api\script_window.hpp"
+				>
+			</File>
 		</Filter>
 		<Filter
 			Name="Script API Implementation"
@@ -3515,6 +3519,10 @@
 				RelativePath=".\..\src\script\api\script_waypointlist.cpp"
 				>
 			</File>
+			<File
+				RelativePath=".\..\src\script\api\script_window.cpp"
+				>
+			</File>
 		</Filter>
 		<Filter
 			Name="Blitters"
--- a/source.list
+++ b/source.list
@@ -767,6 +767,7 @@
 script/api/script_viewport.hpp
 script/api/script_waypoint.hpp
 script/api/script_waypointlist.hpp
+script/api/script_window.hpp
 
 # Script API Implementation
 script/api/script_accounting.cpp
@@ -825,6 +826,7 @@
 script/api/script_viewport.cpp
 script/api/script_waypoint.cpp
 script/api/script_waypointlist.cpp
+script/api/script_window.cpp
 
 # Blitters
 #if DEDICATED
--- a/src/game/game_instance.cpp
+++ b/src/game/game_instance.cpp
@@ -75,6 +75,7 @@
 #include "../script/api/game/game_viewport.hpp.sq"
 #include "../script/api/game/game_waypoint.hpp.sq"
 #include "../script/api/game/game_waypointlist.hpp.sq"
+#include "../script/api/game/game_window.hpp.sq"
 
 
 GameInstance::GameInstance() :
@@ -130,6 +131,7 @@
 	SQGSEventSubsidyOfferExpired_Register(this->engine);
 	SQGSEventTownFounded_Register(this->engine);
 	SQGSEventVehicleCrashed_Register(this->engine);
+	SQGSEventWindowWidgetClick_Register(this->engine);
 	SQGSExecMode_Register(this->engine);
 	SQGSGame_Register(this->engine);
 	SQGSGameSettings_Register(this->engine);
@@ -174,6 +176,7 @@
 	SQGSWaypoint_Register(this->engine);
 	SQGSWaypointList_Register(this->engine);
 	SQGSWaypointList_Vehicle_Register(this->engine);
+	SQGSWindow_Register(this->engine);
 
 }
 
--- a/src/script/api/ai/ai_event.hpp.sq
+++ b/src/script/api/ai/ai_event.hpp.sq
@@ -46,6 +46,7 @@
 	SQAIEvent.DefSQConst(engine, ScriptEvent::ET_TOWN_FOUNDED,                "ET_TOWN_FOUNDED");
 	SQAIEvent.DefSQConst(engine, ScriptEvent::ET_AIRCRAFT_DEST_TOO_FAR,       "ET_AIRCRAFT_DEST_TOO_FAR");
 	SQAIEvent.DefSQConst(engine, ScriptEvent::ET_ADMIN_PORT,                  "ET_ADMIN_PORT");
+	SQAIEvent.DefSQConst(engine, ScriptEvent::ET_WINDOW_WIDGET_CLICK,         "ET_WINDOW_WIDGET_CLICK");
 
 	SQAIEvent.DefSQMethod(engine, &ScriptEvent::GetEventType, "GetEventType", 1, "x");
 
--- a/src/script/api/game/game_event.hpp.sq
+++ b/src/script/api/game/game_event.hpp.sq
@@ -46,6 +46,7 @@
 	SQGSEvent.DefSQConst(engine, ScriptEvent::ET_TOWN_FOUNDED,                "ET_TOWN_FOUNDED");
 	SQGSEvent.DefSQConst(engine, ScriptEvent::ET_AIRCRAFT_DEST_TOO_FAR,       "ET_AIRCRAFT_DEST_TOO_FAR");
 	SQGSEvent.DefSQConst(engine, ScriptEvent::ET_ADMIN_PORT,                  "ET_ADMIN_PORT");
+	SQGSEvent.DefSQConst(engine, ScriptEvent::ET_WINDOW_WIDGET_CLICK,         "ET_WINDOW_WIDGET_CLICK");
 
 	SQGSEvent.DefSQMethod(engine, &ScriptEvent::GetEventType, "GetEventType", 1, "x");
 
--- a/src/script/api/game/game_event_types.hpp.sq
+++ b/src/script/api/game/game_event_types.hpp.sq
@@ -232,3 +232,20 @@
 
 	SQGSEventAdminPort.PostRegister(engine);
 }
+
+
+template <> const char *GetClassName<ScriptEventWindowWidgetClick, ST_GS>() { return "GSEventWindowWidgetClick"; }
+
+void SQGSEventWindowWidgetClick_Register(Squirrel *engine)
+{
+	DefSQClass<ScriptEventWindowWidgetClick, ST_GS> SQGSEventWindowWidgetClick("GSEventWindowWidgetClick");
+	SQGSEventWindowWidgetClick.PreRegister(engine, "GSEvent");
+
+	SQGSEventWindowWidgetClick.DefSQStaticMethod(engine, &ScriptEventWindowWidgetClick::Convert, "Convert", 2, ".x");
+
+	SQGSEventWindowWidgetClick.DefSQMethod(engine, &ScriptEventWindowWidgetClick::GetWindowClass,  "GetWindowClass",  1, "x");
+	SQGSEventWindowWidgetClick.DefSQMethod(engine, &ScriptEventWindowWidgetClick::GetWindowNumber, "GetWindowNumber", 1, "x");
+	SQGSEventWindowWidgetClick.DefSQMethod(engine, &ScriptEventWindowWidgetClick::GetWidgetNumber, "GetWidgetNumber", 1, "x");
+
+	SQGSEventWindowWidgetClick.PostRegister(engine);
+}
new file mode 100644
--- /dev/null
+++ b/src/script/api/game/game_window.hpp.sq
@@ -0,0 +1,1276 @@
+/* $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/>.
+ */
+
+/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
+
+#include "../script_window.hpp"
+#include "../template/template_window.hpp.sq"
+
+
+template <> const char *GetClassName<ScriptWindow, ST_GS>() { return "GSWindow"; }
+
+void SQGSWindow_Register(Squirrel *engine)
+{
+	DefSQClass<ScriptWindow, ST_GS> SQGSWindow("GSWindow");
+	SQGSWindow.PreRegister(engine);
+	SQGSWindow.AddConstructor<void (ScriptWindow::*)(), 1>(engine, "x");
+
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_GAME_OPTIONS_AI,                        "WN_GAME_OPTIONS_AI");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_GAME_OPTIONS_ABOUT,                     "WN_GAME_OPTIONS_ABOUT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_GAME_OPTIONS_NEWGRF_STATE,              "WN_GAME_OPTIONS_NEWGRF_STATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_GAME_OPTIONS_MESSAGE_OPTION,            "WN_GAME_OPTIONS_MESSAGE_OPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_GAME_OPTIONS_GAME_OPTIONS,              "WN_GAME_OPTIONS_GAME_OPTIONS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_GAME_OPTIONS_GAME_DIFFICULTY,           "WN_GAME_OPTIONS_GAME_DIFFICULTY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_GAME_OPTIONS_GAME_SETTINGS,             "WN_GAME_OPTIONS_GAME_SETTINGS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_QUERY_STRING,                           "WN_QUERY_STRING");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_QUERY_STRING_SIGN,                      "WN_QUERY_STRING_SIGN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_CONFIRM_POPUP_QUERY,                    "WN_CONFIRM_POPUP_QUERY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_CONFIRM_POPUP_QUERY_BOOTSTRAP,          "WN_CONFIRM_POPUP_QUERY_BOOTSTRAP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_NETWORK_WINDOW_GAME,                    "WN_NETWORK_WINDOW_GAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_NETWORK_WINDOW_LOBBY,                   "WN_NETWORK_WINDOW_LOBBY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_NETWORK_WINDOW_CONTENT_LIST,            "WN_NETWORK_WINDOW_CONTENT_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_NETWORK_WINDOW_START,                   "WN_NETWORK_WINDOW_START");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_NETWORK_STATUS_WINDOW_JOIN,             "WN_NETWORK_STATUS_WINDOW_JOIN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WN_NETWORK_STATUS_WINDOW_CONTENT_DOWNLOAD, "WN_NETWORK_STATUS_WINDOW_CONTENT_DOWNLOAD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_MAIN_WINDOW,                            "WC_MAIN_WINDOW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_MAIN_TOOLBAR,                           "WC_MAIN_TOOLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_STATUS_BAR,                             "WC_STATUS_BAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_BUILD_TOOLBAR,                          "WC_BUILD_TOOLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_SCEN_BUILD_TOOLBAR,                     "WC_SCEN_BUILD_TOOLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_BUILD_TREES,                            "WC_BUILD_TREES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_TRANSPARENCY_TOOLBAR,                   "WC_TRANSPARENCY_TOOLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_BUILD_SIGNAL,                           "WC_BUILD_SIGNAL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_SMALLMAP,                               "WC_SMALLMAP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_ERRMSG,                                 "WC_ERRMSG");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_TOOLTIPS,                               "WC_TOOLTIPS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_QUERY_STRING,                           "WC_QUERY_STRING");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_CONFIRM_POPUP_QUERY,                    "WC_CONFIRM_POPUP_QUERY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_SAVELOAD,                               "WC_SAVELOAD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_LAND_INFO,                              "WC_LAND_INFO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_DROPDOWN_MENU,                          "WC_DROPDOWN_MENU");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_OSK,                                    "WC_OSK");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_SET_DATE,                               "WC_SET_DATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_AI_SETTINGS,                            "WC_AI_SETTINGS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_GRF_PARAMETERS,                         "WC_GRF_PARAMETERS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_NEWGRF_TEXTFILE,                        "WC_NEWGRF_TEXTFILE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_TOWN_AUTHORITY,                         "WC_TOWN_AUTHORITY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_VEHICLE_DETAILS,                        "WC_VEHICLE_DETAILS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_VEHICLE_REFIT,                          "WC_VEHICLE_REFIT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_VEHICLE_ORDERS,                         "WC_VEHICLE_ORDERS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_REPLACE_VEHICLE,                        "WC_REPLACE_VEHICLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_VEHICLE_TIMETABLE,                      "WC_VEHICLE_TIMETABLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_COMPANY_COLOUR,                         "WC_COMPANY_COLOUR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_COMPANY_MANAGER_FACE,                   "WC_COMPANY_MANAGER_FACE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_SELECT_STATION,                         "WC_SELECT_STATION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_NEWS_WINDOW,                            "WC_NEWS_WINDOW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_TOWN_DIRECTORY,                         "WC_TOWN_DIRECTORY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_SUBSIDIES_LIST,                         "WC_SUBSIDIES_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_INDUSTRY_DIRECTORY,                     "WC_INDUSTRY_DIRECTORY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_MESSAGE_HISTORY,                        "WC_MESSAGE_HISTORY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_SIGN_LIST,                              "WC_SIGN_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_AI_LIST,                                "WC_AI_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_GOALS_LIST,                             "WC_GOALS_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_STATION_LIST,                           "WC_STATION_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_TRAINS_LIST,                            "WC_TRAINS_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_ROADVEH_LIST,                           "WC_ROADVEH_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_SHIPS_LIST,                             "WC_SHIPS_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_AIRCRAFT_LIST,                          "WC_AIRCRAFT_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_TOWN_VIEW,                              "WC_TOWN_VIEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_VEHICLE_VIEW,                           "WC_VEHICLE_VIEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_STATION_VIEW,                           "WC_STATION_VIEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_VEHICLE_DEPOT,                          "WC_VEHICLE_DEPOT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_WAYPOINT_VIEW,                          "WC_WAYPOINT_VIEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_INDUSTRY_VIEW,                          "WC_INDUSTRY_VIEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_COMPANY,                                "WC_COMPANY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_BUILD_OBJECT,                           "WC_BUILD_OBJECT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_BUILD_VEHICLE,                          "WC_BUILD_VEHICLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_BUILD_BRIDGE,                           "WC_BUILD_BRIDGE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_BUILD_STATION,                          "WC_BUILD_STATION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_BUS_STATION,                            "WC_BUS_STATION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_TRUCK_STATION,                          "WC_TRUCK_STATION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_BUILD_DEPOT,                            "WC_BUILD_DEPOT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_BUILD_WAYPOINT,                         "WC_BUILD_WAYPOINT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_FOUND_TOWN,                             "WC_FOUND_TOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_BUILD_INDUSTRY,                         "WC_BUILD_INDUSTRY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_SELECT_GAME,                            "WC_SELECT_GAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_SCEN_LAND_GEN,                          "WC_SCEN_LAND_GEN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_GENERATE_LANDSCAPE,                     "WC_GENERATE_LANDSCAPE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_MODAL_PROGRESS,                         "WC_MODAL_PROGRESS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_NETWORK_WINDOW,                         "WC_NETWORK_WINDOW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_CLIENT_LIST,                            "WC_CLIENT_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_CLIENT_LIST_POPUP,                      "WC_CLIENT_LIST_POPUP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_NETWORK_STATUS_WINDOW,                  "WC_NETWORK_STATUS_WINDOW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_SEND_NETWORK_MSG,                       "WC_SEND_NETWORK_MSG");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_COMPANY_PASSWORD_WINDOW,                "WC_COMPANY_PASSWORD_WINDOW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_INDUSTRY_CARGOES,                       "WC_INDUSTRY_CARGOES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_GRAPH_LEGEND,                           "WC_GRAPH_LEGEND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_FINANCES,                               "WC_FINANCES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_INCOME_GRAPH,                           "WC_INCOME_GRAPH");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_OPERATING_PROFIT,                       "WC_OPERATING_PROFIT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_DELIVERED_CARGO,                        "WC_DELIVERED_CARGO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_PERFORMANCE_HISTORY,                    "WC_PERFORMANCE_HISTORY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_COMPANY_VALUE,                          "WC_COMPANY_VALUE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_COMPANY_LEAGUE,                         "WC_COMPANY_LEAGUE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_PAYMENT_RATES,                          "WC_PAYMENT_RATES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_PERFORMANCE_DETAIL,                     "WC_PERFORMANCE_DETAIL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_COMPANY_INFRASTRUCTURE,                 "WC_COMPANY_INFRASTRUCTURE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_BUY_COMPANY,                            "WC_BUY_COMPANY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_ENGINE_PREVIEW,                         "WC_ENGINE_PREVIEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_MUSIC_WINDOW,                           "WC_MUSIC_WINDOW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_MUSIC_TRACK_SELECTION,                  "WC_MUSIC_TRACK_SELECTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_GAME_OPTIONS,                           "WC_GAME_OPTIONS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_CUSTOM_CURRENCY,                        "WC_CUSTOM_CURRENCY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_CHEATS,                                 "WC_CHEATS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_EXTRA_VIEW_PORT,                        "WC_EXTRA_VIEW_PORT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_CONSOLE,                                "WC_CONSOLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_BOOTSTRAP,                              "WC_BOOTSTRAP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_HIGHSCORE,                              "WC_HIGHSCORE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_ENDSCREEN,                              "WC_ENDSCREEN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_AI_DEBUG,                               "WC_AI_DEBUG");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_NEWGRF_INSPECT,                         "WC_NEWGRF_INSPECT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_SPRITE_ALIGNER,                         "WC_SPRITE_ALIGNER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WC_INVALID,                                "WC_INVALID");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_BLUE,                                   "TC_BLUE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_SILVER,                                 "TC_SILVER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_GOLD,                                   "TC_GOLD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_RED,                                    "TC_RED");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_PURPLE,                                 "TC_PURPLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_LIGHT_BROWN,                            "TC_LIGHT_BROWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_ORANGE,                                 "TC_ORANGE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_GREEN,                                  "TC_GREEN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_YELLOW,                                 "TC_YELLOW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_DARK_GREEN,                             "TC_DARK_GREEN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_CREAM,                                  "TC_CREAM");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_BROWN,                                  "TC_BROWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_WHITE,                                  "TC_WHITE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_LIGHT_BLUE,                             "TC_LIGHT_BLUE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_GREY,                                   "TC_GREY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_DARK_BLUE,                              "TC_DARK_BLUE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_BLACK,                                  "TC_BLACK");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::TC_INVALID,                                "TC_INVALID");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::NUMBER_ALL,                                "NUMBER_ALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WIDGET_ALL,                                "WIDGET_ALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIL_CAPTION,                           "WID_AIL_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIL_LIST,                              "WID_AIL_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIL_SCROLLBAR,                         "WID_AIL_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIL_INFO_BG,                           "WID_AIL_INFO_BG");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIL_ACCEPT,                            "WID_AIL_ACCEPT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIL_CANCEL,                            "WID_AIL_CANCEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIS_CAPTION,                           "WID_AIS_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIS_BACKGROUND,                        "WID_AIS_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIS_SCROLLBAR,                         "WID_AIS_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIS_ACCEPT,                            "WID_AIS_ACCEPT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIS_RESET,                             "WID_AIS_RESET");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIC_BACKGROUND,                        "WID_AIC_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIC_DECREASE,                          "WID_AIC_DECREASE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIC_INCREASE,                          "WID_AIC_INCREASE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIC_NUMBER,                            "WID_AIC_NUMBER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIC_GAMELIST,                          "WID_AIC_GAMELIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIC_LIST,                              "WID_AIC_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIC_SCROLLBAR,                         "WID_AIC_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIC_MOVE_UP,                           "WID_AIC_MOVE_UP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIC_MOVE_DOWN,                         "WID_AIC_MOVE_DOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIC_CHANGE,                            "WID_AIC_CHANGE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIC_CONFIGURE,                         "WID_AIC_CONFIGURE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIC_CLOSE,                             "WID_AIC_CLOSE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AIC_CONTENT_DOWNLOAD,                  "WID_AIC_CONTENT_DOWNLOAD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AID_VIEW,                              "WID_AID_VIEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AID_NAME_TEXT,                         "WID_AID_NAME_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AID_SETTINGS,                          "WID_AID_SETTINGS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AID_SCRIPT_GAME,                       "WID_AID_SCRIPT_GAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AID_RELOAD_TOGGLE,                     "WID_AID_RELOAD_TOGGLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AID_LOG_PANEL,                         "WID_AID_LOG_PANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AID_SCROLLBAR,                         "WID_AID_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AID_COMPANY_BUTTON_START,              "WID_AID_COMPANY_BUTTON_START");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AID_COMPANY_BUTTON_END,                "WID_AID_COMPANY_BUTTON_END");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AID_BREAK_STRING_WIDGETS,              "WID_AID_BREAK_STRING_WIDGETS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AID_BREAK_STR_ON_OFF_BTN,              "WID_AID_BREAK_STR_ON_OFF_BTN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AID_BREAK_STR_EDIT_BOX,                "WID_AID_BREAK_STR_EDIT_BOX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AID_MATCH_CASE_BTN,                    "WID_AID_MATCH_CASE_BTN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AID_CONTINUE_BTN,                      "WID_AID_CONTINUE_BTN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AT_AIRPORT,                            "WID_AT_AIRPORT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AT_DEMOLISH,                           "WID_AT_DEMOLISH");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AP_CLASS_DROPDOWN,                     "WID_AP_CLASS_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AP_AIRPORT_LIST,                       "WID_AP_AIRPORT_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AP_SCROLLBAR,                          "WID_AP_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AP_LAYOUT_NUM,                         "WID_AP_LAYOUT_NUM");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AP_LAYOUT_DECREASE,                    "WID_AP_LAYOUT_DECREASE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AP_LAYOUT_INCREASE,                    "WID_AP_LAYOUT_INCREASE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AP_AIRPORT_SPRITE,                     "WID_AP_AIRPORT_SPRITE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AP_EXTRA_TEXT,                         "WID_AP_EXTRA_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AP_BOTTOMPANEL,                        "WID_AP_BOTTOMPANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AP_COVERAGE_LABEL,                     "WID_AP_COVERAGE_LABEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AP_BTN_DONTHILIGHT,                    "WID_AP_BTN_DONTHILIGHT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_AP_BTN_DOHILIGHT,                      "WID_AP_BTN_DOHILIGHT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_CAPTION,                            "WID_RV_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_LEFT_MATRIX,                        "WID_RV_LEFT_MATRIX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_LEFT_SCROLLBAR,                     "WID_RV_LEFT_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_RIGHT_MATRIX,                       "WID_RV_RIGHT_MATRIX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_RIGHT_SCROLLBAR,                    "WID_RV_RIGHT_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_LEFT_DETAILS,                       "WID_RV_LEFT_DETAILS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_RIGHT_DETAILS,                      "WID_RV_RIGHT_DETAILS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_START_REPLACE,                      "WID_RV_START_REPLACE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_INFO_TAB,                           "WID_RV_INFO_TAB");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_STOP_REPLACE,                       "WID_RV_STOP_REPLACE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_TRAIN_ENGINEWAGON_TOGGLE,           "WID_RV_TRAIN_ENGINEWAGON_TOGGLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_TRAIN_FLUFF_LEFT,                   "WID_RV_TRAIN_FLUFF_LEFT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_TRAIN_RAILTYPE_DROPDOWN,            "WID_RV_TRAIN_RAILTYPE_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_TRAIN_FLUFF_RIGHT,                  "WID_RV_TRAIN_FLUFF_RIGHT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RV_TRAIN_WAGONREMOVE_TOGGLE,           "WID_RV_TRAIN_WAGONREMOVE_TOGGLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BB_BACKGROUND,                         "WID_BB_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BAFD_QUESTION,                         "WID_BAFD_QUESTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BAFD_YES,                              "WID_BAFD_YES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BAFD_NO,                               "WID_BAFD_NO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BBS_CAPTION,                           "WID_BBS_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BBS_DROPDOWN_ORDER,                    "WID_BBS_DROPDOWN_ORDER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BBS_DROPDOWN_CRITERIA,                 "WID_BBS_DROPDOWN_CRITERIA");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BBS_BRIDGE_LIST,                       "WID_BBS_BRIDGE_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BBS_SCROLLBAR,                         "WID_BBS_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BV_CAPTION,                            "WID_BV_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BV_SORT_ASSENDING_DESCENDING,          "WID_BV_SORT_ASSENDING_DESCENDING");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BV_SORT_DROPDOWN,                      "WID_BV_SORT_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BV_CARGO_FILTER_DROPDOWN,              "WID_BV_CARGO_FILTER_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BV_LIST,                               "WID_BV_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BV_SCROLLBAR,                          "WID_BV_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BV_PANEL,                              "WID_BV_PANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BV_BUILD,                              "WID_BV_BUILD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BV_BUILD_SEL,                          "WID_BV_BUILD_SEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BV_RENAME,                             "WID_BV_RENAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_PANEL,                               "WID_C_PANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_CAPTION,                             "WID_C_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_FACE,                                "WID_C_FACE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_FACE_TITLE,                          "WID_C_FACE_TITLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_DESC_INAUGURATION,                   "WID_C_DESC_INAUGURATION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_DESC_COLOUR_SCHEME,                  "WID_C_DESC_COLOUR_SCHEME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_DESC_COLOUR_SCHEME_EXAMPLE,          "WID_C_DESC_COLOUR_SCHEME_EXAMPLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_DESC_VEHICLE,                        "WID_C_DESC_VEHICLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_DESC_VEHICLE_COUNTS,                 "WID_C_DESC_VEHICLE_COUNTS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_DESC_COMPANY_VALUE,                  "WID_C_DESC_COMPANY_VALUE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_DESC_INFRASTRUCTURE,                 "WID_C_DESC_INFRASTRUCTURE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_DESC_INFRASTRUCTURE_COUNTS,          "WID_C_DESC_INFRASTRUCTURE_COUNTS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_SELECT_DESC_OWNERS,                  "WID_C_SELECT_DESC_OWNERS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_DESC_OWNERS,                         "WID_C_DESC_OWNERS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_SELECT_BUTTONS,                      "WID_C_SELECT_BUTTONS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_NEW_FACE,                            "WID_C_NEW_FACE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_COLOUR_SCHEME,                       "WID_C_COLOUR_SCHEME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_PRESIDENT_NAME,                      "WID_C_PRESIDENT_NAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_COMPANY_NAME,                        "WID_C_COMPANY_NAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_BUY_SHARE,                           "WID_C_BUY_SHARE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_SELL_SHARE,                          "WID_C_SELL_SHARE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_SELECT_VIEW_BUILD_HQ,                "WID_C_SELECT_VIEW_BUILD_HQ");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_VIEW_HQ,                             "WID_C_VIEW_HQ");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_BUILD_HQ,                            "WID_C_BUILD_HQ");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_SELECT_RELOCATE,                     "WID_C_SELECT_RELOCATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_RELOCATE_HQ,                         "WID_C_RELOCATE_HQ");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_VIEW_INFRASTRUCTURE,                 "WID_C_VIEW_INFRASTRUCTURE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_HAS_PASSWORD,                        "WID_C_HAS_PASSWORD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_SELECT_MULTIPLAYER,                  "WID_C_SELECT_MULTIPLAYER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_COMPANY_PASSWORD,                    "WID_C_COMPANY_PASSWORD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_COMPANY_JOIN,                        "WID_C_COMPANY_JOIN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_CAPTION,                            "WID_CF_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_TOGGLE_SIZE,                        "WID_CF_TOGGLE_SIZE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_SEL_PANEL,                          "WID_CF_SEL_PANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_EXPS_CATEGORY,                      "WID_CF_EXPS_CATEGORY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_EXPS_PRICE1,                        "WID_CF_EXPS_PRICE1");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_EXPS_PRICE2,                        "WID_CF_EXPS_PRICE2");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_EXPS_PRICE3,                        "WID_CF_EXPS_PRICE3");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_TOTAL_PANEL,                        "WID_CF_TOTAL_PANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_SEL_MAXLOAN,                        "WID_CF_SEL_MAXLOAN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_BALANCE_VALUE,                      "WID_CF_BALANCE_VALUE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_LOAN_VALUE,                         "WID_CF_LOAN_VALUE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_LOAN_LINE,                          "WID_CF_LOAN_LINE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_TOTAL_VALUE,                        "WID_CF_TOTAL_VALUE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_MAXLOAN_GAP,                        "WID_CF_MAXLOAN_GAP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_MAXLOAN_VALUE,                      "WID_CF_MAXLOAN_VALUE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_SEL_BUTTONS,                        "WID_CF_SEL_BUTTONS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_INCREASE_LOAN,                      "WID_CF_INCREASE_LOAN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_REPAY_LOAN,                         "WID_CF_REPAY_LOAN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CF_INFRASTRUCTURE,                     "WID_CF_INFRASTRUCTURE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_CAPTION,                           "WID_SCL_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_CLASS_GENERAL,                     "WID_SCL_CLASS_GENERAL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_CLASS_RAIL,                        "WID_SCL_CLASS_RAIL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_CLASS_ROAD,                        "WID_SCL_CLASS_ROAD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_CLASS_SHIP,                        "WID_SCL_CLASS_SHIP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_CLASS_AIRCRAFT,                    "WID_SCL_CLASS_AIRCRAFT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_SPACER_DROPDOWN,                   "WID_SCL_SPACER_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_PRI_COL_DROPDOWN,                  "WID_SCL_PRI_COL_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_SEC_COL_DROPDOWN,                  "WID_SCL_SEC_COL_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCL_MATRIX,                            "WID_SCL_MATRIX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_CAPTION,                          "WID_SCMF_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_TOGGLE_LARGE_SMALL,               "WID_SCMF_TOGGLE_LARGE_SMALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_SELECT_FACE,                      "WID_SCMF_SELECT_FACE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_CANCEL,                           "WID_SCMF_CANCEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_ACCEPT,                           "WID_SCMF_ACCEPT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_MALE,                             "WID_SCMF_MALE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_FEMALE,                           "WID_SCMF_FEMALE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_MALE2,                            "WID_SCMF_MALE2");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_FEMALE2,                          "WID_SCMF_FEMALE2");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_SEL_LOADSAVE,                     "WID_SCMF_SEL_LOADSAVE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_SEL_MALEFEMALE,                   "WID_SCMF_SEL_MALEFEMALE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_SEL_PARTS,                        "WID_SCMF_SEL_PARTS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_RANDOM_NEW_FACE,                  "WID_SCMF_RANDOM_NEW_FACE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_TOGGLE_LARGE_SMALL_BUTTON,        "WID_SCMF_TOGGLE_LARGE_SMALL_BUTTON");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_FACE,                             "WID_SCMF_FACE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_LOAD,                             "WID_SCMF_LOAD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_FACECODE,                         "WID_SCMF_FACECODE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_SAVE,                             "WID_SCMF_SAVE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_HAS_MOUSTACHE_EARRING_TEXT,       "WID_SCMF_HAS_MOUSTACHE_EARRING_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_TIE_EARRING_TEXT,                 "WID_SCMF_TIE_EARRING_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_LIPS_MOUSTACHE_TEXT,              "WID_SCMF_LIPS_MOUSTACHE_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_HAS_GLASSES_TEXT,                 "WID_SCMF_HAS_GLASSES_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_HAIR_TEXT,                        "WID_SCMF_HAIR_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_EYEBROWS_TEXT,                    "WID_SCMF_EYEBROWS_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_EYECOLOUR_TEXT,                   "WID_SCMF_EYECOLOUR_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_GLASSES_TEXT,                     "WID_SCMF_GLASSES_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_NOSE_TEXT,                        "WID_SCMF_NOSE_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_CHIN_TEXT,                        "WID_SCMF_CHIN_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_JACKET_TEXT,                      "WID_SCMF_JACKET_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_COLLAR_TEXT,                      "WID_SCMF_COLLAR_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_ETHNICITY_EUR,                    "WID_SCMF_ETHNICITY_EUR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_ETHNICITY_AFR,                    "WID_SCMF_ETHNICITY_AFR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_HAS_MOUSTACHE_EARRING,            "WID_SCMF_HAS_MOUSTACHE_EARRING");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_HAS_GLASSES,                      "WID_SCMF_HAS_GLASSES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_EYECOLOUR_L,                      "WID_SCMF_EYECOLOUR_L");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_EYECOLOUR,                        "WID_SCMF_EYECOLOUR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_EYECOLOUR_R,                      "WID_SCMF_EYECOLOUR_R");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_CHIN_L,                           "WID_SCMF_CHIN_L");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_CHIN,                             "WID_SCMF_CHIN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_CHIN_R,                           "WID_SCMF_CHIN_R");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_EYEBROWS_L,                       "WID_SCMF_EYEBROWS_L");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_EYEBROWS,                         "WID_SCMF_EYEBROWS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_EYEBROWS_R,                       "WID_SCMF_EYEBROWS_R");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_LIPS_MOUSTACHE_L,                 "WID_SCMF_LIPS_MOUSTACHE_L");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_LIPS_MOUSTACHE,                   "WID_SCMF_LIPS_MOUSTACHE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_LIPS_MOUSTACHE_R,                 "WID_SCMF_LIPS_MOUSTACHE_R");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_NOSE_L,                           "WID_SCMF_NOSE_L");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_NOSE,                             "WID_SCMF_NOSE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_NOSE_R,                           "WID_SCMF_NOSE_R");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_HAIR_L,                           "WID_SCMF_HAIR_L");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_HAIR,                             "WID_SCMF_HAIR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_HAIR_R,                           "WID_SCMF_HAIR_R");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_JACKET_L,                         "WID_SCMF_JACKET_L");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_JACKET,                           "WID_SCMF_JACKET");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_JACKET_R,                         "WID_SCMF_JACKET_R");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_COLLAR_L,                         "WID_SCMF_COLLAR_L");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_COLLAR,                           "WID_SCMF_COLLAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_COLLAR_R,                         "WID_SCMF_COLLAR_R");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_TIE_EARRING_L,                    "WID_SCMF_TIE_EARRING_L");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_TIE_EARRING,                      "WID_SCMF_TIE_EARRING");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_TIE_EARRING_R,                    "WID_SCMF_TIE_EARRING_R");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_GLASSES_L,                        "WID_SCMF_GLASSES_L");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_GLASSES,                          "WID_SCMF_GLASSES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SCMF_GLASSES_R,                        "WID_SCMF_GLASSES_R");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CI_CAPTION,                            "WID_CI_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CI_RAIL_DESC,                          "WID_CI_RAIL_DESC");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CI_RAIL_COUNT,                         "WID_CI_RAIL_COUNT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CI_ROAD_DESC,                          "WID_CI_ROAD_DESC");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CI_ROAD_COUNT,                         "WID_CI_ROAD_COUNT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CI_WATER_DESC,                         "WID_CI_WATER_DESC");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CI_WATER_COUNT,                        "WID_CI_WATER_COUNT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CI_STATION_DESC,                       "WID_CI_STATION_DESC");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CI_STATION_COUNT,                      "WID_CI_STATION_COUNT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CI_TOTAL_DESC,                         "WID_CI_TOTAL_DESC");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CI_TOTAL,                              "WID_CI_TOTAL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BC_CAPTION,                            "WID_BC_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BC_FACE,                               "WID_BC_FACE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BC_QUESTION,                           "WID_BC_QUESTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BC_NO,                                 "WID_BC_NO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BC_YES,                                "WID_BC_YES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_C_BACKGROUND,                          "WID_C_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SD_DAY,                                "WID_SD_DAY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SD_MONTH,                              "WID_SD_MONTH");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SD_YEAR,                               "WID_SD_YEAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SD_SET_DATE,                           "WID_SD_SET_DATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_CAPTION,                             "WID_D_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_SELL,                                "WID_D_SELL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_SHOW_SELL_CHAIN,                     "WID_D_SHOW_SELL_CHAIN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_SELL_CHAIN,                          "WID_D_SELL_CHAIN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_SELL_ALL,                            "WID_D_SELL_ALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_AUTOREPLACE,                         "WID_D_AUTOREPLACE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_MATRIX,                              "WID_D_MATRIX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_V_SCROLL,                            "WID_D_V_SCROLL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_SHOW_H_SCROLL,                       "WID_D_SHOW_H_SCROLL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_H_SCROLL,                            "WID_D_H_SCROLL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_BUILD,                               "WID_D_BUILD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_CLONE,                               "WID_D_CLONE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_LOCATION,                            "WID_D_LOCATION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_SHOW_RENAME,                         "WID_D_SHOW_RENAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_RENAME,                              "WID_D_RENAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_VEHICLE_LIST,                        "WID_D_VEHICLE_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_STOP_ALL,                            "WID_D_STOP_ALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_D_START_ALL,                           "WID_D_START_ALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BDD_BACKGROUND,                        "WID_BDD_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BDD_X,                                 "WID_BDD_X");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BDD_Y,                                 "WID_BDD_Y");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DT_CANAL,                              "WID_DT_CANAL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DT_LOCK,                               "WID_DT_LOCK");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DT_DEMOLISH,                           "WID_DT_DEMOLISH");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DT_DEPOT,                              "WID_DT_DEPOT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DT_STATION,                            "WID_DT_STATION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DT_BUOY,                               "WID_DT_BUOY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DT_RIVER,                              "WID_DT_RIVER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DT_BUILD_AQUEDUCT,                     "WID_DT_BUILD_AQUEDUCT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DT_INVALID,                            "WID_DT_INVALID");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DM_ITEMS,                              "WID_DM_ITEMS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DM_SHOW_SCROLL,                        "WID_DM_SHOW_SCROLL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DM_SCROLL,                             "WID_DM_SCROLL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_EP_QUESTION,                           "WID_EP_QUESTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_EP_NO,                                 "WID_EP_NO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_EP_YES,                                "WID_EP_YES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_EM_CAPTION,                            "WID_EM_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_EM_FACE,                               "WID_EM_FACE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_EM_MESSAGE,                            "WID_EM_MESSAGE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_CAPTION,                            "WID_SL_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_SORT_BYNAME,                        "WID_SL_SORT_BYNAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_SORT_BYDATE,                        "WID_SL_SORT_BYDATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_BACKGROUND,                         "WID_SL_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_FILE_BACKGROUND,                    "WID_SL_FILE_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_HOME_BUTTON,                        "WID_SL_HOME_BUTTON");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_DRIVES_DIRECTORIES_LIST,            "WID_SL_DRIVES_DIRECTORIES_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_SCROLLBAR,                          "WID_SL_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_CONTENT_DOWNLOAD,                   "WID_SL_CONTENT_DOWNLOAD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_SAVE_OSK_TITLE,                     "WID_SL_SAVE_OSK_TITLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_DELETE_SELECTION,                   "WID_SL_DELETE_SELECTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_SAVE_GAME,                          "WID_SL_SAVE_GAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_CONTENT_DOWNLOAD_SEL,               "WID_SL_CONTENT_DOWNLOAD_SEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_DETAILS,                            "WID_SL_DETAILS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_NEWGRF_INFO,                        "WID_SL_NEWGRF_INFO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_LOAD_BUTTON,                        "WID_SL_LOAD_BUTTON");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_MISSING_NEWGRFS,                    "WID_SL_MISSING_NEWGRFS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_TEMPERATE,                          "WID_GL_TEMPERATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_ARCTIC,                             "WID_GL_ARCTIC");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_TROPICAL,                           "WID_GL_TROPICAL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_TOYLAND,                            "WID_GL_TOYLAND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_MAPSIZE_X_PULLDOWN,                 "WID_GL_MAPSIZE_X_PULLDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_MAPSIZE_Y_PULLDOWN,                 "WID_GL_MAPSIZE_Y_PULLDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_TOWN_PULLDOWN,                      "WID_GL_TOWN_PULLDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_INDUSTRY_PULLDOWN,                  "WID_GL_INDUSTRY_PULLDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_RANDOM_EDITBOX,                     "WID_GL_RANDOM_EDITBOX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_RANDOM_BUTTON,                      "WID_GL_RANDOM_BUTTON");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_GENERATE_BUTTON,                    "WID_GL_GENERATE_BUTTON");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_START_DATE_DOWN,                    "WID_GL_START_DATE_DOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_START_DATE_TEXT,                    "WID_GL_START_DATE_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_START_DATE_UP,                      "WID_GL_START_DATE_UP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_SNOW_LEVEL_DOWN,                    "WID_GL_SNOW_LEVEL_DOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_SNOW_LEVEL_TEXT,                    "WID_GL_SNOW_LEVEL_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_SNOW_LEVEL_UP,                      "WID_GL_SNOW_LEVEL_UP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_TREE_PULLDOWN,                      "WID_GL_TREE_PULLDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_LANDSCAPE_PULLDOWN,                 "WID_GL_LANDSCAPE_PULLDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_HEIGHTMAP_NAME_TEXT,                "WID_GL_HEIGHTMAP_NAME_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_HEIGHTMAP_SIZE_TEXT,                "WID_GL_HEIGHTMAP_SIZE_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_HEIGHTMAP_ROTATION_PULLDOWN,        "WID_GL_HEIGHTMAP_ROTATION_PULLDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_TERRAIN_PULLDOWN,                   "WID_GL_TERRAIN_PULLDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_WATER_PULLDOWN,                     "WID_GL_WATER_PULLDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_RIVER_PULLDOWN,                     "WID_GL_RIVER_PULLDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_SMOOTHNESS_PULLDOWN,                "WID_GL_SMOOTHNESS_PULLDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_VARIETY_PULLDOWN,                   "WID_GL_VARIETY_PULLDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_BORDERS_RANDOM,                     "WID_GL_BORDERS_RANDOM");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_WATER_NW,                           "WID_GL_WATER_NW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_WATER_NE,                           "WID_GL_WATER_NE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_WATER_SE,                           "WID_GL_WATER_SE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_WATER_SW,                           "WID_GL_WATER_SW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CS_TEMPERATE,                          "WID_CS_TEMPERATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CS_ARCTIC,                             "WID_CS_ARCTIC");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CS_TROPICAL,                           "WID_CS_TROPICAL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CS_TOYLAND,                            "WID_CS_TOYLAND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CS_EMPTY_WORLD,                        "WID_CS_EMPTY_WORLD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CS_RANDOM_WORLD,                       "WID_CS_RANDOM_WORLD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CS_MAPSIZE_X_PULLDOWN,                 "WID_CS_MAPSIZE_X_PULLDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CS_MAPSIZE_Y_PULLDOWN,                 "WID_CS_MAPSIZE_Y_PULLDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CS_START_DATE_DOWN,                    "WID_CS_START_DATE_DOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CS_START_DATE_TEXT,                    "WID_CS_START_DATE_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CS_START_DATE_UP,                      "WID_CS_START_DATE_UP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CS_FLAT_LAND_HEIGHT_DOWN,              "WID_CS_FLAT_LAND_HEIGHT_DOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CS_FLAT_LAND_HEIGHT_TEXT,              "WID_CS_FLAT_LAND_HEIGHT_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CS_FLAT_LAND_HEIGHT_UP,                "WID_CS_FLAT_LAND_HEIGHT_UP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GP_PROGRESS_BAR,                       "WID_GP_PROGRESS_BAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GP_PROGRESS_TEXT,                      "WID_GP_PROGRESS_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GP_ABORT,                              "WID_GP_ABORT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_PANEL,                              "WID_GL_PANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_SCROLLBAR,                          "WID_GL_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_BACKGROUND,                         "WID_GL_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_FIRST_COMPANY,                      "WID_GL_FIRST_COMPANY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_LAST_COMPANY,                       "WID_GL_LAST_COMPANY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CV_KEY_BUTTON,                         "WID_CV_KEY_BUTTON");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CV_BACKGROUND,                         "WID_CV_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CV_GRAPH,                              "WID_CV_GRAPH");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CV_RESIZE,                             "WID_CV_RESIZE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_PHG_KEY,                               "WID_PHG_KEY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_PHG_DETAILED_PERFORMANCE,              "WID_PHG_DETAILED_PERFORMANCE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_PHG_BACKGROUND,                        "WID_PHG_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_PHG_GRAPH,                             "WID_PHG_GRAPH");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_PHG_RESIZE,                            "WID_PHG_RESIZE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CPR_BACKGROUND,                        "WID_CPR_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CPR_HEADER,                            "WID_CPR_HEADER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CPR_GRAPH,                             "WID_CPR_GRAPH");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CPR_RESIZE,                            "WID_CPR_RESIZE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CPR_FOOTER,                            "WID_CPR_FOOTER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CPR_ENABLE_CARGOES,                    "WID_CPR_ENABLE_CARGOES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CPR_DISABLE_CARGOES,                   "WID_CPR_DISABLE_CARGOES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CPR_CARGO_FIRST,                       "WID_CPR_CARGO_FIRST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CL_BACKGROUND,                         "WID_CL_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_PRD_SCORE_FIRST,                       "WID_PRD_SCORE_FIRST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_PRD_SCORE_LAST,                        "WID_PRD_SCORE_LAST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_PRD_COMPANY_FIRST,                     "WID_PRD_COMPANY_FIRST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_PRD_COMPANY_LAST,                      "WID_PRD_COMPANY_LAST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_CAPTION,                            "WID_GL_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_SORT_BY_ORDER,                      "WID_GL_SORT_BY_ORDER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_SORT_BY_DROPDOWN,                   "WID_GL_SORT_BY_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_LIST_VEHICLE,                       "WID_GL_LIST_VEHICLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_LIST_VEHICLE_SCROLLBAR,             "WID_GL_LIST_VEHICLE_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_AVAILABLE_VEHICLES,                 "WID_GL_AVAILABLE_VEHICLES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_MANAGE_VEHICLES_DROPDOWN,           "WID_GL_MANAGE_VEHICLES_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_STOP_ALL,                           "WID_GL_STOP_ALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_START_ALL,                          "WID_GL_START_ALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_ALL_VEHICLES,                       "WID_GL_ALL_VEHICLES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_DEFAULT_VEHICLES,                   "WID_GL_DEFAULT_VEHICLES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_LIST_GROUP,                         "WID_GL_LIST_GROUP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_LIST_GROUP_SCROLLBAR,               "WID_GL_LIST_GROUP_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_CREATE_GROUP,                       "WID_GL_CREATE_GROUP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_DELETE_GROUP,                       "WID_GL_DELETE_GROUP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_RENAME_GROUP,                       "WID_GL_RENAME_GROUP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_REPLACE_PROTECTION,                 "WID_GL_REPLACE_PROTECTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_H_BACKGROUND,                          "WID_H_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DPI_MATRIX_WIDGET,                     "WID_DPI_MATRIX_WIDGET");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DPI_SCROLLBAR,                         "WID_DPI_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DPI_INFOPANEL,                         "WID_DPI_INFOPANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DPI_DISPLAY_WIDGET,                    "WID_DPI_DISPLAY_WIDGET");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_DPI_FUND_WIDGET,                       "WID_DPI_FUND_WIDGET");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_IV_CAPTION,                            "WID_IV_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_IV_VIEWPORT,                           "WID_IV_VIEWPORT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_IV_INFO,                               "WID_IV_INFO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_IV_GOTO,                               "WID_IV_GOTO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_IV_DISPLAY,                            "WID_IV_DISPLAY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ID_DROPDOWN_ORDER,                     "WID_ID_DROPDOWN_ORDER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ID_DROPDOWN_CRITERIA,                  "WID_ID_DROPDOWN_CRITERIA");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ID_INDUSTRY_LIST,                      "WID_ID_INDUSTRY_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ID_SCROLLBAR,                          "WID_ID_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_IC_CAPTION,                            "WID_IC_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_IC_NOTIFY,                             "WID_IC_NOTIFY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_IC_PANEL,                              "WID_IC_PANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_IC_SCROLLBAR,                          "WID_IC_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_GENERATE_GAME,                     "WID_SGI_GENERATE_GAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_LOAD_GAME,                         "WID_SGI_LOAD_GAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_PLAY_SCENARIO,                     "WID_SGI_PLAY_SCENARIO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_PLAY_HEIGHTMAP,                    "WID_SGI_PLAY_HEIGHTMAP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_EDIT_SCENARIO,                     "WID_SGI_EDIT_SCENARIO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_PLAY_NETWORK,                      "WID_SGI_PLAY_NETWORK");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_TEMPERATE_LANDSCAPE,               "WID_SGI_TEMPERATE_LANDSCAPE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_ARCTIC_LANDSCAPE,                  "WID_SGI_ARCTIC_LANDSCAPE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_TROPIC_LANDSCAPE,                  "WID_SGI_TROPIC_LANDSCAPE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_TOYLAND_LANDSCAPE,                 "WID_SGI_TOYLAND_LANDSCAPE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_TRANSLATION_SELECTION,             "WID_SGI_TRANSLATION_SELECTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_TRANSLATION,                       "WID_SGI_TRANSLATION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_OPTIONS,                           "WID_SGI_OPTIONS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_DIFFICULTIES,                      "WID_SGI_DIFFICULTIES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_SETTINGS_OPTIONS,                  "WID_SGI_SETTINGS_OPTIONS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_GRF_SETTINGS,                      "WID_SGI_GRF_SETTINGS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_CONTENT_DOWNLOAD,                  "WID_SGI_CONTENT_DOWNLOAD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_AI_SETTINGS,                       "WID_SGI_AI_SETTINGS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_EXIT,                              "WID_SGI_EXIT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_VIEWPORT,                            "WID_M_VIEWPORT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_LI_BACKGROUND,                         "WID_LI_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_BACKGROUND,                         "WID_TT_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_A_SCROLLING_TEXT,                      "WID_A_SCROLLING_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_A_WEBSITE,                             "WID_A_WEBSITE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_QS_CAPTION,                            "WID_QS_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_QS_TEXT,                               "WID_QS_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_QS_DEFAULT,                            "WID_QS_DEFAULT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_QS_CANCEL,                             "WID_QS_CANCEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_QS_OK,                                 "WID_QS_OK");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_Q_CAPTION,                             "WID_Q_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_Q_TEXT,                                "WID_Q_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_Q_NO,                                  "WID_Q_NO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_Q_YES,                                 "WID_Q_YES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MTS_LIST_LEFT,                         "WID_MTS_LIST_LEFT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MTS_PLAYLIST,                          "WID_MTS_PLAYLIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MTS_LIST_RIGHT,                        "WID_MTS_LIST_RIGHT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MTS_ALL,                               "WID_MTS_ALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MTS_OLD,                               "WID_MTS_OLD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MTS_NEW,                               "WID_MTS_NEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MTS_EZY,                               "WID_MTS_EZY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MTS_CUSTOM1,                           "WID_MTS_CUSTOM1");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MTS_CUSTOM2,                           "WID_MTS_CUSTOM2");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MTS_CLEAR,                             "WID_MTS_CLEAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_PREV,                                "WID_M_PREV");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_NEXT,                                "WID_M_NEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_STOP,                                "WID_M_STOP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_PLAY,                                "WID_M_PLAY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_SLIDERS,                             "WID_M_SLIDERS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_MUSIC_VOL,                           "WID_M_MUSIC_VOL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_EFFECT_VOL,                          "WID_M_EFFECT_VOL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_BACKGROUND,                          "WID_M_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_TRACK,                               "WID_M_TRACK");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_TRACK_NR,                            "WID_M_TRACK_NR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_TRACK_TITLE,                         "WID_M_TRACK_TITLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_TRACK_NAME,                          "WID_M_TRACK_NAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_SHUFFLE,                             "WID_M_SHUFFLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_PROGRAMME,                           "WID_M_PROGRAMME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_ALL,                                 "WID_M_ALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_OLD,                                 "WID_M_OLD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_NEW,                                 "WID_M_NEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_EZY,                                 "WID_M_EZY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_CUSTOM1,                             "WID_M_CUSTOM1");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_M_CUSTOM2,                             "WID_M_CUSTOM2");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NC_CLOSE,                              "WID_NC_CLOSE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NC_BACKGROUND,                         "WID_NC_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NC_DESTINATION,                        "WID_NC_DESTINATION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NC_TEXTBOX,                            "WID_NC_TEXTBOX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NC_SENDBUTTON,                         "WID_NC_SENDBUTTON");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCDS_BACKGROUND,                       "WID_NCDS_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCDS_CANCELOK,                         "WID_NCDS_CANCELOK");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCL_BACKGROUND,                        "WID_NCL_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCL_FILTER_CAPT,                       "WID_NCL_FILTER_CAPT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCL_FILTER,                            "WID_NCL_FILTER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCL_CHECKBOX,                          "WID_NCL_CHECKBOX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCL_TYPE,                              "WID_NCL_TYPE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCL_NAME,                              "WID_NCL_NAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCL_MATRIX,                            "WID_NCL_MATRIX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCL_SCROLLBAR,                         "WID_NCL_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCL_DETAILS,                           "WID_NCL_DETAILS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCL_SELECT_ALL,                        "WID_NCL_SELECT_ALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCL_SELECT_UPDATE,                     "WID_NCL_SELECT_UPDATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCL_UNSELECT,                          "WID_NCL_UNSELECT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCL_OPEN_URL,                          "WID_NCL_OPEN_URL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCL_CANCEL,                            "WID_NCL_CANCEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCL_DOWNLOAD,                          "WID_NCL_DOWNLOAD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCL_SEL_ALL_UPDATE,                    "WID_NCL_SEL_ALL_UPDATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_MAIN,                               "WID_NG_MAIN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_CONNECTION,                         "WID_NG_CONNECTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_CONN_BTN,                           "WID_NG_CONN_BTN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_CLIENT_LABEL,                       "WID_NG_CLIENT_LABEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_CLIENT,                             "WID_NG_CLIENT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_HEADER,                             "WID_NG_HEADER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_NAME,                               "WID_NG_NAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_CLIENTS,                            "WID_NG_CLIENTS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_MAPSIZE,                            "WID_NG_MAPSIZE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_DATE,                               "WID_NG_DATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_YEARS,                              "WID_NG_YEARS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_INFO,                               "WID_NG_INFO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_MATRIX,                             "WID_NG_MATRIX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_SCROLLBAR,                          "WID_NG_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_LASTJOINED_LABEL,                   "WID_NG_LASTJOINED_LABEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_LASTJOINED,                         "WID_NG_LASTJOINED");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_LASTJOINED_SPACER,                  "WID_NG_LASTJOINED_SPACER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_DETAILS,                            "WID_NG_DETAILS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_DETAILS_SPACER,                     "WID_NG_DETAILS_SPACER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_JOIN,                               "WID_NG_JOIN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_REFRESH,                            "WID_NG_REFRESH");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_NEWGRF,                             "WID_NG_NEWGRF");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_NEWGRF_SEL,                         "WID_NG_NEWGRF_SEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_NEWGRF_MISSING,                     "WID_NG_NEWGRF_MISSING");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_NEWGRF_MISSING_SEL,                 "WID_NG_NEWGRF_MISSING_SEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_FIND,                               "WID_NG_FIND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_ADD,                                "WID_NG_ADD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_START,                              "WID_NG_START");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NG_CANCEL,                             "WID_NG_CANCEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_BACKGROUND,                        "WID_NSS_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_GAMENAME_LABEL,                    "WID_NSS_GAMENAME_LABEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_GAMENAME,                          "WID_NSS_GAMENAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_SETPWD,                            "WID_NSS_SETPWD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_CONNTYPE_LABEL,                    "WID_NSS_CONNTYPE_LABEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_CONNTYPE_BTN,                      "WID_NSS_CONNTYPE_BTN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_CLIENTS_LABEL,                     "WID_NSS_CLIENTS_LABEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_CLIENTS_BTND,                      "WID_NSS_CLIENTS_BTND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_CLIENTS_TXT,                       "WID_NSS_CLIENTS_TXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_CLIENTS_BTNU,                      "WID_NSS_CLIENTS_BTNU");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_COMPANIES_LABEL,                   "WID_NSS_COMPANIES_LABEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_COMPANIES_BTND,                    "WID_NSS_COMPANIES_BTND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_COMPANIES_TXT,                     "WID_NSS_COMPANIES_TXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_COMPANIES_BTNU,                    "WID_NSS_COMPANIES_BTNU");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_SPECTATORS_LABEL,                  "WID_NSS_SPECTATORS_LABEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_SPECTATORS_BTND,                   "WID_NSS_SPECTATORS_BTND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_SPECTATORS_TXT,                    "WID_NSS_SPECTATORS_TXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_SPECTATORS_BTNU,                   "WID_NSS_SPECTATORS_BTNU");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_LANGUAGE_LABEL,                    "WID_NSS_LANGUAGE_LABEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_LANGUAGE_BTN,                      "WID_NSS_LANGUAGE_BTN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_GENERATE_GAME,                     "WID_NSS_GENERATE_GAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_LOAD_GAME,                         "WID_NSS_LOAD_GAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_PLAY_SCENARIO,                     "WID_NSS_PLAY_SCENARIO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_PLAY_HEIGHTMAP,                    "WID_NSS_PLAY_HEIGHTMAP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NSS_CANCEL,                            "WID_NSS_CANCEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NL_BACKGROUND,                         "WID_NL_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NL_TEXT,                               "WID_NL_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NL_HEADER,                             "WID_NL_HEADER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NL_MATRIX,                             "WID_NL_MATRIX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NL_SCROLLBAR,                          "WID_NL_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NL_DETAILS,                            "WID_NL_DETAILS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NL_JOIN,                               "WID_NL_JOIN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NL_NEW,                                "WID_NL_NEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NL_SPECTATE,                           "WID_NL_SPECTATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NL_REFRESH,                            "WID_NL_REFRESH");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NL_CANCEL,                             "WID_NL_CANCEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CL_PANEL,                              "WID_CL_PANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CLP_PANEL,                             "WID_CLP_PANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NJS_BACKGROUND,                        "WID_NJS_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NJS_CANCELOK,                          "WID_NJS_CANCELOK");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCP_BACKGROUND,                        "WID_NCP_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCP_LABEL,                             "WID_NCP_LABEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCP_PASSWORD,                          "WID_NCP_PASSWORD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCP_SAVE_AS_DEFAULT_PASSWORD,          "WID_NCP_SAVE_AS_DEFAULT_PASSWORD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCP_CANCEL,                            "WID_NCP_CANCEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NCP_OK,                                "WID_NCP_OK");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NGRFI_CAPTION,                         "WID_NGRFI_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NGRFI_PARENT,                          "WID_NGRFI_PARENT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NGRFI_MAINPANEL,                       "WID_NGRFI_MAINPANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NGRFI_SCROLLBAR,                       "WID_NGRFI_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_CAPTION,                            "WID_SA_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_PREVIOUS,                           "WID_SA_PREVIOUS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_GOTO,                               "WID_SA_GOTO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_NEXT,                               "WID_SA_NEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_UP,                                 "WID_SA_UP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_LEFT,                               "WID_SA_LEFT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_RIGHT,                              "WID_SA_RIGHT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_DOWN,                               "WID_SA_DOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_SPRITE,                             "WID_SA_SPRITE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_OFFSETS,                            "WID_SA_OFFSETS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_PICKER,                             "WID_SA_PICKER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_LIST,                               "WID_SA_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_SCROLLBAR,                          "WID_SA_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NP_SHOW_NUMPAR,                        "WID_NP_SHOW_NUMPAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NP_NUMPAR_DEC,                         "WID_NP_NUMPAR_DEC");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NP_NUMPAR_INC,                         "WID_NP_NUMPAR_INC");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NP_NUMPAR,                             "WID_NP_NUMPAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NP_NUMPAR_TEXT,                        "WID_NP_NUMPAR_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NP_BACKGROUND,                         "WID_NP_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NP_SCROLLBAR,                          "WID_NP_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NP_ACCEPT,                             "WID_NP_ACCEPT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NP_RESET,                              "WID_NP_RESET");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NP_SHOW_DESCRIPTION,                   "WID_NP_SHOW_DESCRIPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NP_DESCRIPTION,                        "WID_NP_DESCRIPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NT_CAPTION,                            "WID_NT_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NT_BACKGROUND,                         "WID_NT_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NT_VSCROLLBAR,                         "WID_NT_VSCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NT_HSCROLLBAR,                         "WID_NT_HSCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_PRESET_LIST,                        "WID_NS_PRESET_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_PRESET_SAVE,                        "WID_NS_PRESET_SAVE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_PRESET_DELETE,                      "WID_NS_PRESET_DELETE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_ADD,                                "WID_NS_ADD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_REMOVE,                             "WID_NS_REMOVE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_MOVE_UP,                            "WID_NS_MOVE_UP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_MOVE_DOWN,                          "WID_NS_MOVE_DOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_FILTER,                             "WID_NS_FILTER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_FILE_LIST,                          "WID_NS_FILE_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_SCROLLBAR,                          "WID_NS_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_AVAIL_LIST,                         "WID_NS_AVAIL_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_SCROLL2BAR,                         "WID_NS_SCROLL2BAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_NEWGRF_INFO_TITLE,                  "WID_NS_NEWGRF_INFO_TITLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_NEWGRF_INFO,                        "WID_NS_NEWGRF_INFO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_OPEN_URL,                           "WID_NS_OPEN_URL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_NEWGRF_TEXTFILE,                    "WID_NS_NEWGRF_TEXTFILE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_SET_PARAMETERS,                     "WID_NS_SET_PARAMETERS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_TOGGLE_PALETTE,                     "WID_NS_TOGGLE_PALETTE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_APPLY_CHANGES,                      "WID_NS_APPLY_CHANGES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_RESCAN_FILES,                       "WID_NS_RESCAN_FILES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_RESCAN_FILES2,                      "WID_NS_RESCAN_FILES2");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_CONTENT_DOWNLOAD,                   "WID_NS_CONTENT_DOWNLOAD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_CONTENT_DOWNLOAD2,                  "WID_NS_CONTENT_DOWNLOAD2");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_SHOW_REMOVE,                        "WID_NS_SHOW_REMOVE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_SHOW_APPLY,                         "WID_NS_SHOW_APPLY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SP_PROGRESS_BAR,                       "WID_SP_PROGRESS_BAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SP_PROGRESS_TEXT,                      "WID_SP_PROGRESS_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_PANEL,                               "WID_N_PANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_TITLE,                               "WID_N_TITLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_HEADLINE,                            "WID_N_HEADLINE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_CLOSEBOX,                            "WID_N_CLOSEBOX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_DATE,                                "WID_N_DATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_CAPTION,                             "WID_N_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_INSET,                               "WID_N_INSET");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_VIEWPORT,                            "WID_N_VIEWPORT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_COMPANY_MSG,                         "WID_N_COMPANY_MSG");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_MESSAGE,                             "WID_N_MESSAGE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_MGR_FACE,                            "WID_N_MGR_FACE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_MGR_NAME,                            "WID_N_MGR_NAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_VEH_TITLE,                           "WID_N_VEH_TITLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_VEH_BKGND,                           "WID_N_VEH_BKGND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_VEH_NAME,                            "WID_N_VEH_NAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_VEH_SPR,                             "WID_N_VEH_SPR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_VEH_INFO,                            "WID_N_VEH_INFO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MH_STICKYBOX,                          "WID_MH_STICKYBOX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MH_BACKGROUND,                         "WID_MH_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MH_SCROLLBAR,                          "WID_MH_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MO_BACKGROUND,                         "WID_MO_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MO_LABEL,                              "WID_MO_LABEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MO_DROP_SUMMARY,                       "WID_MO_DROP_SUMMARY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MO_LABEL_SUMMARY,                      "WID_MO_LABEL_SUMMARY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MO_SOUNDTICKER,                        "WID_MO_SOUNDTICKER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MO_SOUNDTICKER_LABEL,                  "WID_MO_SOUNDTICKER_LABEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MO_START_OPTION,                       "WID_MO_START_OPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_MO_END_OPTION,                         "WID_MO_END_OPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BO_CLASS_LIST,                         "WID_BO_CLASS_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BO_SCROLLBAR,                          "WID_BO_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BO_OBJECT_MATRIX,                      "WID_BO_OBJECT_MATRIX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BO_OBJECT_SPRITE,                      "WID_BO_OBJECT_SPRITE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BO_OBJECT_SIZE,                        "WID_BO_OBJECT_SIZE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BO_INFO,                               "WID_BO_INFO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BO_SELECT_MATRIX,                      "WID_BO_SELECT_MATRIX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BO_SELECT_IMAGE,                       "WID_BO_SELECT_IMAGE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BO_SELECT_SCROLL,                      "WID_BO_SELECT_SCROLL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_CAPTION,                             "WID_O_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_TIMETABLE_VIEW,                      "WID_O_TIMETABLE_VIEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_ORDER_LIST,                          "WID_O_ORDER_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_SCROLLBAR,                           "WID_O_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_SKIP,                                "WID_O_SKIP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_DELETE,                              "WID_O_DELETE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_STOP_SHARING,                        "WID_O_STOP_SHARING");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_NON_STOP,                            "WID_O_NON_STOP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_GOTO,                                "WID_O_GOTO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_FULL_LOAD,                           "WID_O_FULL_LOAD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_UNLOAD,                              "WID_O_UNLOAD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_REFIT,                               "WID_O_REFIT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_SERVICE,                             "WID_O_SERVICE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_EMPTY,                               "WID_O_EMPTY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_REFIT_DROPDOWN,                      "WID_O_REFIT_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_COND_VARIABLE,                       "WID_O_COND_VARIABLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_COND_COMPARATOR,                     "WID_O_COND_COMPARATOR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_COND_VALUE,                          "WID_O_COND_VALUE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_SEL_TOP_LEFT,                        "WID_O_SEL_TOP_LEFT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_SEL_TOP_MIDDLE,                      "WID_O_SEL_TOP_MIDDLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_SEL_TOP_RIGHT,                       "WID_O_SEL_TOP_RIGHT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_SEL_TOP_ROW_GROUNDVEHICLE,           "WID_O_SEL_TOP_ROW_GROUNDVEHICLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_SEL_TOP_ROW,                         "WID_O_SEL_TOP_ROW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_SEL_BOTTOM_MIDDLE,                   "WID_O_SEL_BOTTOM_MIDDLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_O_SHARED_ORDER_LIST,                   "WID_O_SHARED_ORDER_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_CAPTION,                           "WID_OSK_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_TEXT,                              "WID_OSK_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_CANCEL,                            "WID_OSK_CANCEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_OK,                                "WID_OSK_OK");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_BACKSPACE,                         "WID_OSK_BACKSPACE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_SPECIAL,                           "WID_OSK_SPECIAL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_CAPS,                              "WID_OSK_CAPS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_SHIFT,                             "WID_OSK_SHIFT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_SPACE,                             "WID_OSK_SPACE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_LEFT,                              "WID_OSK_LEFT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_RIGHT,                             "WID_OSK_RIGHT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_LETTERS,                           "WID_OSK_LETTERS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_NUMBERS_FIRST,                     "WID_OSK_NUMBERS_FIRST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_NUMBERS_LAST,                      "WID_OSK_NUMBERS_LAST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_QWERTY_FIRST,                      "WID_OSK_QWERTY_FIRST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_QWERTY_LAST,                       "WID_OSK_QWERTY_LAST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_ASDFG_FIRST,                       "WID_OSK_ASDFG_FIRST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_ASDFG_LAST,                        "WID_OSK_ASDFG_LAST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_ZXCVB_FIRST,                       "WID_OSK_ZXCVB_FIRST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_OSK_ZXCVB_LAST,                        "WID_OSK_ZXCVB_LAST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_CAPTION,                           "WID_RAT_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_BUILD_NS,                          "WID_RAT_BUILD_NS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_BUILD_X,                           "WID_RAT_BUILD_X");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_BUILD_EW,                          "WID_RAT_BUILD_EW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_BUILD_Y,                           "WID_RAT_BUILD_Y");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_AUTORAIL,                          "WID_RAT_AUTORAIL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_DEMOLISH,                          "WID_RAT_DEMOLISH");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_BUILD_DEPOT,                       "WID_RAT_BUILD_DEPOT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_BUILD_WAYPOINT,                    "WID_RAT_BUILD_WAYPOINT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_BUILD_STATION,                     "WID_RAT_BUILD_STATION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_BUILD_SIGNALS,                     "WID_RAT_BUILD_SIGNALS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_BUILD_BRIDGE,                      "WID_RAT_BUILD_BRIDGE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_BUILD_TUNNEL,                      "WID_RAT_BUILD_TUNNEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_REMOVE,                            "WID_RAT_REMOVE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_CONVERT_RAIL,                      "WID_RAT_CONVERT_RAIL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_DIR_X,                   "WID_BRAS_PLATFORM_DIR_X");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_DIR_Y,                   "WID_BRAS_PLATFORM_DIR_Y");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_NUM_1,                   "WID_BRAS_PLATFORM_NUM_1");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_NUM_2,                   "WID_BRAS_PLATFORM_NUM_2");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_NUM_3,                   "WID_BRAS_PLATFORM_NUM_3");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_NUM_4,                   "WID_BRAS_PLATFORM_NUM_4");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_NUM_5,                   "WID_BRAS_PLATFORM_NUM_5");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_NUM_6,                   "WID_BRAS_PLATFORM_NUM_6");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_NUM_7,                   "WID_BRAS_PLATFORM_NUM_7");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_LEN_1,                   "WID_BRAS_PLATFORM_LEN_1");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_LEN_2,                   "WID_BRAS_PLATFORM_LEN_2");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_LEN_3,                   "WID_BRAS_PLATFORM_LEN_3");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_LEN_4,                   "WID_BRAS_PLATFORM_LEN_4");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_LEN_5,                   "WID_BRAS_PLATFORM_LEN_5");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_LEN_6,                   "WID_BRAS_PLATFORM_LEN_6");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_LEN_7,                   "WID_BRAS_PLATFORM_LEN_7");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_DRAG_N_DROP,             "WID_BRAS_PLATFORM_DRAG_N_DROP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_HIGHLIGHT_OFF,                    "WID_BRAS_HIGHLIGHT_OFF");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_HIGHLIGHT_ON,                     "WID_BRAS_HIGHLIGHT_ON");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_COVERAGE_TEXTS,                   "WID_BRAS_COVERAGE_TEXTS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_MATRIX,                           "WID_BRAS_MATRIX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_IMAGE,                            "WID_BRAS_IMAGE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_MATRIX_SCROLL,                    "WID_BRAS_MATRIX_SCROLL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_SHOW_NEWST_ADDITIONS,             "WID_BRAS_SHOW_NEWST_ADDITIONS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_SHOW_NEWST_MATRIX,                "WID_BRAS_SHOW_NEWST_MATRIX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_SHOW_NEWST_RESIZE,                "WID_BRAS_SHOW_NEWST_RESIZE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_SHOW_NEWST_TYPE,                  "WID_BRAS_SHOW_NEWST_TYPE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_NEWST_LIST,                       "WID_BRAS_NEWST_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_NEWST_SCROLL,                     "WID_BRAS_NEWST_SCROLL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_NUM_BEGIN,               "WID_BRAS_PLATFORM_NUM_BEGIN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAS_PLATFORM_LEN_BEGIN,               "WID_BRAS_PLATFORM_LEN_BEGIN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BS_SEMAPHORE_NORM,                     "WID_BS_SEMAPHORE_NORM");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BS_SEMAPHORE_ENTRY,                    "WID_BS_SEMAPHORE_ENTRY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BS_SEMAPHORE_EXIT,                     "WID_BS_SEMAPHORE_EXIT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BS_SEMAPHORE_COMBO,                    "WID_BS_SEMAPHORE_COMBO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BS_SEMAPHORE_PBS,                      "WID_BS_SEMAPHORE_PBS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BS_SEMAPHORE_PBS_OWAY,                 "WID_BS_SEMAPHORE_PBS_OWAY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BS_ELECTRIC_NORM,                      "WID_BS_ELECTRIC_NORM");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BS_ELECTRIC_ENTRY,                     "WID_BS_ELECTRIC_ENTRY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BS_ELECTRIC_EXIT,                      "WID_BS_ELECTRIC_EXIT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BS_ELECTRIC_COMBO,                     "WID_BS_ELECTRIC_COMBO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BS_ELECTRIC_PBS,                       "WID_BS_ELECTRIC_PBS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BS_ELECTRIC_PBS_OWAY,                  "WID_BS_ELECTRIC_PBS_OWAY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BS_CONVERT,                            "WID_BS_CONVERT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BS_DRAG_SIGNALS_DENSITY_LABEL,         "WID_BS_DRAG_SIGNALS_DENSITY_LABEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BS_DRAG_SIGNALS_DENSITY_DECREASE,      "WID_BS_DRAG_SIGNALS_DENSITY_DECREASE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BS_DRAG_SIGNALS_DENSITY_INCREASE,      "WID_BS_DRAG_SIGNALS_DENSITY_INCREASE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAD_DEPOT_NE,                         "WID_BRAD_DEPOT_NE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAD_DEPOT_SE,                         "WID_BRAD_DEPOT_SE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAD_DEPOT_SW,                         "WID_BRAD_DEPOT_SW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRAD_DEPOT_NW,                         "WID_BRAD_DEPOT_NW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRW_WAYPOINT_MATRIX,                   "WID_BRW_WAYPOINT_MATRIX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRW_WAYPOINT,                          "WID_BRW_WAYPOINT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BRW_SCROLL,                            "WID_BRW_SCROLL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ROT_ROAD_X,                            "WID_ROT_ROAD_X");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ROT_ROAD_Y,                            "WID_ROT_ROAD_Y");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ROT_AUTOROAD,                          "WID_ROT_AUTOROAD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ROT_DEMOLISH,                          "WID_ROT_DEMOLISH");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ROT_DEPOT,                             "WID_ROT_DEPOT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ROT_BUS_STATION,                       "WID_ROT_BUS_STATION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ROT_TRUCK_STATION,                     "WID_ROT_TRUCK_STATION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ROT_ONE_WAY,                           "WID_ROT_ONE_WAY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ROT_BUILD_BRIDGE,                      "WID_ROT_BUILD_BRIDGE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ROT_BUILD_TUNNEL,                      "WID_ROT_BUILD_TUNNEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ROT_REMOVE,                            "WID_ROT_REMOVE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BROD_CAPTION,                          "WID_BROD_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BROD_DEPOT_NE,                         "WID_BROD_DEPOT_NE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BROD_DEPOT_SE,                         "WID_BROD_DEPOT_SE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BROD_DEPOT_SW,                         "WID_BROD_DEPOT_SW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BROD_DEPOT_NW,                         "WID_BROD_DEPOT_NW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BROS_CAPTION,                          "WID_BROS_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BROS_BACKGROUND,                       "WID_BROS_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BROS_STATION_NE,                       "WID_BROS_STATION_NE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BROS_STATION_SE,                       "WID_BROS_STATION_SE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BROS_STATION_SW,                       "WID_BROS_STATION_SW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BROS_STATION_NW,                       "WID_BROS_STATION_NW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BROS_STATION_X,                        "WID_BROS_STATION_X");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BROS_STATION_Y,                        "WID_BROS_STATION_Y");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BROS_LT_OFF,                           "WID_BROS_LT_OFF");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BROS_LT_ON,                            "WID_BROS_LT_ON");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BROS_INFO,                             "WID_BROS_INFO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BACKGROUND,                         "WID_GO_BACKGROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_CURRENCY_DROPDOWN,                  "WID_GO_CURRENCY_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_DISTANCE_DROPDOWN,                  "WID_GO_DISTANCE_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_ROADSIDE_DROPDOWN,                  "WID_GO_ROADSIDE_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_TOWNNAME_DROPDOWN,                  "WID_GO_TOWNNAME_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_AUTOSAVE_DROPDOWN,                  "WID_GO_AUTOSAVE_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_LANG_DROPDOWN,                      "WID_GO_LANG_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_RESOLUTION_DROPDOWN,                "WID_GO_RESOLUTION_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_FULLSCREEN_BUTTON,                  "WID_GO_FULLSCREEN_BUTTON");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_SCREENSHOT_DROPDOWN,                "WID_GO_SCREENSHOT_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_GRF_DROPDOWN,                  "WID_GO_BASE_GRF_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_GRF_STATUS,                    "WID_GO_BASE_GRF_STATUS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_GRF_DESCRIPTION,               "WID_GO_BASE_GRF_DESCRIPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_SFX_DROPDOWN,                  "WID_GO_BASE_SFX_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_SFX_DESCRIPTION,               "WID_GO_BASE_SFX_DESCRIPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_MUSIC_DROPDOWN,                "WID_GO_BASE_MUSIC_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_MUSIC_STATUS,                  "WID_GO_BASE_MUSIC_STATUS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_MUSIC_DESCRIPTION,             "WID_GO_BASE_MUSIC_DESCRIPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GD_LVL_EASY,                           "WID_GD_LVL_EASY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GD_LVL_MEDIUM,                         "WID_GD_LVL_MEDIUM");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GD_LVL_HARD,                           "WID_GD_LVL_HARD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GD_LVL_CUSTOM,                         "WID_GD_LVL_CUSTOM");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GD_HIGHSCORE,                          "WID_GD_HIGHSCORE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GD_ACCEPT,                             "WID_GD_ACCEPT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GD_CANCEL,                             "WID_GD_CANCEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GD_OPTIONS_START,                      "WID_GD_OPTIONS_START");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GS_OPTIONSPANEL,                       "WID_GS_OPTIONSPANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GS_SCROLLBAR,                          "WID_GS_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CC_RATE_DOWN,                          "WID_CC_RATE_DOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CC_RATE_UP,                            "WID_CC_RATE_UP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CC_RATE,                               "WID_CC_RATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CC_SEPARATOR_EDIT,                     "WID_CC_SEPARATOR_EDIT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CC_SEPARATOR,                          "WID_CC_SEPARATOR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CC_PREFIX_EDIT,                        "WID_CC_PREFIX_EDIT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CC_PREFIX,                             "WID_CC_PREFIX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CC_SUFFIX_EDIT,                        "WID_CC_SUFFIX_EDIT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CC_SUFFIX,                             "WID_CC_SUFFIX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CC_YEAR_DOWN,                          "WID_CC_YEAR_DOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CC_YEAR_UP,                            "WID_CC_YEAR_UP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CC_YEAR,                               "WID_CC_YEAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_CC_PREVIEW,                            "WID_CC_PREVIEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SIL_CAPTION,                           "WID_SIL_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SIL_LIST,                              "WID_SIL_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SIL_SCROLLBAR,                         "WID_SIL_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SIL_FILTER_TEXT,                       "WID_SIL_FILTER_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SIL_FILTER_MATCH_CASE_BTN,             "WID_SIL_FILTER_MATCH_CASE_BTN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SIL_FILTER_CLEAR_BTN,                  "WID_SIL_FILTER_CLEAR_BTN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_QES_CAPTION,                           "WID_QES_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_QES_TEXT,                              "WID_QES_TEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_QES_OK,                                "WID_QES_OK");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_QES_CANCEL,                            "WID_QES_CANCEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_QES_DELETE,                            "WID_QES_DELETE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_QES_PREVIOUS,                          "WID_QES_PREVIOUS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_QES_NEXT,                              "WID_QES_NEXT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_CAPTION,                            "WID_SM_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_MAP_BORDER,                         "WID_SM_MAP_BORDER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_MAP,                                "WID_SM_MAP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_LEGEND,                             "WID_SM_LEGEND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_ZOOM_IN,                            "WID_SM_ZOOM_IN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_ZOOM_OUT,                           "WID_SM_ZOOM_OUT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_CONTOUR,                            "WID_SM_CONTOUR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_VEHICLES,                           "WID_SM_VEHICLES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_INDUSTRIES,                         "WID_SM_INDUSTRIES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_ROUTES,                             "WID_SM_ROUTES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_VEGETATION,                         "WID_SM_VEGETATION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_OWNERS,                             "WID_SM_OWNERS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_CENTERMAP,                          "WID_SM_CENTERMAP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_TOGGLETOWNNAME,                     "WID_SM_TOGGLETOWNNAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_SELECT_BUTTONS,                     "WID_SM_SELECT_BUTTONS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_ENABLE_ALL,                         "WID_SM_ENABLE_ALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_DISABLE_ALL,                        "WID_SM_DISABLE_ALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SM_SHOW_HEIGHT,                        "WID_SM_SHOW_HEIGHT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SV_CAPTION,                            "WID_SV_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SV_WAITING,                            "WID_SV_WAITING");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SV_SCROLLBAR,                          "WID_SV_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SV_ACCEPT_RATING_LIST,                 "WID_SV_ACCEPT_RATING_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SV_LOCATION,                           "WID_SV_LOCATION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SV_ACCEPTS_RATINGS,                    "WID_SV_ACCEPTS_RATINGS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SV_RENAME,                             "WID_SV_RENAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SV_TRAINS,                             "WID_SV_TRAINS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SV_ROADVEHS,                           "WID_SV_ROADVEHS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SV_SHIPS,                              "WID_SV_SHIPS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SV_PLANES,                             "WID_SV_PLANES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_STL_CAPTION,                           "WID_STL_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_STL_LIST,                              "WID_STL_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_STL_SCROLLBAR,                         "WID_STL_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_STL_TRAIN,                             "WID_STL_TRAIN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_STL_TRUCK,                             "WID_STL_TRUCK");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_STL_BUS,                               "WID_STL_BUS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_STL_AIRPLANE,                          "WID_STL_AIRPLANE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_STL_SHIP,                              "WID_STL_SHIP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_STL_FACILALL,                          "WID_STL_FACILALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_STL_NOCARGOWAITING,                    "WID_STL_NOCARGOWAITING");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_STL_CARGOALL,                          "WID_STL_CARGOALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_STL_SORTBY,                            "WID_STL_SORTBY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_STL_SORTDROPBTN,                       "WID_STL_SORTDROPBTN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_STL_CARGOSTART,                        "WID_STL_CARGOSTART");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_JS_CAPTION,                            "WID_JS_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_JS_PANEL,                              "WID_JS_PANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_JS_SCROLLBAR,                          "WID_JS_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_S_LEFT,                                "WID_S_LEFT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_S_MIDDLE,                              "WID_S_MIDDLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_S_RIGHT,                               "WID_S_RIGHT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SUL_PANEL,                             "WID_SUL_PANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SUL_SCROLLBAR,                         "WID_SUL_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_SHOW_PLACE_OBJECT,                  "WID_TT_SHOW_PLACE_OBJECT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_BUTTONS_START,                      "WID_TT_BUTTONS_START");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_LOWER_LAND,                         "WID_TT_LOWER_LAND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_RAISE_LAND,                         "WID_TT_RAISE_LAND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_LEVEL_LAND,                         "WID_TT_LEVEL_LAND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_DEMOLISH,                           "WID_TT_DEMOLISH");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_BUY_LAND,                           "WID_TT_BUY_LAND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_PLANT_TREES,                        "WID_TT_PLANT_TREES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_PLACE_SIGN,                         "WID_TT_PLACE_SIGN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_PLACE_OBJECT,                       "WID_TT_PLACE_OBJECT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ETT_SHOW_PLACE_DESERT,                 "WID_ETT_SHOW_PLACE_DESERT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ETT_START,                             "WID_ETT_START");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ETT_DOTS,                              "WID_ETT_DOTS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ETT_BUTTONS_START,                     "WID_ETT_BUTTONS_START");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ETT_DEMOLISH,                          "WID_ETT_DEMOLISH");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ETT_LOWER_LAND,                        "WID_ETT_LOWER_LAND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ETT_RAISE_LAND,                        "WID_ETT_RAISE_LAND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ETT_LEVEL_LAND,                        "WID_ETT_LEVEL_LAND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ETT_PLACE_ROCKS,                       "WID_ETT_PLACE_ROCKS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ETT_PLACE_DESERT,                      "WID_ETT_PLACE_DESERT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ETT_PLACE_OBJECT,                      "WID_ETT_PLACE_OBJECT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ETT_BUTTONS_END,                       "WID_ETT_BUTTONS_END");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ETT_INCREASE_SIZE,                     "WID_ETT_INCREASE_SIZE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ETT_DECREASE_SIZE,                     "WID_ETT_DECREASE_SIZE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ETT_NEW_SCENARIO,                      "WID_ETT_NEW_SCENARIO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_ETT_RESET_LANDSCAPE,                   "WID_ETT_RESET_LANDSCAPE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VT_CAPTION,                            "WID_VT_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VT_ORDER_VIEW,                         "WID_VT_ORDER_VIEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VT_TIMETABLE_PANEL,                    "WID_VT_TIMETABLE_PANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VT_ARRIVAL_DEPARTURE_PANEL,            "WID_VT_ARRIVAL_DEPARTURE_PANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VT_SCROLLBAR,                          "WID_VT_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VT_SUMMARY_PANEL,                      "WID_VT_SUMMARY_PANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VT_START_DATE,                         "WID_VT_START_DATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VT_CHANGE_TIME,                        "WID_VT_CHANGE_TIME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VT_CLEAR_TIME,                         "WID_VT_CLEAR_TIME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VT_RESET_LATENESS,                     "WID_VT_RESET_LATENESS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VT_AUTOFILL,                           "WID_VT_AUTOFILL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VT_EXPECTED,                           "WID_VT_EXPECTED");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VT_SHARED_ORDER_LIST,                  "WID_VT_SHARED_ORDER_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VT_ARRIVAL_DEPARTURE_SELECTION,        "WID_VT_ARRIVAL_DEPARTURE_SELECTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VT_EXPECTED_SELECTION,                 "WID_VT_EXPECTED_SELECTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_PAUSE,                              "WID_TN_PAUSE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_FAST_FORWARD,                       "WID_TN_FAST_FORWARD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_SETTINGS,                           "WID_TN_SETTINGS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_SAVE,                               "WID_TN_SAVE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_SMALL_MAP,                          "WID_TN_SMALL_MAP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_TOWNS,                              "WID_TN_TOWNS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_SUBSIDIES,                          "WID_TN_SUBSIDIES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_STATIONS,                           "WID_TN_STATIONS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_FINANCES,                           "WID_TN_FINANCES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_COMPANIES,                          "WID_TN_COMPANIES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_GRAPHS,                             "WID_TN_GRAPHS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_LEAGUE,                             "WID_TN_LEAGUE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_INDUSTRIES,                         "WID_TN_INDUSTRIES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_VEHICLE_START,                      "WID_TN_VEHICLE_START");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_TRAINS,                             "WID_TN_TRAINS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_ROADVEHS,                           "WID_TN_ROADVEHS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_SHIPS,                              "WID_TN_SHIPS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_AIRCRAFTS,                          "WID_TN_AIRCRAFTS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_ZOOM_IN,                            "WID_TN_ZOOM_IN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_ZOOM_OUT,                           "WID_TN_ZOOM_OUT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_RAILS,                              "WID_TN_RAILS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_ROADS,                              "WID_TN_ROADS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_WATER,                              "WID_TN_WATER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_AIR,                                "WID_TN_AIR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_LANDSCAPE,                          "WID_TN_LANDSCAPE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_MUSIC_SOUND,                        "WID_TN_MUSIC_SOUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_MESSAGES,                           "WID_TN_MESSAGES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_HELP,                               "WID_TN_HELP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_SWITCH_BAR,                         "WID_TN_SWITCH_BAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TN_END,                                "WID_TN_END");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_PAUSE,                              "WID_TE_PAUSE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_FAST_FORWARD,                       "WID_TE_FAST_FORWARD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_SETTINGS,                           "WID_TE_SETTINGS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_SAVE,                               "WID_TE_SAVE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_SPACER,                             "WID_TE_SPACER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_DATE,                               "WID_TE_DATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_DATE_BACKWARD,                      "WID_TE_DATE_BACKWARD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_DATE_FORWARD,                       "WID_TE_DATE_FORWARD");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_SMALL_MAP,                          "WID_TE_SMALL_MAP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_ZOOM_IN,                            "WID_TE_ZOOM_IN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_ZOOM_OUT,                           "WID_TE_ZOOM_OUT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_LAND_GENERATE,                      "WID_TE_LAND_GENERATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_TOWN_GENERATE,                      "WID_TE_TOWN_GENERATE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_INDUSTRY,                           "WID_TE_INDUSTRY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_ROADS,                              "WID_TE_ROADS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_WATER,                              "WID_TE_WATER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_TREES,                              "WID_TE_TREES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_SIGNS,                              "WID_TE_SIGNS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_DATE_PANEL,                         "WID_TE_DATE_PANEL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_MUSIC_SOUND,                        "WID_TE_MUSIC_SOUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_HELP,                               "WID_TE_HELP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TE_SWITCH_BAR,                         "WID_TE_SWITCH_BAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TD_SORT_NAME,                          "WID_TD_SORT_NAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TD_SORT_POPULATION,                    "WID_TD_SORT_POPULATION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TD_LIST,                               "WID_TD_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TD_SCROLLBAR,                          "WID_TD_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TD_WORLD_POPULATION,                   "WID_TD_WORLD_POPULATION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TA_CAPTION,                            "WID_TA_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TA_RATING_INFO,                        "WID_TA_RATING_INFO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TA_COMMAND_LIST,                       "WID_TA_COMMAND_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TA_SCROLLBAR,                          "WID_TA_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TA_ACTION_INFO,                        "WID_TA_ACTION_INFO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TA_EXECUTE,                            "WID_TA_EXECUTE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TV_CAPTION,                            "WID_TV_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TV_VIEWPORT,                           "WID_TV_VIEWPORT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TV_INFO,                               "WID_TV_INFO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TV_CENTER_VIEW,                        "WID_TV_CENTER_VIEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TV_SHOW_AUTHORITY,                     "WID_TV_SHOW_AUTHORITY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TV_CHANGE_NAME,                        "WID_TV_CHANGE_NAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TV_EXPAND,                             "WID_TV_EXPAND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TV_DELETE,                             "WID_TV_DELETE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TF_NEW_TOWN,                           "WID_TF_NEW_TOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TF_RANDOM_TOWN,                        "WID_TF_RANDOM_TOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TF_MANY_RANDOM_TOWNS,                  "WID_TF_MANY_RANDOM_TOWNS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TF_TOWN_NAME_EDITBOX,                  "WID_TF_TOWN_NAME_EDITBOX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TF_TOWN_NAME_RANDOM,                   "WID_TF_TOWN_NAME_RANDOM");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TF_SIZE_SMALL,                         "WID_TF_SIZE_SMALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TF_SIZE_MEDIUM,                        "WID_TF_SIZE_MEDIUM");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TF_SIZE_LARGE,                         "WID_TF_SIZE_LARGE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TF_SIZE_RANDOM,                        "WID_TF_SIZE_RANDOM");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TF_CITY,                               "WID_TF_CITY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TF_LAYOUT_ORIGINAL,                    "WID_TF_LAYOUT_ORIGINAL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TF_LAYOUT_BETTER,                      "WID_TF_LAYOUT_BETTER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TF_LAYOUT_GRID2,                       "WID_TF_LAYOUT_GRID2");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TF_LAYOUT_GRID3,                       "WID_TF_LAYOUT_GRID3");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TF_LAYOUT_RANDOM,                      "WID_TF_LAYOUT_RANDOM");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_BEGIN,                              "WID_TT_BEGIN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_SIGNS,                              "WID_TT_SIGNS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_TREES,                              "WID_TT_TREES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_HOUSES,                             "WID_TT_HOUSES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_INDUSTRIES,                         "WID_TT_INDUSTRIES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_BUILDINGS,                          "WID_TT_BUILDINGS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_BRIDGES,                            "WID_TT_BRIDGES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_STRUCTURES,                         "WID_TT_STRUCTURES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_CATENARY,                           "WID_TT_CATENARY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_LOADING,                            "WID_TT_LOADING");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_END,                                "WID_TT_END");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_BUTTONS,                            "WID_TT_BUTTONS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BT_TYPE_11,                            "WID_BT_TYPE_11");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BT_TYPE_12,                            "WID_BT_TYPE_12");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BT_TYPE_13,                            "WID_BT_TYPE_13");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BT_TYPE_14,                            "WID_BT_TYPE_14");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BT_TYPE_21,                            "WID_BT_TYPE_21");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BT_TYPE_22,                            "WID_BT_TYPE_22");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BT_TYPE_23,                            "WID_BT_TYPE_23");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BT_TYPE_24,                            "WID_BT_TYPE_24");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BT_TYPE_31,                            "WID_BT_TYPE_31");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BT_TYPE_32,                            "WID_BT_TYPE_32");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BT_TYPE_33,                            "WID_BT_TYPE_33");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BT_TYPE_34,                            "WID_BT_TYPE_34");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BT_TYPE_RANDOM,                        "WID_BT_TYPE_RANDOM");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_BT_MANY_RANDOM,                        "WID_BT_MANY_RANDOM");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VV_CAPTION,                            "WID_VV_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VV_VIEWPORT,                           "WID_VV_VIEWPORT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VV_START_STOP,                         "WID_VV_START_STOP");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VV_CENTER_MAIN_VIEW,                   "WID_VV_CENTER_MAIN_VIEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VV_GOTO_DEPOT,                         "WID_VV_GOTO_DEPOT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VV_REFIT,                              "WID_VV_REFIT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VV_SHOW_ORDERS,                        "WID_VV_SHOW_ORDERS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VV_SHOW_DETAILS,                       "WID_VV_SHOW_DETAILS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VV_CLONE,                              "WID_VV_CLONE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VV_SELECT_DEPOT_CLONE,                 "WID_VV_SELECT_DEPOT_CLONE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VV_SELECT_REFIT_TURN,                  "WID_VV_SELECT_REFIT_TURN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VV_TURN_AROUND,                        "WID_VV_TURN_AROUND");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VV_FORCE_PROCEED,                      "WID_VV_FORCE_PROCEED");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VR_CAPTION,                            "WID_VR_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VR_VEHICLE_PANEL_DISPLAY,              "WID_VR_VEHICLE_PANEL_DISPLAY");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VR_SHOW_HSCROLLBAR,                    "WID_VR_SHOW_HSCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VR_HSCROLLBAR,                         "WID_VR_HSCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VR_SELECT_HEADER,                      "WID_VR_SELECT_HEADER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VR_MATRIX,                             "WID_VR_MATRIX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VR_SCROLLBAR,                          "WID_VR_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VR_INFO,                               "WID_VR_INFO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VR_REFIT,                              "WID_VR_REFIT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VD_CAPTION,                            "WID_VD_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VD_RENAME_VEHICLE,                     "WID_VD_RENAME_VEHICLE");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VD_TOP_DETAILS,                        "WID_VD_TOP_DETAILS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VD_INCREASE_SERVICING_INTERVAL,        "WID_VD_INCREASE_SERVICING_INTERVAL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VD_DECREASE_SERVICING_INTERVAL,        "WID_VD_DECREASE_SERVICING_INTERVAL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VD_SERVICING_INTERVAL,                 "WID_VD_SERVICING_INTERVAL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VD_MIDDLE_DETAILS,                     "WID_VD_MIDDLE_DETAILS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VD_MATRIX,                             "WID_VD_MATRIX");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VD_SCROLLBAR,                          "WID_VD_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VD_DETAILS_CARGO_CARRIED,              "WID_VD_DETAILS_CARGO_CARRIED");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VD_DETAILS_TRAIN_VEHICLES,             "WID_VD_DETAILS_TRAIN_VEHICLES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VD_DETAILS_CAPACITY_OF_EACH,           "WID_VD_DETAILS_CAPACITY_OF_EACH");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VD_DETAILS_TOTAL_CARGO,                "WID_VD_DETAILS_TOTAL_CARGO");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VL_CAPTION,                            "WID_VL_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VL_SORT_ORDER,                         "WID_VL_SORT_ORDER");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VL_SORT_BY_PULLDOWN,                   "WID_VL_SORT_BY_PULLDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VL_LIST,                               "WID_VL_LIST");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VL_SCROLLBAR,                          "WID_VL_SCROLLBAR");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VL_HIDE_BUTTONS,                       "WID_VL_HIDE_BUTTONS");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VL_AVAILABLE_VEHICLES,                 "WID_VL_AVAILABLE_VEHICLES");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VL_MANAGE_VEHICLES_DROPDOWN,           "WID_VL_MANAGE_VEHICLES_DROPDOWN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VL_STOP_ALL,                           "WID_VL_STOP_ALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_VL_START_ALL,                          "WID_VL_START_ALL");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_EV_CAPTION,                            "WID_EV_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_EV_VIEWPORT,                           "WID_EV_VIEWPORT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_EV_ZOOM_IN,                            "WID_EV_ZOOM_IN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_EV_ZOOM_OUT,                           "WID_EV_ZOOM_OUT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_EV_MAIN_TO_VIEW,                       "WID_EV_MAIN_TO_VIEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_EV_VIEW_TO_MAIN,                       "WID_EV_VIEW_TO_MAIN");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_W_CAPTION,                             "WID_W_CAPTION");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_W_VIEWPORT,                            "WID_W_VIEWPORT");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_W_CENTER_VIEW,                         "WID_W_CENTER_VIEW");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_W_RENAME,                              "WID_W_RENAME");
+	SQGSWindow.DefSQConst(engine, ScriptWindow::WID_W_SHOW_VEHICLES,                       "WID_W_SHOW_VEHICLES");
+
+	SQGSWindow.DefSQStaticMethod(engine, &ScriptWindow::Close,     "Close",     3, ".ii");
+	SQGSWindow.DefSQStaticMethod(engine, &ScriptWindow::IsOpen,    "IsOpen",    3, ".ii");
+	SQGSWindow.DefSQStaticMethod(engine, &ScriptWindow::Highlight, "Highlight", 5, ".iiii");
+
+	SQGSWindow.PostRegister(engine);
+}
--- a/src/script/api/script_event.hpp
+++ b/src/script/api/script_event.hpp
@@ -51,6 +51,7 @@
 		ET_TOWN_FOUNDED,
 		ET_AIRCRAFT_DEST_TOO_FAR,
 		ET_ADMIN_PORT,
+		ET_WINDOW_WIDGET_CLICK,
 	};
 
 	/**
--- a/src/script/api/script_event_types.hpp
+++ b/src/script/api/script_event_types.hpp
@@ -14,6 +14,7 @@
 
 #include "script_event.hpp"
 #include "script_company.hpp"
+#include "script_window.hpp"
 
 /**
  * Event Vehicle Crash, indicating a vehicle of yours is crashed.
@@ -885,4 +886,50 @@
 	char *ReadString(HSQUIRRELVM vm, char *p);
 };
 
+/**
+ * Event Window Widget Click, when a user clicks on a highlighted widget.
+ * @api game
+ */
+class ScriptEventWindowWidgetClick : public ScriptEvent {
+public:
+	/**
+	 * @param window The windowclass that was clicked.
+	 * @param number The windownumber that was clicked.
+	 * @param widget The widget in the window that was clicked.
+	 */
+	ScriptEventWindowWidgetClick(ScriptWindow::WindowClass window, uint32 number, uint8 widget) :
+		ScriptEvent(ET_WINDOW_WIDGET_CLICK),
+		window(window),
+		number(number),
+		widget(widget)
+	{}
+
+	/**
+	 * Convert an ScriptEvent to the real instance.
+	 * @param instance The instance to convert.
+	 * @return The converted instance.
+	 */
+	static ScriptEventWindowWidgetClick *Convert(ScriptEvent *instance) { return (ScriptEventWindowWidgetClick *)instance; }
+
+	/**
+	 * Get the class of the window that was clicked.
+	 */
+	ScriptWindow::WindowClass GetWindowClass() { return this->window; }
+
+	/**
+	 * Get the number of the window that was clicked.
+	 */
+	uint32 GetWindowNumber() { return this->number; }
+
+	/**
+	 * Get the number of the widget that was clicked.
+	 */
+	uint8 GetWidgetNumber() { return this->widget; }
+
+private:
+	ScriptWindow::WindowClass window; ///< Window of the click.
+	uint32 number;                    ///< Number of the click.
+	uint8 widget;                     ///< Widget of the click.
+};
+
 #endif /* SCRIPT_EVENT_TYPES_HPP */
new file mode 100644
--- /dev/null
+++ b/src/script/api/script_window.cpp
@@ -0,0 +1,59 @@
+/* $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 script_window.cpp Implementation of ScriptWindow. */
+
+#include "../../stdafx.h"
+#include "script_window.hpp"
+#include "script_game.hpp"
+#include "../../window_func.h"
+#include "../../window_gui.h"
+
+/* static */ void ScriptWindow::Close(WindowClass window, uint32 number)
+{
+	if (ScriptGame::IsMultiplayer()) return;
+
+	if (number == NUMBER_ALL) {
+		DeleteWindowByClass((::WindowClass)window);
+		return;
+	}
+
+	DeleteWindowById((::WindowClass)window, number);
+}
+
+/* static */ bool ScriptWindow::IsOpen(WindowClass window, uint32 number)
+{
+	if (ScriptGame::IsMultiplayer()) return false;
+
+	if (number == NUMBER_ALL) {
+		return (FindWindowByClass((::WindowClass)window) != NULL);
+	}
+
+	return FindWindowById((::WindowClass)window, number) != NULL;
+}
+
+/* static */ void ScriptWindow::Highlight(WindowClass window, uint32 number, uint8 widget, TextColour colour)
+{
+	if (ScriptGame::IsMultiplayer()) return;
+	if (number == NUMBER_ALL) return;
+	if (!IsOpen(window, number)) return;
+	if (colour != TC_INVALID && (::TextColour)colour >= ::TC_END) return;
+
+	Window *w = FindWindowById((::WindowClass)window, number);
+
+	if (widget == WIDGET_ALL) {
+		if (colour != TC_INVALID) return;
+		w->DisableAllWidgetHighlight();
+		return;
+	}
+
+	const NWidgetBase *wid = w->GetWidget<NWidgetBase>(widget);
+	if (wid == NULL) return;
+	w->SetWidgetHighlight(widget, (::TextColour)colour);
+}
new file mode 100644
--- /dev/null
+++ b/src/script/api/script_window.hpp
@@ -0,0 +1,2365 @@
+/* $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 script_window.hpp Everything to handle window interaction. */
+
+#ifndef SCRIPT_WINDOW_HPP
+#define SCRIPT_WINDOW_HPP
+
+#include "script_object.hpp"
+#include "../../window_type.h"
+#include "../../gfx_type.h"
+
+#include "../../widgets/ai_widget.h"
+#include "../../widgets/airport_widget.h"
+#include "../../widgets/autoreplace_widget.h"
+#include "../../widgets/bootstrap_widget.h"
+#include "../../widgets/bridge_widget.h"
+#include "../../widgets/build_vehicle_widget.h"
+#include "../../widgets/cheat_widget.h"
+#include "../../widgets/company_widget.h"
+#include "../../widgets/console_widget.h"
+#include "../../widgets/date_widget.h"
+#include "../../widgets/depot_widget.h"
+#include "../../widgets/dock_widget.h"
+#include "../../widgets/dropdown_widget.h"
+#include "../../widgets/engine_widget.h"
+#include "../../widgets/error_widget.h"
+#include "../../widgets/fios_widget.h"
+#include "../../widgets/genworld_widget.h"
+#include "../../widgets/goal_widget.h"
+#include "../../widgets/graph_widget.h"
+#include "../../widgets/group_widget.h"
+#include "../../widgets/highscore_widget.h"
+#include "../../widgets/industry_widget.h"
+#include "../../widgets/intro_widget.h"
+#include "../../widgets/main_widget.h"
+#include "../../widgets/misc_widget.h"
+#include "../../widgets/music_widget.h"
+#include "../../widgets/network_chat_widget.h"
+#include "../../widgets/network_content_widget.h"
+#include "../../widgets/network_widget.h"
+#include "../../widgets/newgrf_debug_widget.h"
+#include "../../widgets/newgrf_widget.h"
+#include "../../widgets/news_widget.h"
+#include "../../widgets/object_widget.h"
+#include "../../widgets/order_widget.h"
+#include "../../widgets/osk_widget.h"
+#include "../../widgets/rail_widget.h"
+#include "../../widgets/road_widget.h"
+#include "../../widgets/settings_widget.h"
+#include "../../widgets/sign_widget.h"
+#include "../../widgets/smallmap_widget.h"
+#include "../../widgets/station_widget.h"
+#include "../../widgets/statusbar_widget.h"
+#include "../../widgets/subsidy_widget.h"
+#include "../../widgets/terraform_widget.h"
+#include "../../widgets/timetable_widget.h"
+#include "../../widgets/toolbar_widget.h"
+#include "../../widgets/town_widget.h"
+#include "../../widgets/transparency_widget.h"
+#include "../../widgets/tree_widget.h"
+#include "../../widgets/vehicle_widget.h"
+#include "../../widgets/viewport_widget.h"
+#include "../../widgets/waypoint_widget.h"
+
+/**
+ * Class that handles window interaction. A Window in OpenTTD has two imporant
+ *  values. The WindowClass, and a Window number. The first indicates roughly
+ *  which window it is. WC_TOWN_VIEW for example, is the view of a town.
+ * The Window number is a bit more complex, as it depends mostly on the
+ *  WindowClass. For example for WC_TOWN_VIEW it is the TownID. In general a
+ *  good rule of thumb is: either the number is always 0, or the ID of the
+ *  object in question.
+ * In the comment at the widget enum, it is mentioned how the number is used.
+ * @api game
+ */
+class ScriptWindow : public ScriptObject {
+public:
+	/**
+	 * Window numbers.
+	 */
+	enum WindowNumberEnum {
+		WN_GAME_OPTIONS_AI                        = ::WN_GAME_OPTIONS_AI,                        ///< AI settings.
+		WN_GAME_OPTIONS_ABOUT                     = ::WN_GAME_OPTIONS_ABOUT,                     ///< About window.
+		WN_GAME_OPTIONS_NEWGRF_STATE              = ::WN_GAME_OPTIONS_NEWGRF_STATE,              ///< NewGRF settings.
+		WN_GAME_OPTIONS_MESSAGE_OPTION            = ::WN_GAME_OPTIONS_MESSAGE_OPTION,            ///< News settings.
+		WN_GAME_OPTIONS_GAME_OPTIONS              = ::WN_GAME_OPTIONS_GAME_OPTIONS,              ///< Game options.
+		WN_GAME_OPTIONS_GAME_DIFFICULTY           = ::WN_GAME_OPTIONS_GAME_DIFFICULTY,           ///< Game difficulty.
+		WN_GAME_OPTIONS_GAME_SETTINGS             = ::WN_GAME_OPTIONS_GAME_SETTINGS,             ///< Game settings.
+		WN_QUERY_STRING                           = ::WN_QUERY_STRING,                           ///< Query string.
+		WN_QUERY_STRING_SIGN                      = ::WN_QUERY_STRING_SIGN,                      ///< Query string for signs.
+		WN_CONFIRM_POPUP_QUERY                    = ::WN_CONFIRM_POPUP_QUERY,                    ///< Query popup confirm.
+		WN_CONFIRM_POPUP_QUERY_BOOTSTRAP          = ::WN_CONFIRM_POPUP_QUERY_BOOTSTRAP,          ///< Query popup confirm for bootstrap.
+		WN_NETWORK_WINDOW_GAME                    = ::WN_NETWORK_WINDOW_GAME,                    ///< Network game window.
+		WN_NETWORK_WINDOW_LOBBY                   = ::WN_NETWORK_WINDOW_LOBBY,                   ///< Network lobby window.
+		WN_NETWORK_WINDOW_CONTENT_LIST            = ::WN_NETWORK_WINDOW_CONTENT_LIST,            ///< Network content list.
+		WN_NETWORK_WINDOW_START                   = ::WN_NETWORK_WINDOW_START,                   ///< Network start server.
+		WN_NETWORK_STATUS_WINDOW_JOIN             = ::WN_NETWORK_STATUS_WINDOW_JOIN,             ///< Network join status.
+		WN_NETWORK_STATUS_WINDOW_CONTENT_DOWNLOAD = ::WN_NETWORK_STATUS_WINDOW_CONTENT_DOWNLOAD, ///< Network content download status.
+	};
+
+	/**
+	 * Window classes.
+	 */
+	enum WindowClass {
+		/**
+		 * Main window; Window numbers:
+		 *   - 0 = #MainWidgets
+		 */
+		WC_MAIN_WINDOW = ::WC_MAIN_WINDOW,
+
+		/**
+		 * Main toolbar (the long bar at the top); Window numbers:
+		 *   - 0 = #ToolbarNormalWidgets
+		 *   - 0 = #ToolbarEditorWidgets
+		 */
+		WC_MAIN_TOOLBAR = ::WC_MAIN_TOOLBAR,
+
+		/**
+		 * Statusbar (at the bottom of your screen); Window numbers:
+		 *   - 0 = #StatusbarWidget
+		 */
+		WC_STATUS_BAR = ::WC_STATUS_BAR,
+
+		/**
+		 * Build toolbar; Window numbers:
+		 *   - #TRANSPORT_RAIL = #RailToolbarWidgets
+		 *   - #TRANSPORT_AIR = #AirportToolbarWidgets
+		 *   - #TRANSPORT_WATER = #DockToolbarWidgets
+		 *   - #TRANSPORT_ROAD = #RoadToolbarWidgets
+		 */
+		WC_BUILD_TOOLBAR = ::WC_BUILD_TOOLBAR,
+
+		/**
+		 * Scenario build toolbar; Window numbers:
+		 *   - #TRANSPORT_WATER = #DockToolbarWidgets
+		 *   - #TRANSPORT_ROAD = #RoadToolbarWidgets
+		 */
+		WC_SCEN_BUILD_TOOLBAR = ::WC_SCEN_BUILD_TOOLBAR,
+
+		/**
+		 * Build trees toolbar; Window numbers:
+		 *   - 0 = #BuildTreesWidgets
+		 */
+		WC_BUILD_TREES = ::WC_BUILD_TREES,
+
+		/**
+		 * Transparency toolbar; Window numbers:
+		 *   - 0 = #TransparencyToolbarWidgets
+		 */
+		WC_TRANSPARENCY_TOOLBAR = ::WC_TRANSPARENCY_TOOLBAR,
+
+		/**
+		 * Build signal toolbar; Window numbers:
+		 *   - #TRANSPORT_RAIL = #BuildSignalWidgets
+		 */
+		WC_BUILD_SIGNAL = ::WC_BUILD_SIGNAL,
+
+		/**
+		 * Small map; Window numbers:
+		 *   - 0 = #SmallMapWidgets
+		 */
+		WC_SMALLMAP = ::WC_SMALLMAP,
+
+		/**
+		 * Error message; Window numbers:
+		 *   - 0 = #ErrorMessageWidgets
+		 */
+		WC_ERRMSG = ::WC_ERRMSG,
+
+		/**
+		 * Tooltip window; Window numbers:
+		 *   - 0 = #ToolTipsWidgets
+		 */
+		WC_TOOLTIPS = ::WC_TOOLTIPS,
+
+		/**
+		 * Query string window; Window numbers:
+		 *   - #WN_QUERY_STRING = #QueryStringWidgets
+		 *   - #WN_QUERY_STRING_SIGN = #QueryEditSignWidgets
+		 */
+		WC_QUERY_STRING = ::WC_QUERY_STRING,
+
+		/**
+		 * Popup with confirm question; Window numbers:
+		 *   - #WN_CONFIRM_POPUP_QUERY = #QueryWidgets
+		 *   - #WN_CONFIRM_POPUP_QUERY_BOOTSTRAP = #BootstrapAskForDownloadWidgets
+		 */
+		WC_CONFIRM_POPUP_QUERY = ::WC_CONFIRM_POPUP_QUERY,
+
+
+		/**
+		 * Saveload window; Window numbers:
+		 *   - 0 = #SaveLoadWidgets
+		 */
+		WC_SAVELOAD = ::WC_SAVELOAD,
+
+		/**
+		 * Land info window; Window numbers:
+		 *   - 0 = #LandInfoWidgets
+		 */
+		WC_LAND_INFO = ::WC_LAND_INFO,
+
+		/**
+		 * Drop down menu; Window numbers:
+		 *   - 0 = #DropdownMenuWidgets
+		 */
+		WC_DROPDOWN_MENU = ::WC_DROPDOWN_MENU,
+
+		/**
+		 * On Screen Keyboard; Window numbers:
+		 *   - 0 = #OnScreenKeyboardWidgets
+		 */
+		WC_OSK = ::WC_OSK,
+
+		/**
+		 * Set date; Window numbers:
+		 *   - #VehicleID = #SetDateWidgets
+		 */
+		WC_SET_DATE = ::WC_SET_DATE,
+
+
+		/**
+		 * AI settings; Window numbers:
+		 *   - 0 = #AISettingsWidgets
+		 */
+		WC_AI_SETTINGS = ::WC_AI_SETTINGS,
+
+		/**
+		 * NewGRF parameters; Window numbers:
+		 *   - 0 = #NewGRFParametersWidgets
+		 */
+		WC_GRF_PARAMETERS = ::WC_GRF_PARAMETERS,
+
+		/**
+		 * textfile; Window numbers:
+		 *   - 0 = #NewGRFTextfileWidgets
+		 */
+		WC_NEWGRF_TEXTFILE = ::WC_NEWGRF_TEXTFILE,
+
+
+		/**
+		 * Town authority; Window numbers:
+		 *   - #TownID = #TownAuthorityWidgets
+		 */
+		WC_TOWN_AUTHORITY = ::WC_TOWN_AUTHORITY,
+
+		/**
+		 * Vehicle details; Window numbers:
+		 *   - #VehicleID = #VehicleDetailsWidgets
+		 */
+		WC_VEHICLE_DETAILS = ::WC_VEHICLE_DETAILS,
+
+		/**
+		 * Vehicle refit; Window numbers:
+		 *   - #VehicleID = #VehicleRefitWidgets
+		 */
+		WC_VEHICLE_REFIT = ::WC_VEHICLE_REFIT,
+
+		/**
+		 * Vehicle orders; Window numbers:
+		 *   - #VehicleID = #OrderWidgets
+		 */
+		WC_VEHICLE_ORDERS = ::WC_VEHICLE_ORDERS,
+
+		/**
+		 * Replace vehicle window; Window numbers:
+		 *   - #VehicleType = #ReplaceVehicleWidgets
+		 */
+		WC_REPLACE_VEHICLE = ::WC_REPLACE_VEHICLE,
+
+		/**
+		 * Vehicle timetable; Window numbers:
+		 *   - #VehicleID = #VehicleTimetableWidgets
+		 */
+		WC_VEHICLE_TIMETABLE = ::WC_VEHICLE_TIMETABLE,
+
+		/**
+		 * Company colour selection; Window numbers:
+		 *   - #CompanyID = #SelectCompanyLiveryWidgets
+		 */
+		WC_COMPANY_COLOUR = ::WC_COMPANY_COLOUR,
+
+		/**
+		 * Alter company face window; Window numbers:
+		 *   - #CompanyID = #SelectCompanyManagerFaceWidgets
+		 */
+		WC_COMPANY_MANAGER_FACE = ::WC_COMPANY_MANAGER_FACE,
+
+		/**
+		 * Select station (when joining stations); Window numbers:
+		 *   - 0 = #JoinStationWidgets
+		 */
+		WC_SELECT_STATION = ::WC_SELECT_STATION,
+
+		/**
+		 * News window; Window numbers:
+		 *   - 0 = #NewsWidgets
+		 */
+		WC_NEWS_WINDOW = ::WC_NEWS_WINDOW,
+
+		/**
+		 * Town directory; Window numbers:
+		 *   - 0 = #TownDirectoryWidgets
+		 */
+		WC_TOWN_DIRECTORY = ::WC_TOWN_DIRECTORY,
+
+		/**
+		 * Subsidies list; Window numbers:
+		 *   - 0 = #SubsidyListWidgets
+		 */
+		WC_SUBSIDIES_LIST = ::WC_SUBSIDIES_LIST,
+
+		/**
+		 * Industry directory; Window numbers:
+		 *   - 0 = #IndustryDirectoryWidgets
+		 */
+		WC_INDUSTRY_DIRECTORY = ::WC_INDUSTRY_DIRECTORY,
+
+		/**
+		 * News history list; Window numbers:
+		 *   - 0 = #MessageHistoryWidgets
+		 */
+		WC_MESSAGE_HISTORY = ::WC_MESSAGE_HISTORY,
+
+		/**
+		 * Sign list; Window numbers:
+		 *   - 0 = #SignListWidgets
+		 */
+		WC_SIGN_LIST = ::WC_SIGN_LIST,
+
+		/**
+		 * AI list; Window numbers:
+		 *   - 0 = #AIListWidgets
+		 */
+		WC_AI_LIST = ::WC_AI_LIST,
+
+		/**
+		 * Goals list; Window numbers:
+		 *   - 0 ; #GoalListWidgets
+		 */
+		WC_GOALS_LIST = ::WC_GOALS_LIST,
+
+
+		/**
+		 * Station list; Window numbers:
+		 *   - #CompanyID = #StationListWidgets
+		 */
+		WC_STATION_LIST = ::WC_STATION_LIST,
+
+		/**
+		 * Trains list; Window numbers:
+		 *   - Packed value = #GroupListWidgets / #VehicleListWidgets
+		 */
+		WC_TRAINS_LIST = ::WC_TRAINS_LIST,
+
+		/**
+		 * Road vehicle list; Window numbers:
+		 *   - Packed value = #GroupListWidgets / #VehicleListWidgets
+		 */
+		WC_ROADVEH_LIST = ::WC_ROADVEH_LIST,
+
+		/**
+		 * Ships list; Window numbers:
+		 *   - Packed value = #GroupListWidgets / #VehicleListWidgets
+		 */
+		WC_SHIPS_LIST = ::WC_SHIPS_LIST,
+
+		/**
+		 * Aircraft list; Window numbers:
+		 *   - Packed value = #GroupListWidgets / #VehicleListWidgets
+		 */
+		WC_AIRCRAFT_LIST = ::WC_AIRCRAFT_LIST,
+
+
+		/**
+		 * Town view; Window numbers:
+		 *   - #TownID = #TownViewWidgets
+		 */
+		WC_TOWN_VIEW = ::WC_TOWN_VIEW,
+
+		/**
+		 * Vehicle view; Window numbers:
+		 *   - #VehicleID = #VehicleViewWidgets
+		 */
+		WC_VEHICLE_VIEW = ::WC_VEHICLE_VIEW,
+
+		/**
+		 * Station view; Window numbers:
+		 *   - #StationID = #StationViewWidgets
+		 */
+		WC_STATION_VIEW = ::WC_STATION_VIEW,
+
+		/**
+		 * Depot view; Window numbers:
+		 *   - #TileIndex = #DepotWidgets
+		 */
+		WC_VEHICLE_DEPOT = ::WC_VEHICLE_DEPOT,
+
+		/**
+		 * Waypoint view; Window numbers:
+		 *   - #WaypointID = #WaypointWidgets
+		 */
+		WC_WAYPOINT_VIEW = ::WC_WAYPOINT_VIEW,
+
+		/**
+		 * Industry view; Window numbers:
+		 *   - #IndustryID = #IndustryViewWidgets
+		 */
+		WC_INDUSTRY_VIEW = ::WC_INDUSTRY_VIEW,
+
+		/**
+		 * Company view; Window numbers:
+		 *   - #CompanyID = #CompanyWidgets
+		 */
+		WC_COMPANY = ::WC_COMPANY,
+
+
+		/**
+		 * Build object; Window numbers:
+		 *   - 0 = #BuildObjectWidgets
+		 */
+		WC_BUILD_OBJECT = ::WC_BUILD_OBJECT,
+
+		/**
+		 * Build vehicle; Window numbers:
+		 *   - #VehicleType = #BuildVehicleWidgets
+		 *   - #TileIndex = #BuildVehicleWidgets
+		 */
+		WC_BUILD_VEHICLE = ::WC_BUILD_VEHICLE,
+
+		/**
+		 * Build bridge; Window numbers:
+		 *   - #TransportType = #BuildBridgeSelectionWidgets
+		 */
+		WC_BUILD_BRIDGE = ::WC_BUILD_BRIDGE,
+
+		/**
+		 * Build station; Window numbers:
+		 *   - #TRANSPORT_AIR = #AirportPickerWidgets
+		 *   - #TRANSPORT_WATER = #DockToolbarWidgets
+		 *   - #TRANSPORT_RAIL = #BuildRailStationWidgets
+		 */
+		WC_BUILD_STATION = ::WC_BUILD_STATION,
+
+		/**
+		 * Build bus station; Window numbers:
+		 *   - #TRANSPORT_ROAD = #BuildRoadStationWidgets
+		 */
+		WC_BUS_STATION = ::WC_BUS_STATION,
+
+		/**
+		 * Build truck station; Window numbers:
+		 *   - #TRANSPORT_ROAD = #BuildRoadStationWidgets
+		 */
+		WC_TRUCK_STATION = ::WC_TRUCK_STATION,
+
+		/**
+		 * Build depot; Window numbers:
+		 *   - #TRANSPORT_WATER = #BuildDockDepotWidgets
+		 *   - #TRANSPORT_RAIL = #BuildRailDepotWidgets
+		 *   - #TRANSPORT_ROAD = #BuildRoadDepotWidgets
+		 */
+		WC_BUILD_DEPOT = ::WC_BUILD_DEPOT,
+
+		/**
+		 * Build waypoint; Window numbers:
+		 *   - #TRANSPORT_RAIL = #BuildRailWaypointWidgets
+		 */
+		WC_BUILD_WAYPOINT = ::WC_BUILD_WAYPOINT,
+
+		/**
+		 * Found a town; Window numbers:
+		 *   - 0 = #TownFoundingWidgets
+		 */
+		WC_FOUND_TOWN = ::WC_FOUND_TOWN,
+
+		/**
+		 * Build industry; Window numbers:
+		 *   - 0 = #DynamicPlaceIndustriesWidgets
+		 */
+		WC_BUILD_INDUSTRY = ::WC_BUILD_INDUSTRY,
+
+
+		/**
+		 * Select game window; Window numbers:
+		 *   - 0 = #SelectGameIntroWidgets
+		 */
+		WC_SELECT_GAME = ::WC_SELECT_GAME,
+
+		/**
+		 * Landscape generation (in Scenario Editor); Window numbers:
+		 *   - 0 = #TerraformToolbarWidgets
+		 *   - 0 = #EditorTerraformToolbarWidgets
+		 */
+		WC_SCEN_LAND_GEN = ::WC_SCEN_LAND_GEN,
+
+		/**
+		 * Generate landscape (newgame); Window numbers:
+		 *   - GLWM_SCENARIO = #CreateScenarioWidgets
+		 *   - #GenenerateLandscapeWindowMode = #GenerateLandscapeWidgets
+		 */
+		WC_GENERATE_LANDSCAPE = ::WC_GENERATE_LANDSCAPE,
+
+		/**
+		 * Progress report of landscape generation; Window numbers:
+		 *   - 0 = #GenerationProgressWidgets
+		 *   - 1 = #ScanProgressWidgets
+		 */
+		WC_MODAL_PROGRESS = ::WC_MODAL_PROGRESS,
+
+
+		/**
+		 * Network window; Window numbers:
+		 *   - #WN_NETWORK_WINDOW_GAME = #NetworkGameWidgets
+		 *   - #WN_NETWORK_WINDOW_LOBBY = #NetworkLobbyWidgets
+		 *   - #WN_NETWORK_WINDOW_CONTENT_LIST = #NetworkContentListWidgets
+		 *   - #WN_NETWORK_WINDOW_START = #NetworkStartServerWidgets
+		 */
+		WC_NETWORK_WINDOW = ::WC_NETWORK_WINDOW,
+
+		/**
+		 * Client list; Window numbers:
+		 *   - 0 = #ClientListWidgets
+		 */
+		WC_CLIENT_LIST = ::WC_CLIENT_LIST,
+
+		/**
+		 * Popup for the client list; Window numbers:
+		 *   - #ClientID = #ClientListPopupWidgets
+		 */
+		WC_CLIENT_LIST_POPUP = ::WC_CLIENT_LIST_POPUP,
+
+		/**
+		 * Network status window; Window numbers:
+		 *   - #WN_NETWORK_STATUS_WINDOW_JOIN = #NetworkJoinStatusWidgets
+		 *   - #WN_NETWORK_STATUS_WINDOW_CONTENT_DOWNLOAD = #NetworkContentDownloadStatusWidgets
+		 */
+		WC_NETWORK_STATUS_WINDOW = ::WC_NETWORK_STATUS_WINDOW,
+
+		/**
+		 * Chatbox; Window numbers:
+		 *   - #DestType = #NetWorkChatWidgets
+		 */
+		WC_SEND_NETWORK_MSG = ::WC_SEND_NETWORK_MSG,
+
+		/**
+		 * Company password query; Window numbers:
+		 *   - 0 = #NetworkCompanyPasswordWidgets
+		 */
+		WC_COMPANY_PASSWORD_WINDOW = ::WC_COMPANY_PASSWORD_WINDOW,
+
+
+		/**
+		 * Industry cargoes chain; Window numbers:
+		 *   - 0 = #IndustryCargoesWidgets
+		 */
+		WC_INDUSTRY_CARGOES = ::WC_INDUSTRY_CARGOES,
+
+		/**
+		 * Legend for graphs; Window numbers:
+		 *   - 0 = #GraphLegendWidgets
+		 */
+		WC_GRAPH_LEGEND = ::WC_GRAPH_LEGEND,
+
+		/**
+		 * Finances of a company; Window numbers:
+		 *   - #CompanyID = #CompanyWidgets
+		 */
+		WC_FINANCES = ::WC_FINANCES,
+
+		/**
+		 * Income graph; Window numbers:
+		 *   - 0 = #CompanyValueWidgets
+		 */
+		WC_INCOME_GRAPH = ::WC_INCOME_GRAPH,
+
+		/**
+		 * Operating profit graph; Window numbers:
+		 *   - 0 = #CompanyValueWidgets
+		 */
+		WC_OPERATING_PROFIT = ::WC_OPERATING_PROFIT,
+
+		/**
+		 * Delivered cargo graph; Window numbers:
+		 *   - 0 = #CompanyValueWidgets
+		 */
+		WC_DELIVERED_CARGO = ::WC_DELIVERED_CARGO,
+
+		/**
+		 * Performance history graph; Window numbers:
+		 *   - 0 = #PerformanceHistoryGraphWidgets
+		 */
+		WC_PERFORMANCE_HISTORY = ::WC_PERFORMANCE_HISTORY,
+
+		/**
+		 * Company value graph; Window numbers:
+		 *   - 0 = #CompanyValueWidgets
+		 */
+		WC_COMPANY_VALUE = ::WC_COMPANY_VALUE,
+
+		/**
+		 * Company league window; Window numbers:
+		 *   - 0 = #CompanyLeagueWidgets
+		 */
+		WC_COMPANY_LEAGUE = ::WC_COMPANY_LEAGUE,
+
+		/**
+		 * Payment rates graph; Window numbers:
+		 *   - 0 = #CargoPaymentRatesWidgets
+		 */
+		WC_PAYMENT_RATES = ::WC_PAYMENT_RATES,
+
+		/**
+		 * Performance detail window; Window numbers:
+		 *   - 0 = #PerformanceRatingDetailsWidgets
+		 */
+		WC_PERFORMANCE_DETAIL = ::WC_PERFORMANCE_DETAIL,
+
+		/**
+		 * Company infrastructure overview; Window numbers:
+		 *   - #CompanyID = #CompanyInfrastructureWidgets
+		 */
+		WC_COMPANY_INFRASTRUCTURE = ::WC_COMPANY_INFRASTRUCTURE,
+
+
+		/**
+		 * Buyout company (merger); Window numbers:
+		 *   - #CompanyID = #BuyCompanyWidgets
+		 */
+		WC_BUY_COMPANY = ::WC_BUY_COMPANY,
+
+		/**
+		 * Engine preview window; Window numbers:
+		 *   - #EngineID = #EnginePreviewWidgets
+		 */
+		WC_ENGINE_PREVIEW = ::WC_ENGINE_PREVIEW,
+
+
+		/**
+		 * Music window; Window numbers:
+		 *   - 0 = #MusicWidgets
+		 */
+		WC_MUSIC_WINDOW = ::WC_MUSIC_WINDOW,
+
+		/**
+		 * Music track selection; Window numbers:
+		 *   - 0 = MusicTrackSelectionWidgets
+		 */
+		WC_MUSIC_TRACK_SELECTION = ::WC_MUSIC_TRACK_SELECTION,
+
+		/**
+		 * Game options window; Window numbers:
+		 *   - #WN_GAME_OPTIONS_AI = #AIConfigWidgets
+		 *   - #WN_GAME_OPTIONS_ABOUT = #AboutWidgets
+		 *   - #WN_GAME_OPTIONS_NEWGRF_STATE = #NewGRFStateWidgets
+		 *   - #WN_GAME_OPTIONS_MESSAGE_OPTION = #MessageOptionWidgets
+		 *   - #WN_GAME_OPTIONS_GAME_OPTIONS = #GameOptionsWidgets
+		 *   - #WN_GAME_OPTIONS_GAME_DIFFICULTY = #GameDifficultyWidgets
+		 *   - #WN_GAME_OPTIONS_GAME_SETTINGS = #GameSettingsWidgets
+		 */
+		WC_GAME_OPTIONS = ::WC_GAME_OPTIONS,
+
+		/**
+		 * Custom currency; Window numbers:
+		 *   - 0 = #CustomCurrencyWidgets
+		 */
+		WC_CUSTOM_CURRENCY = ::WC_CUSTOM_CURRENCY,
+
+		/**
+		 * Cheat window; Window numbers:
+		 *   - 0 = #CheatWidgets
+		 */
+		WC_CHEATS = ::WC_CHEATS,
+
+		/**
+		 * Extra viewport; Window numbers:
+		 *   - Ascending value = #ExtraViewportWidgets
+		 */
+		WC_EXTRA_VIEW_PORT = ::WC_EXTRA_VIEW_PORT,
+
+
+		/**
+		 * Console; Window numbers:
+		 *   - 0 = #ConsoleWidgets
+		 */
+		WC_CONSOLE = ::WC_CONSOLE,
+
+		/**
+		 * Bootstrap; Window numbers:
+		 *   - 0 = #BootstrapBackgroundWidgets
+		 */
+		WC_BOOTSTRAP = ::WC_BOOTSTRAP,
+
+		/**
+		 * Highscore; Window numbers:
+		 *   - 0 = #HighscoreWidgets
+		 */
+		WC_HIGHSCORE = ::WC_HIGHSCORE,
+
+		/**
+		 * Endscreen; Window numbers:
+		 *   - 0 = #HighscoreWidgets
+		 */
+		WC_ENDSCREEN = ::WC_ENDSCREEN,
+
+
+		/**
+		 * AI debug window; Window numbers:
+		 *   - 0 = #AIDebugWidgets
+		 */
+		WC_AI_DEBUG = ::WC_AI_DEBUG,
+
+		/**
+		 * NewGRF inspect (debug); Window numbers:
+		 *   - Packed value = #NewGRFInspectWidgets
+		 */
+		WC_NEWGRF_INSPECT = ::WC_NEWGRF_INSPECT,
+
+		/**
+		 * Sprite aligner (debug); Window numbers:
+		 *   - 0 = #SpriteAlignerWidgets
+		 */
+		WC_SPRITE_ALIGNER = ::WC_SPRITE_ALIGNER,
+
+		WC_INVALID = ::WC_INVALID, ///< Invalid window.
+	};
+
+
+	/**
+	 * The colours in the game which you can use for text and highlights.
+	 */
+	enum TextColour {
+		/* Note: these values represent part of the in-game TextColour enum */
+		TC_BLUE        = ::TC_BLUE,        ///< Blue colour.
+		TC_SILVER      = ::TC_SILVER,      ///< Silver colour.
+		TC_GOLD        = ::TC_GOLD,        ///< Gold colour.
+		TC_RED         = ::TC_RED,         ///< Red colour.
+		TC_PURPLE      = ::TC_PURPLE,      ///< Purple colour.
+		TC_LIGHT_BROWN = ::TC_LIGHT_BROWN, ///< Light brown colour.
+		TC_ORANGE      = ::TC_ORANGE,      ///< Orange colour.
+		TC_GREEN       = ::TC_GREEN,       ///< Green colour.
+		TC_YELLOW      = ::TC_YELLOW,      ///< Yellow colour.
+		TC_DARK_GREEN  = ::TC_DARK_GREEN,  ///< Dark green colour.
+		TC_CREAM       = ::TC_CREAM,       ///< Cream colour.
+		TC_BROWN       = ::TC_BROWN,       ///< Brown colour.
+		TC_WHITE       = ::TC_WHITE,       ///< White colour.
+		TC_LIGHT_BLUE  = ::TC_LIGHT_BLUE,  ///< Light blue colour.
+		TC_GREY        = ::TC_GREY,        ///< Grey colour.
+		TC_DARK_BLUE   = ::TC_DARK_BLUE,   ///< Dark blue colour.
+		TC_BLACK       = ::TC_BLACK,       ///< Black colour.
+		TC_INVALID     = ::TC_INVALID,     ///< Invalid colour.
+	};
+
+	/**
+	 * Special number values.
+	 */
+	enum NumberType {
+		NUMBER_ALL = 0xFFFFFFFF, ///< Value to select all windows of a class.
+	};
+
+	/**
+	 * Special widget values.
+	 */
+	enum WidgetType {
+		WIDGET_ALL = 0xFF, ///< Value to select all widgets of a window.
+	};
+
+	/**
+	 * Close a window.
+	 * @param window The class of the window to close.
+	 * @param number The number of the window to close, or NUMBER_ALL to close all of this class.
+	 * @pre !ScriptGame::IsMultiplayer().
+	 */
+	static void Close(WindowClass window, uint32 number);
+
+	/**
+	 * Check if a window is open.
+	 * @param window The class of the window to check for.
+	 * @param number The number of the window to check for, or NUMBER_ALL to check for any in the class.
+	 * @pre !ScriptGame::IsMultiplayer().
+	 * @return True if the window is open.
+	 */
+	static bool IsOpen(WindowClass window, uint32 number);
+
+	/**
+	 * Highlight a widget in a window.
+	 * @param window The class of the window to highlight a widget in.
+	 * @param number The number of the window to highlight a widget in.
+	 * @param widget The widget in the window to highlight, or WIDGET_ALL (in combination with TC_INVALID) to disable all widget highlighting on this window.
+	 * @param colour The colour of the highlight, or TC_INVALID for disabling.
+	 * @pre !ScriptGame::IsMultiplayer().
+	 * @pre number != NUMBER_ALL.
+	 * @pre colour < TC_END || (widget == WIDGET_ALL && colour == TC_INVALID).
+	 * @pre IsOpen(window, number).
+	 */
+	static void Highlight(WindowClass window, uint32 number, uint8 widget, TextColour colour);
+
+	/** Widgets of the #AIListWindow class. */
+	enum AIListWidgets {
+		WID_AIL_CAPTION                      = ::WID_AIL_CAPTION,                      ///< Caption of the window.
+		WID_AIL_LIST                         = ::WID_AIL_LIST,                         ///< The matrix with all available AIs.
+		WID_AIL_SCROLLBAR                    = ::WID_AIL_SCROLLBAR,                    ///< Scrollbar next to the AI list.
+		WID_AIL_INFO_BG                      = ::WID_AIL_INFO_BG,                      ///< Panel to draw some AI information on.
+		WID_AIL_ACCEPT                       = ::WID_AIL_ACCEPT,                       ///< Accept button.
+		WID_AIL_CANCEL                       = ::WID_AIL_CANCEL,                       ///< Cancel button.
+	};
+
+	/** Widgets of the #AISettingsWindow class. */
+	enum AISettingsWidgets {
+		WID_AIS_CAPTION                      = ::WID_AIS_CAPTION,                      ///< Caption of the window.
+		WID_AIS_BACKGROUND                   = ::WID_AIS_BACKGROUND,                   ///< Panel to draw the settings on.
+		WID_AIS_SCROLLBAR                    = ::WID_AIS_SCROLLBAR,                    ///< Scrollbar to scroll through all settings.
+		WID_AIS_ACCEPT                       = ::WID_AIS_ACCEPT,                       ///< Accept button.
+		WID_AIS_RESET                        = ::WID_AIS_RESET,                        ///< Reset button.
+	};
+
+	/** Widgets of the #AIConfigWindow class. */
+	enum AIConfigWidgets {
+		WID_AIC_BACKGROUND                   = ::WID_AIC_BACKGROUND,                   ///< Window background.
+		WID_AIC_DECREASE                     = ::WID_AIC_DECREASE,                     ///< Decrease the number of AIs.
+		WID_AIC_INCREASE                     = ::WID_AIC_INCREASE,                     ///< Increase the number of AIs.
+		WID_AIC_NUMBER                       = ::WID_AIC_NUMBER,                       ///< Number of AIs.
+		WID_AIC_GAMELIST                     = ::WID_AIC_GAMELIST,                     ///< List with current selected GameScript.
+		WID_AIC_LIST                         = ::WID_AIC_LIST,                         ///< List with currently selected AIs.
+		WID_AIC_SCROLLBAR                    = ::WID_AIC_SCROLLBAR,                    ///< Scrollbar to scroll through the selected AIs.
+		WID_AIC_MOVE_UP                      = ::WID_AIC_MOVE_UP,                      ///< Move up button.
+		WID_AIC_MOVE_DOWN                    = ::WID_AIC_MOVE_DOWN,                    ///< Move down button.
+		WID_AIC_CHANGE                       = ::WID_AIC_CHANGE,                       ///< Select another AI button.
+		WID_AIC_CONFIGURE                    = ::WID_AIC_CONFIGURE,                    ///< Change AI settings button.
+		WID_AIC_CLOSE                        = ::WID_AIC_CLOSE,                        ///< Close window button.
+		WID_AIC_CONTENT_DOWNLOAD             = ::WID_AIC_CONTENT_DOWNLOAD,             ///< Download content button.
+	};
+
+	/** Widgets of the #AIDebugWindow class. */
+	enum AIDebugWidgets {
+		WID_AID_VIEW                         = ::WID_AID_VIEW,                         ///< The row of company buttons.
+		WID_AID_NAME_TEXT                    = ::WID_AID_NAME_TEXT,                    ///< Name of the current selected.
+		WID_AID_SETTINGS                     = ::WID_AID_SETTINGS,                     ///< Settings button.
+		WID_AID_SCRIPT_GAME                  = ::WID_AID_SCRIPT_GAME,                  ///< Game Script button.
+		WID_AID_RELOAD_TOGGLE                = ::WID_AID_RELOAD_TOGGLE,                ///< Reload button.
+		WID_AID_LOG_PANEL                    = ::WID_AID_LOG_PANEL,                    ///< Panel where the log is in.
+		WID_AID_SCROLLBAR                    = ::WID_AID_SCROLLBAR,                    ///< Scrollbar of the log pannel.
+		WID_AID_COMPANY_BUTTON_START         = ::WID_AID_COMPANY_BUTTON_START,         ///< Buttons in the VIEW.
+		WID_AID_COMPANY_BUTTON_END           = ::WID_AID_COMPANY_BUTTON_END,           ///< Last possible button in the VIEW.
+		WID_AID_BREAK_STRING_WIDGETS         = ::WID_AID_BREAK_STRING_WIDGETS,         ///< The panel to handle the breaking on string.
+		WID_AID_BREAK_STR_ON_OFF_BTN         = ::WID_AID_BREAK_STR_ON_OFF_BTN,         ///< Enable breaking on string.
+		WID_AID_BREAK_STR_EDIT_BOX           = ::WID_AID_BREAK_STR_EDIT_BOX,           ///< Edit box for the string to break on.
+		WID_AID_MATCH_CASE_BTN               = ::WID_AID_MATCH_CASE_BTN,               ///< Checkbox to use match caching or not.
+		WID_AID_CONTINUE_BTN                 = ::WID_AID_CONTINUE_BTN,                 ///< Continue button.
+	};
+
+	/** Widgets of the #BuildAirToolbarWindow class. */
+	enum AirportToolbarWidgets {
+		WID_AT_AIRPORT                       = ::WID_AT_AIRPORT,                       ///< Build airport button.
+		WID_AT_DEMOLISH                      = ::WID_AT_DEMOLISH,                      ///< Demolish button.
+	};
+
+	/** Widgets of the #BuildAirportWindow class. */
+	enum AirportPickerWidgets {
+		WID_AP_CLASS_DROPDOWN                = ::WID_AP_CLASS_DROPDOWN,                ///< Dropdown of airport classes.
+		WID_AP_AIRPORT_LIST                  = ::WID_AP_AIRPORT_LIST,                  ///< List of airports.
+		WID_AP_SCROLLBAR                     = ::WID_AP_SCROLLBAR,                     ///< Scrollbar of the list.
+		WID_AP_LAYOUT_NUM                    = ::WID_AP_LAYOUT_NUM,                    ///< Current number of the layout.
+		WID_AP_LAYOUT_DECREASE               = ::WID_AP_LAYOUT_DECREASE,               ///< Decrease the layout number.
+		WID_AP_LAYOUT_INCREASE               = ::WID_AP_LAYOUT_INCREASE,               ///< Increase the layout number.
+		WID_AP_AIRPORT_SPRITE                = ::WID_AP_AIRPORT_SPRITE,                ///< A visual display of the airport currently selected.
+		WID_AP_EXTRA_TEXT                    = ::WID_AP_EXTRA_TEXT,                    ///< Additional text about the airport.
+		WID_AP_BOTTOMPANEL                   = ::WID_AP_BOTTOMPANEL,                   ///< Panel at the bottom.
+		WID_AP_COVERAGE_LABEL                = ::WID_AP_COVERAGE_LABEL,                ///< Label if you want to see the coverage.
+		WID_AP_BTN_DONTHILIGHT               = ::WID_AP_BTN_DONTHILIGHT,               ///< Don't show the coverage button.
+		WID_AP_BTN_DOHILIGHT                 = ::WID_AP_BTN_DOHILIGHT,                 ///< Show the coverage button.
+	};
+
+	/** Widgets of the #ReplaceVehicleWindow class. */
+	enum ReplaceVehicleWidgets {
+		WID_RV_CAPTION                       = ::WID_RV_CAPTION,                       ///< Caption of the window.
+		WID_RV_LEFT_MATRIX                   = ::WID_RV_LEFT_MATRIX,                   ///< The matrix on the left.
+		WID_RV_LEFT_SCROLLBAR                = ::WID_RV_LEFT_SCROLLBAR,                ///< The scrollbar for the matrix on the left.
+		WID_RV_RIGHT_MATRIX                  = ::WID_RV_RIGHT_MATRIX,                  ///< The matrix on the right.
+		WID_RV_RIGHT_SCROLLBAR               = ::WID_RV_RIGHT_SCROLLBAR,               ///< The scrollbar for the matrxi on the right.
+		WID_RV_LEFT_DETAILS                  = ::WID_RV_LEFT_DETAILS,                  ///< Details of the entry on the left.
+		WID_RV_RIGHT_DETAILS                 = ::WID_RV_RIGHT_DETAILS,                 ///< Details of the entry on the right.
+		WID_RV_START_REPLACE                 = ::WID_RV_START_REPLACE,                 ///< Start Replacing button.
+		WID_RV_INFO_TAB                      = ::WID_RV_INFO_TAB,                      ///< Info tab.
+		WID_RV_STOP_REPLACE                  = ::WID_RV_STOP_REPLACE,                  ///< Stop Replacing button.
+		WID_RV_TRAIN_ENGINEWAGON_TOGGLE      = ::WID_RV_TRAIN_ENGINEWAGON_TOGGLE,      ///< Button to toggle engines and/or wagons.
+		WID_RV_TRAIN_FLUFF_LEFT              = ::WID_RV_TRAIN_FLUFF_LEFT,              ///< The fluff on the left.
+		WID_RV_TRAIN_RAILTYPE_DROPDOWN       = ::WID_RV_TRAIN_RAILTYPE_DROPDOWN,       ///< Dropdown menu about the railtype.
+		WID_RV_TRAIN_FLUFF_RIGHT             = ::WID_RV_TRAIN_FLUFF_RIGHT,             ///< The fluff on the right.
+		WID_RV_TRAIN_WAGONREMOVE_TOGGLE      = ::WID_RV_TRAIN_WAGONREMOVE_TOGGLE,      ///< Button to toggle removing wagons.
+	};
+
+	/** Widgets of the #BootstrapBackground class. */
+	enum BootstrapBackgroundWidgets {
+		WID_BB_BACKGROUND                    = ::WID_BB_BACKGROUND,                    ///< Background of the window.
+	};
+
+	/** Widgets of the #BootstrapContentDownloadStatusWindow class. */
+	enum BootstrapAskForDownloadWidgets {
+		WID_BAFD_QUESTION                    = ::WID_BAFD_QUESTION,                    ///< The question whether to download.
+		WID_BAFD_YES                         = ::WID_BAFD_YES,                         ///< An affirmative answer to the question.
+		WID_BAFD_NO                          = ::WID_BAFD_NO,                          ///< An negative answer to the question.
+	};
+
+	/** Widgets of the #BuildBridgeWindow class. */
+	enum BuildBridgeSelectionWidgets {
+		WID_BBS_CAPTION                      = ::WID_BBS_CAPTION,                      ///< Caption of the window.
+		WID_BBS_DROPDOWN_ORDER               = ::WID_BBS_DROPDOWN_ORDER,               ///< Direction of sort dropdown.
+		WID_BBS_DROPDOWN_CRITERIA            = ::WID_BBS_DROPDOWN_CRITERIA,            ///< Criteria of sort dropdown.
+		WID_BBS_BRIDGE_LIST                  = ::WID_BBS_BRIDGE_LIST,                  ///< List of bridges.
+		WID_BBS_SCROLLBAR                    = ::WID_BBS_SCROLLBAR,                    ///< Scrollbar of the list.
+	};
+
+	/** Widgets of the #BuildVehicleWindow class. */
+	enum BuildVehicleWidgets {
+		WID_BV_CAPTION                       = ::WID_BV_CAPTION,                       ///< Caption of window.
+		WID_BV_SORT_ASSENDING_DESCENDING     = ::WID_BV_SORT_ASSENDING_DESCENDING,     ///< Sort direction.
+		WID_BV_SORT_DROPDOWN                 = ::WID_BV_SORT_DROPDOWN,                 ///< Criteria of sorting dropdown.
+		WID_BV_CARGO_FILTER_DROPDOWN         = ::WID_BV_CARGO_FILTER_DROPDOWN,         ///< Cargo filter dropdown.
+		WID_BV_LIST                          = ::WID_BV_LIST,                          ///< List of vehicles.
+		WID_BV_SCROLLBAR                     = ::WID_BV_SCROLLBAR,                     ///< Scrollbar of list.
+		WID_BV_PANEL                         = ::WID_BV_PANEL,                         ///< Button panel.
+		WID_BV_BUILD                         = ::WID_BV_BUILD,                         ///< Build panel.
+		WID_BV_BUILD_SEL                     = ::WID_BV_BUILD_SEL,                     ///< Build button.
+		WID_BV_RENAME                        = ::WID_BV_RENAME,                        ///< Rename button.
+	};
+
+	/** Widgets of the #CheatWindow class.. */
+	enum CheatWidgets {
+		WID_C_PANEL                          = ::WID_C_PANEL,                          ///< Panel where all cheats are shown in.
+	};
+
+	/** Widgets of the #CompanyWindow class. */
+	enum CompanyWidgets {
+		WID_C_CAPTION                        = ::WID_C_CAPTION,                        ///< Caption of the window.
+		WID_C_FACE                           = ::WID_C_FACE,                           ///< View of the face.
+		WID_C_FACE_TITLE                     = ::WID_C_FACE_TITLE,                     ///< Title for the face.
+		WID_C_DESC_INAUGURATION              = ::WID_C_DESC_INAUGURATION,              ///< Inauguration.
+		WID_C_DESC_COLOUR_SCHEME             = ::WID_C_DESC_COLOUR_SCHEME,             ///< Colour scheme.
+		WID_C_DESC_COLOUR_SCHEME_EXAMPLE     = ::WID_C_DESC_COLOUR_SCHEME_EXAMPLE,     ///< Colour scheme example.
+		WID_C_DESC_VEHICLE                   = ::WID_C_DESC_VEHICLE,                   ///< Vehicles.
+		WID_C_DESC_VEHICLE_COUNTS            = ::WID_C_DESC_VEHICLE_COUNTS,            ///< Vehicle count.
+		WID_C_DESC_COMPANY_VALUE             = ::WID_C_DESC_COMPANY_VALUE,             ///< Company value.
+		WID_C_DESC_INFRASTRUCTURE            = ::WID_C_DESC_INFRASTRUCTURE,            ///< Infrastructure.
+		WID_C_DESC_INFRASTRUCTURE_COUNTS     = ::WID_C_DESC_INFRASTRUCTURE_COUNTS,     ///< Infrastructure count.
+		WID_C_SELECT_DESC_OWNERS             = ::WID_C_SELECT_DESC_OWNERS,             ///< Owners.
+		WID_C_DESC_OWNERS                    = ::WID_C_DESC_OWNERS,                    ///< Owner in Owners.
+		WID_C_SELECT_BUTTONS                 = ::WID_C_SELECT_BUTTONS,                 ///< Selection widget for the button bar.
+		WID_C_NEW_FACE                       = ::WID_C_NEW_FACE,                       ///< Button to make new face.
+		WID_C_COLOUR_SCHEME                  = ::WID_C_COLOUR_SCHEME,                  ///< Button to change colour scheme.
+		WID_C_PRESIDENT_NAME                 = ::WID_C_PRESIDENT_NAME,                 ///< Button to change president name.
+		WID_C_COMPANY_NAME                   = ::WID_C_COMPANY_NAME,                   ///< Button to change company name.
+		WID_C_BUY_SHARE                      = ::WID_C_BUY_SHARE,                      ///< Button to buy a share.
+		WID_C_SELL_SHARE                     = ::WID_C_SELL_SHARE,                     ///< Button to sell a share.
+		WID_C_SELECT_VIEW_BUILD_HQ           = ::WID_C_SELECT_VIEW_BUILD_HQ,           ///< Panel about HQ.
+		WID_C_VIEW_HQ                        = ::WID_C_VIEW_HQ,                        ///< Button to view the HQ.
+		WID_C_BUILD_HQ                       = ::WID_C_BUILD_HQ,                       ///< Button to build the HQ.
+		WID_C_SELECT_RELOCATE                = ::WID_C_SELECT_RELOCATE,                ///< Panel about 'Relocate HQ'.
+		WID_C_RELOCATE_HQ                    = ::WID_C_RELOCATE_HQ,                    ///< Button to relocate the HQ.
+		WID_C_VIEW_INFRASTRUCTURE            = ::WID_C_VIEW_INFRASTRUCTURE,            ///< Panel about infrastructure.
+		WID_C_HAS_PASSWORD                   = ::WID_C_HAS_PASSWORD,                   ///< Has company password lock.
+		WID_C_SELECT_MULTIPLAYER             = ::WID_C_SELECT_MULTIPLAYER,             ///< Multiplayer selection panel.
+		WID_C_COMPANY_PASSWORD               = ::WID_C_COMPANY_PASSWORD,               ///< Button to set company password.
+		WID_C_COMPANY_JOIN                   = ::WID_C_COMPANY_JOIN,                   ///< Button to join company.
+	};
+
+	/** Widgets of the #CompanyFinancesWindow class. */
+	enum CompanyFinancesWidgets {
+		WID_CF_CAPTION                       = ::WID_CF_CAPTION,                       ///< Caption of the window.
+		WID_CF_TOGGLE_SIZE                   = ::WID_CF_TOGGLE_SIZE,                   ///< Toggle windows size.
+		WID_CF_SEL_PANEL                     = ::WID_CF_SEL_PANEL,                     ///< Select panel or nothing.
+		WID_CF_EXPS_CATEGORY                 = ::WID_CF_EXPS_CATEGORY,                 ///< Column for expenses category strings.
+		WID_CF_EXPS_PRICE1                   = ::WID_CF_EXPS_PRICE1,                   ///< Column for year Y-2 expenses.
+		WID_CF_EXPS_PRICE2                   = ::WID_CF_EXPS_PRICE2,                   ///< Column for year Y-1 expenses.
+		WID_CF_EXPS_PRICE3                   = ::WID_CF_EXPS_PRICE3,                   ///< Column for year Y expenses.
+		WID_CF_TOTAL_PANEL                   = ::WID_CF_TOTAL_PANEL,                   ///< Panel for totals.
+		WID_CF_SEL_MAXLOAN                   = ::WID_CF_SEL_MAXLOAN,                   ///< Selection of maxloan column.
+		WID_CF_BALANCE_VALUE                 = ::WID_CF_BALANCE_VALUE,                 ///< Bank balance value.
+		WID_CF_LOAN_VALUE                    = ::WID_CF_LOAN_VALUE,                    ///< Loan.
+		WID_CF_LOAN_LINE                     = ::WID_CF_LOAN_LINE,                     ///< Line for summing bank balance and loan.
+		WID_CF_TOTAL_VALUE                   = ::WID_CF_TOTAL_VALUE,                   ///< Total.
+		WID_CF_MAXLOAN_GAP                   = ::WID_CF_MAXLOAN_GAP,                   ///< Gap above max loan widget.
+		WID_CF_MAXLOAN_VALUE                 = ::WID_CF_MAXLOAN_VALUE,                 ///< Max loan widget.
+		WID_CF_SEL_BUTTONS                   = ::WID_CF_SEL_BUTTONS,                   ///< Selection of buttons.
+		WID_CF_INCREASE_LOAN                 = ::WID_CF_INCREASE_LOAN,                 ///< Increase loan.
+		WID_CF_REPAY_LOAN                    = ::WID_CF_REPAY_LOAN,                    ///< Decrease loan..
+		WID_CF_INFRASTRUCTURE                = ::WID_CF_INFRASTRUCTURE,                ///< View company infrastructure.
+	};
+
+	/** Widgets of the #SelectCompanyLiveryWindow class. */
+	enum SelectCompanyLiveryWidgets {
+		WID_SCL_CAPTION                      = ::WID_SCL_CAPTION,                      ///< Caption of window.
+		WID_SCL_CLASS_GENERAL                = ::WID_SCL_CLASS_GENERAL,                ///< Class general.
+		WID_SCL_CLASS_RAIL                   = ::WID_SCL_CLASS_RAIL,                   ///< Class rail.
+		WID_SCL_CLASS_ROAD                   = ::WID_SCL_CLASS_ROAD,                   ///< Class road.
+		WID_SCL_CLASS_SHIP                   = ::WID_SCL_CLASS_SHIP,                   ///< Class ship.
+		WID_SCL_CLASS_AIRCRAFT               = ::WID_SCL_CLASS_AIRCRAFT,               ///< Class aircraft.
+		WID_SCL_SPACER_DROPDOWN              = ::WID_SCL_SPACER_DROPDOWN,              ///< Spacer for dropdown.
+		WID_SCL_PRI_COL_DROPDOWN             = ::WID_SCL_PRI_COL_DROPDOWN,             ///< Dropdown for primary colour.
+		WID_SCL_SEC_COL_DROPDOWN             = ::WID_SCL_SEC_COL_DROPDOWN,             ///< Dropdown for secondary colour.
+		WID_SCL_MATRIX                       = ::WID_SCL_MATRIX,                       ///< Matrix.
+	};
+
+	/**
+	 * Widgets of the #SelectCompanyManagerFaceWindow class.
+	 * Do not change the order of the widgets from WID_SCMF_HAS_MOUSTACHE_EARRING to WID_SCMF_GLASSES_R,
+	 * this order is needed for the WE_CLICK event of DrawFaceStringLabel().
+	 */
+	enum SelectCompanyManagerFaceWidgets {
+		WID_SCMF_CAPTION                     = ::WID_SCMF_CAPTION,                     ///< Caption of window.
+		WID_SCMF_TOGGLE_LARGE_SMALL          = ::WID_SCMF_TOGGLE_LARGE_SMALL,          ///< Toggle for large or small.
+		WID_SCMF_SELECT_FACE                 = ::WID_SCMF_SELECT_FACE,                 ///< Select face.
+		WID_SCMF_CANCEL                      = ::WID_SCMF_CANCEL,                      ///< Cancel.
+		WID_SCMF_ACCEPT                      = ::WID_SCMF_ACCEPT,                      ///< Accept.
+		WID_SCMF_MALE                        = ::WID_SCMF_MALE,                        ///< Male button in the simple view.
+		WID_SCMF_FEMALE                      = ::WID_SCMF_FEMALE,                      ///< Female button in the simple view.
+		WID_SCMF_MALE2                       = ::WID_SCMF_MALE2,                       ///< Male button in the advanced view.
+		WID_SCMF_FEMALE2                     = ::WID_SCMF_FEMALE2,                     ///< Female button in the advanced view.
+		WID_SCMF_SEL_LOADSAVE                = ::WID_SCMF_SEL_LOADSAVE,                ///< Selection to display the load/save/number buttons in the advanced view.
+		WID_SCMF_SEL_MALEFEMALE              = ::WID_SCMF_SEL_MALEFEMALE,              ///< Selection to display the male/female buttons in the simple view.
+		WID_SCMF_SEL_PARTS                   = ::WID_SCMF_SEL_PARTS,                   ///< Selection to display the buttons for setting each part of the face in the advanced view.
+		WID_SCMF_RANDOM_NEW_FACE             = ::WID_SCMF_RANDOM_NEW_FACE,             ///< Create random new face.
+		WID_SCMF_TOGGLE_LARGE_SMALL_BUTTON   = ::WID_SCMF_TOGGLE_LARGE_SMALL_BUTTON,   ///< Toggle for large or small.
+		WID_SCMF_FACE                        = ::WID_SCMF_FACE,                        ///< Current face.
+		WID_SCMF_LOAD                        = ::WID_SCMF_LOAD,                        ///< Load face.
+		WID_SCMF_FACECODE                    = ::WID_SCMF_FACECODE,                    ///< Get the face code.
+		WID_SCMF_SAVE                        = ::WID_SCMF_SAVE,                        ///< Save face.
+		WID_SCMF_HAS_MOUSTACHE_EARRING_TEXT  = ::WID_SCMF_HAS_MOUSTACHE_EARRING_TEXT,  ///< Text about moustache and earring.
+		WID_SCMF_TIE_EARRING_TEXT            = ::WID_SCMF_TIE_EARRING_TEXT,            ///< Text about tie and earring.
+		WID_SCMF_LIPS_MOUSTACHE_TEXT         = ::WID_SCMF_LIPS_MOUSTACHE_TEXT,         ///< Text about lips and moustache.
+		WID_SCMF_HAS_GLASSES_TEXT            = ::WID_SCMF_HAS_GLASSES_TEXT,            ///< Text about glasses.
+		WID_SCMF_HAIR_TEXT                   = ::WID_SCMF_HAIR_TEXT,                   ///< Text about hair.
+		WID_SCMF_EYEBROWS_TEXT               = ::WID_SCMF_EYEBROWS_TEXT,               ///< Text about eyebrows.
+		WID_SCMF_EYECOLOUR_TEXT              = ::WID_SCMF_EYECOLOUR_TEXT,              ///< Text about eyecolour.
+		WID_SCMF_GLASSES_TEXT                = ::WID_SCMF_GLASSES_TEXT,                ///< Text about glasses.
+		WID_SCMF_NOSE_TEXT                   = ::WID_SCMF_NOSE_TEXT,                   ///< Text about nose.
+		WID_SCMF_CHIN_TEXT                   = ::WID_SCMF_CHIN_TEXT,                   ///< Text about chin.
+		WID_SCMF_JACKET_TEXT                 = ::WID_SCMF_JACKET_TEXT,                 ///< Text about jacket.
+		WID_SCMF_COLLAR_TEXT                 = ::WID_SCMF_COLLAR_TEXT,                 ///< Text about collar.
+		WID_SCMF_ETHNICITY_EUR               = ::WID_SCMF_ETHNICITY_EUR,               ///< Text about ethnicity european.
+		WID_SCMF_ETHNICITY_AFR               = ::WID_SCMF_ETHNICITY_AFR,               ///< Text about ethnicity african.
+		WID_SCMF_HAS_MOUSTACHE_EARRING       = ::WID_SCMF_HAS_MOUSTACHE_EARRING,       ///< Has moustache or earring.
+		WID_SCMF_HAS_GLASSES                 = ::WID_SCMF_HAS_GLASSES,                 ///< Has glasses.
+		WID_SCMF_EYECOLOUR_L                 = ::WID_SCMF_EYECOLOUR_L,                 ///< Eyecolour left.
+		WID_SCMF_EYECOLOUR                   = ::WID_SCMF_EYECOLOUR,                   ///< Eyecolour.
+		WID_SCMF_EYECOLOUR_R                 = ::WID_SCMF_EYECOLOUR_R,                 ///< Eyecolour right.
+		WID_SCMF_CHIN_L                      = ::WID_SCMF_CHIN_L,                      ///< Chin left.
+		WID_SCMF_CHIN                        = ::WID_SCMF_CHIN,                        ///< Chin.
+		WID_SCMF_CHIN_R                      = ::WID_SCMF_CHIN_R,                      ///< Chin right.
+		WID_SCMF_EYEBROWS_L                  = ::WID_SCMF_EYEBROWS_L,                  ///< Eyebrows left.
+		WID_SCMF_EYEBROWS                    = ::WID_SCMF_EYEBROWS,                    ///< Eyebrows.
+		WID_SCMF_EYEBROWS_R                  = ::WID_SCMF_EYEBROWS_R,                  ///< Eyebrows right.
+		WID_SCMF_LIPS_MOUSTACHE_L            = ::WID_SCMF_LIPS_MOUSTACHE_L,            ///< Lips / Moustache left.
+		WID_SCMF_LIPS_MOUSTACHE              = ::WID_SCMF_LIPS_MOUSTACHE,              ///< Lips / Moustache.
+		WID_SCMF_LIPS_MOUSTACHE_R            = ::WID_SCMF_LIPS_MOUSTACHE_R,            ///< Lips / Moustache right.
+		WID_SCMF_NOSE_L                      = ::WID_SCMF_NOSE_L,                      ///< Nose left.
+		WID_SCMF_NOSE                        = ::WID_SCMF_NOSE,                        ///< Nose.
+		WID_SCMF_NOSE_R                      = ::WID_SCMF_NOSE_R,                      ///< Nose right.
+		WID_SCMF_HAIR_L                      = ::WID_SCMF_HAIR_L,                      ///< Hair left.
+		WID_SCMF_HAIR                        = ::WID_SCMF_HAIR,                        ///< Hair.
+		WID_SCMF_HAIR_R                      = ::WID_SCMF_HAIR_R,                      ///< Hair right.
+		WID_SCMF_JACKET_L                    = ::WID_SCMF_JACKET_L,                    ///< Jacket left.
+		WID_SCMF_JACKET                      = ::WID_SCMF_JACKET,                      ///< Jacket.
+		WID_SCMF_JACKET_R                    = ::WID_SCMF_JACKET_R,                    ///< Jacket right.
+		WID_SCMF_COLLAR_L                    = ::WID_SCMF_COLLAR_L,                    ///< Collar left.
+		WID_SCMF_COLLAR                      = ::WID_SCMF_COLLAR,                      ///< Collar.
+		WID_SCMF_COLLAR_R                    = ::WID_SCMF_COLLAR_R,                    ///< Collar right.
+		WID_SCMF_TIE_EARRING_L               = ::WID_SCMF_TIE_EARRING_L,               ///< Tie / Earring left.
+		WID_SCMF_TIE_EARRING                 = ::WID_SCMF_TIE_EARRING,                 ///< Tie / Earring.
+		WID_SCMF_TIE_EARRING_R               = ::WID_SCMF_TIE_EARRING_R,               ///< Tie / Earring right.
+		WID_SCMF_GLASSES_L                   = ::WID_SCMF_GLASSES_L,                   ///< Glasses left.
+		WID_SCMF_GLASSES                     = ::WID_SCMF_GLASSES,                     ///< Glasses.
+		WID_SCMF_GLASSES_R                   = ::WID_SCMF_GLASSES_R,                   ///< Glasses right.
+	};
+
+	/** Widgets of the #CompanyInfrastructureWindow class. */
+	enum CompanyInfrastructureWidgets {
+		WID_CI_CAPTION                       = ::WID_CI_CAPTION,                       ///< Caption of window.
+		WID_CI_RAIL_DESC                     = ::WID_CI_RAIL_DESC,                     ///< Description of rail.
+		WID_CI_RAIL_COUNT                    = ::WID_CI_RAIL_COUNT,                    ///< Count of rail.
+		WID_CI_ROAD_DESC                     = ::WID_CI_ROAD_DESC,                     ///< Description of road.
+		WID_CI_ROAD_COUNT                    = ::WID_CI_ROAD_COUNT,                    ///< Count of road.
+		WID_CI_WATER_DESC                    = ::WID_CI_WATER_DESC,                    ///< Description of water.
+		WID_CI_WATER_COUNT                   = ::WID_CI_WATER_COUNT,                   ///< Count of water.
+		WID_CI_STATION_DESC                  = ::WID_CI_STATION_DESC,                  ///< Description of station.
+		WID_CI_STATION_COUNT                 = ::WID_CI_STATION_COUNT,                 ///< Count of station.
+		WID_CI_TOTAL_DESC                    = ::WID_CI_TOTAL_DESC,                    ///< Description of total.
+		WID_CI_TOTAL                         = ::WID_CI_TOTAL,                         ///< Count of total.
+	};
+
+	/** Widgets of the #BuyCompanyWindow class. */
+	enum BuyCompanyWidgets {
+		WID_BC_CAPTION                       = ::WID_BC_CAPTION,                       ///< Caption of window.
+		WID_BC_FACE                          = ::WID_BC_FACE,                          ///< Face button.
+		WID_BC_QUESTION                      = ::WID_BC_QUESTION,                      ///< Question text.
+		WID_BC_NO                            = ::WID_BC_NO,                            ///< No button.
+		WID_BC_YES                           = ::WID_BC_YES,                           ///< Yes button.
+	};
+
+	/** Widgets of the #IConsoleWindow class. */
+	enum ConsoleWidgets {
+		WID_C_BACKGROUND                     = ::WID_C_BACKGROUND,                     ///< Background of the console.
+	};
+
+	/** Widgets of the #SetDateWindow class. */
+	enum SetDateWidgets {
+		WID_SD_DAY                           = ::WID_SD_DAY,                           ///< Dropdown for the day.
+		WID_SD_MONTH                         = ::WID_SD_MONTH,                         ///< Dropdown for the month.
+		WID_SD_YEAR                          = ::WID_SD_YEAR,                          ///< Dropdown for the year.
+		WID_SD_SET_DATE                      = ::WID_SD_SET_DATE,                      ///< Actually set the date.
+	};
+
+	/** Widgets of the #DepotWindow class. */
+	enum DepotWidgets {
+		WID_D_CAPTION                        = ::WID_D_CAPTION,                        ///< Caption of window.
+		WID_D_SELL                           = ::WID_D_SELL,                           ///< Sell button.
+		WID_D_SHOW_SELL_CHAIN                = ::WID_D_SHOW_SELL_CHAIN,                ///< Show sell chain panel.
+		WID_D_SELL_CHAIN                     = ::WID_D_SELL_CHAIN,                     ///< Sell chain button.
+		WID_D_SELL_ALL                       = ::WID_D_SELL_ALL,                       ///< Sell all button.
+		WID_D_AUTOREPLACE                    = ::WID_D_AUTOREPLACE,                    ///< Autoreplace button.
+		WID_D_MATRIX                         = ::WID_D_MATRIX,                         ///< Matrix of vehicles.
+		WID_D_V_SCROLL                       = ::WID_D_V_SCROLL,                       ///< Vertical scrollbar.
+		WID_D_SHOW_H_SCROLL                  = ::WID_D_SHOW_H_SCROLL,                  ///< Show horizontal scrollbar panel.
+		WID_D_H_SCROLL                       = ::WID_D_H_SCROLL,                       ///< Horizontal scrollbar.
+		WID_D_BUILD                          = ::WID_D_BUILD,                          ///< Build button.
+		WID_D_CLONE                          = ::WID_D_CLONE,                          ///< Clone button.
+		WID_D_LOCATION                       = ::WID_D_LOCATION,                       ///< Location button.
+		WID_D_SHOW_RENAME                    = ::WID_D_SHOW_RENAME,                    ///< Show rename panel.
+		WID_D_RENAME                         = ::WID_D_RENAME,                         ///< Rename button.
+		WID_D_VEHICLE_LIST                   = ::WID_D_VEHICLE_LIST,                   ///< List of vehicles.
+		WID_D_STOP_ALL                       = ::WID_D_STOP_ALL,                       ///< Stop all button.
+		WID_D_START_ALL                      = ::WID_D_START_ALL,                      ///< Start all button.
+	};
+
+	/** Widgets of the #BuildDocksDepotWindow class. */
+	enum BuildDockDepotWidgets {
+		WID_BDD_BACKGROUND                   = ::WID_BDD_BACKGROUND,                   ///< Background of the window.
+		WID_BDD_X                            = ::WID_BDD_X,                            ///< X-direction button.
+		WID_BDD_Y                            = ::WID_BDD_Y,                            ///< Y-direction button.
+	};
+
+	/** Widgets of the #BuildDocksToolbarWindow class. */
+	enum DockToolbarWidgets {
+		WID_DT_CANAL                         = ::WID_DT_CANAL,                         ///< Build canal button.
+		WID_DT_LOCK                          = ::WID_DT_LOCK,                          ///< Build lock button.
+		WID_DT_DEMOLISH                      = ::WID_DT_DEMOLISH,                      ///< Demolish aka dynamite button.
+		WID_DT_DEPOT                         = ::WID_DT_DEPOT,                         ///< Build depot button.
+		WID_DT_STATION                       = ::WID_DT_STATION,                       ///< Build station button.
+		WID_DT_BUOY                          = ::WID_DT_BUOY,                          ///< Build buoy button.
+		WID_DT_RIVER                         = ::WID_DT_RIVER,                         ///< Build river button (in scenario editor).
+		WID_DT_BUILD_AQUEDUCT                = ::WID_DT_BUILD_AQUEDUCT,                ///< Build aqueduct button.
+		WID_DT_INVALID                       = ::WID_DT_INVALID,                       ///< Used to initialize a variable.
+	};
+
+	/** Widgets of the #DropdownWindow class. */
+	enum DropdownMenuWidgets {
+		WID_DM_ITEMS                         = ::WID_DM_ITEMS,                         ///< Panel showing the dropdown items.
+		WID_DM_SHOW_SCROLL                   = ::WID_DM_SHOW_SCROLL,                   ///< Hide scrollbar if too few items.
+		WID_DM_SCROLL                        = ::WID_DM_SCROLL,                        ///< Scrollbar.
+	};
+
+	/** Widgets of the #EnginePreviewWindow class. */
+	enum EnginePreviewWidgets {
+		WID_EP_QUESTION                      = ::WID_EP_QUESTION,                      ///< The container for the question.
+		WID_EP_NO                            = ::WID_EP_NO,                            ///< No button.
+		WID_EP_YES                           = ::WID_EP_YES,                           ///< Yes button.
+	};
+
+	/** Widgets of the #ErrmsgWindow class. */
+	enum ErrorMessageWidgets {
+		WID_EM_CAPTION                       = ::WID_EM_CAPTION,                       ///< Caption of the window.
+		WID_EM_FACE                          = ::WID_EM_FACE,                          ///< Error title.
+		WID_EM_MESSAGE                       = ::WID_EM_MESSAGE,                       ///< Error message.
+	};
+
+	/** Widgets of the #SaveLoadWindow class. */
+	enum SaveLoadWidgets {
+		WID_SL_CAPTION                       = ::WID_SL_CAPTION,                       ///< Caption of the window.
+		WID_SL_SORT_BYNAME                   = ::WID_SL_SORT_BYNAME,                   ///< Sort by name button.
+		WID_SL_SORT_BYDATE                   = ::WID_SL_SORT_BYDATE,                   ///< Sort by date button.
+		WID_SL_BACKGROUND                    = ::WID_SL_BACKGROUND,                    ///< Background of window.
+		WID_SL_FILE_BACKGROUND               = ::WID_SL_FILE_BACKGROUND,               ///< Background of file selection.
+		WID_SL_HOME_BUTTON                   = ::WID_SL_HOME_BUTTON,                   ///< Home button.
+		WID_SL_DRIVES_DIRECTORIES_LIST       = ::WID_SL_DRIVES_DIRECTORIES_LIST,       ///< Drives list.
+		WID_SL_SCROLLBAR                     = ::WID_SL_SCROLLBAR,                     ///< Scrollbar of the file list.
+		WID_SL_CONTENT_DOWNLOAD              = ::WID_SL_CONTENT_DOWNLOAD,              ///< Content download button, only available for play scenario/heightmap.
+		WID_SL_SAVE_OSK_TITLE                = ::WID_SL_SAVE_OSK_TITLE,                ///< Title textbox, only available for save operations.
+		WID_SL_DELETE_SELECTION              = ::WID_SL_DELETE_SELECTION,              ///< Delete button, only available for save operations.
+		WID_SL_SAVE_GAME                     = ::WID_SL_SAVE_GAME,                     ///< Save button, only available for save operations.
+		WID_SL_CONTENT_DOWNLOAD_SEL          = ::WID_SL_CONTENT_DOWNLOAD_SEL,          ///< Selection 'stack' to 'hide' the content download.
+		WID_SL_DETAILS                       = ::WID_SL_DETAILS,                       ///< Panel with game details.
+		WID_SL_NEWGRF_INFO                   = ::WID_SL_NEWGRF_INFO,                   ///< Button to open NewGgrf configuration.
+		WID_SL_LOAD_BUTTON                   = ::WID_SL_LOAD_BUTTON,                   ///< Button to load game/scenario.
+		WID_SL_MISSING_NEWGRFS               = ::WID_SL_MISSING_NEWGRFS,               ///< Button to find missing NewGRFs online.
+	};
+
+	/** Widgets of the #GenerateLandscapeWindow class. */
+	enum GenerateLandscapeWidgets {
+		WID_GL_TEMPERATE                     = ::WID_GL_TEMPERATE,                     ///< Button with icon "Temperate".
+		WID_GL_ARCTIC                        = ::WID_GL_ARCTIC,                        ///< Button with icon "Arctic".
+		WID_GL_TROPICAL                      = ::WID_GL_TROPICAL,                      ///< Button with icon "Tropical".
+		WID_GL_TOYLAND                       = ::WID_GL_TOYLAND,                       ///< Button with icon "Toyland".
+		WID_GL_MAPSIZE_X_PULLDOWN            = ::WID_GL_MAPSIZE_X_PULLDOWN,            ///< Dropdown 'map X size'.
+		WID_GL_MAPSIZE_Y_PULLDOWN            = ::WID_GL_MAPSIZE_Y_PULLDOWN,            ///< Dropdown 'map Y size'.
+		WID_GL_TOWN_PULLDOWN                 = ::WID_GL_TOWN_PULLDOWN,                 ///< Dropdown 'No. of towns'.
+		WID_GL_INDUSTRY_PULLDOWN             = ::WID_GL_INDUSTRY_PULLDOWN,             ///< Dropdown 'No. of industries'.
+		WID_GL_RANDOM_EDITBOX                = ::WID_GL_RANDOM_EDITBOX,                ///< 'Random seed' editbox.
+		WID_GL_RANDOM_BUTTON                 = ::WID_GL_RANDOM_BUTTON,                 ///< 'Randomise' button.
+		WID_GL_GENERATE_BUTTON               = ::WID_GL_GENERATE_BUTTON,               ///< 'Generate' button.
+		WID_GL_START_DATE_DOWN               = ::WID_GL_START_DATE_DOWN,               ///< Decrease start year.
+		WID_GL_START_DATE_TEXT               = ::WID_GL_START_DATE_TEXT,               ///< Start year.
+		WID_GL_START_DATE_UP                 = ::WID_GL_START_DATE_UP,                 ///< Increase start year.
+		WID_GL_SNOW_LEVEL_DOWN               = ::WID_GL_SNOW_LEVEL_DOWN,               ///< Decrease snow level.
+		WID_GL_SNOW_LEVEL_TEXT               = ::WID_GL_SNOW_LEVEL_TEXT,               ///< Snow level.
+		WID_GL_SNOW_LEVEL_UP                 = ::WID_GL_SNOW_LEVEL_UP,                 ///< Increase snow level.
+		WID_GL_TREE_PULLDOWN                 = ::WID_GL_TREE_PULLDOWN,                 ///< Dropdown 'Tree algorithm'.
+		WID_GL_LANDSCAPE_PULLDOWN            = ::WID_GL_LANDSCAPE_PULLDOWN,            ///< Dropdown 'Land generator'.
+		WID_GL_HEIGHTMAP_NAME_TEXT           = ::WID_GL_HEIGHTMAP_NAME_TEXT,           ///< Heightmap name.
+		WID_GL_HEIGHTMAP_SIZE_TEXT           = ::WID_GL_HEIGHTMAP_SIZE_TEXT,           ///< Size of heightmap.
+		WID_GL_HEIGHTMAP_ROTATION_PULLDOWN   = ::WID_GL_HEIGHTMAP_ROTATION_PULLDOWN,   ///< Dropdown 'Heightmap rotation'.
+		WID_GL_TERRAIN_PULLDOWN              = ::WID_GL_TERRAIN_PULLDOWN,              ///< Dropdown 'Terrain type'.
+		WID_GL_WATER_PULLDOWN                = ::WID_GL_WATER_PULLDOWN,                ///< Dropdown 'Sea level'.
+		WID_GL_RIVER_PULLDOWN                = ::WID_GL_RIVER_PULLDOWN,                ///< Dropdown 'Rivers'.
+		WID_GL_SMOOTHNESS_PULLDOWN           = ::WID_GL_SMOOTHNESS_PULLDOWN,           ///< Dropdown 'Smoothness'.
+		WID_GL_VARIETY_PULLDOWN              = ::WID_GL_VARIETY_PULLDOWN,              ///< Dropdown 'Variety distribution'.
+		WID_GL_BORDERS_RANDOM                = ::WID_GL_BORDERS_RANDOM,                ///< 'Random'/'Manual' borders.
+		WID_GL_WATER_NW                      = ::WID_GL_WATER_NW,                      ///< NW 'Water'/'Freeform'.
+		WID_GL_WATER_NE                      = ::WID_GL_WATER_NE,                      ///< NE 'Water'/'Freeform'.
+		WID_GL_WATER_SE                      = ::WID_GL_WATER_SE,                      ///< SE 'Water'/'Freeform'.
+		WID_GL_WATER_SW                      = ::WID_GL_WATER_SW,                      ///< SW 'Water'/'Freeform'.
+	};
+
+	/** Widgets of the #CreateScenarioWindow class. */
+	enum CreateScenarioWidgets {
+		WID_CS_TEMPERATE                     = ::WID_CS_TEMPERATE,                     ///< Select temperate landscape style.
+		WID_CS_ARCTIC                        = ::WID_CS_ARCTIC,                        ///< Select arctic landscape style.
+		WID_CS_TROPICAL                      = ::WID_CS_TROPICAL,                      ///< Select tropical landscape style.
+		WID_CS_TOYLAND                       = ::WID_CS_TOYLAND,                       ///< Select toy-land landscape style.
+		WID_CS_EMPTY_WORLD                   = ::WID_CS_EMPTY_WORLD,                   ///< Generate an empty flat world.
+		WID_CS_RANDOM_WORLD                  = ::WID_CS_RANDOM_WORLD,                  ///< Generate random land button
+		WID_CS_MAPSIZE_X_PULLDOWN            = ::WID_CS_MAPSIZE_X_PULLDOWN,            ///< Pull-down arrow for x map size.
+		WID_CS_MAPSIZE_Y_PULLDOWN            = ::WID_CS_MAPSIZE_Y_PULLDOWN,            ///< Pull-down arrow for y map size.
+		WID_CS_START_DATE_DOWN               = ::WID_CS_START_DATE_DOWN,               ///< Decrease start year (start earlier).
+		WID_CS_START_DATE_TEXT               = ::WID_CS_START_DATE_TEXT,               ///< Clickable start date value.
+		WID_CS_START_DATE_UP                 = ::WID_CS_START_DATE_UP,                 ///< Increase start year (start later).
+		WID_CS_FLAT_LAND_HEIGHT_DOWN         = ::WID_CS_FLAT_LAND_HEIGHT_DOWN,         ///< Decrease flat land height.
+		WID_CS_FLAT_LAND_HEIGHT_TEXT         = ::WID_CS_FLAT_LAND_HEIGHT_TEXT,         ///< Clickable flat land height value.
+		WID_CS_FLAT_LAND_HEIGHT_UP           = ::WID_CS_FLAT_LAND_HEIGHT_UP,           ///< Increase flat land height.
+	};
+
+	/** Widgets of the #GenerateProgressWindow class. */
+	enum GenerationProgressWidgets {
+		WID_GP_PROGRESS_BAR                  = ::WID_GP_PROGRESS_BAR,                  ///< Progress bar.
+		WID_GP_PROGRESS_TEXT                 = ::WID_GP_PROGRESS_TEXT,                 ///< Text with the progress bar.
+		WID_GP_ABORT                         = ::WID_GP_ABORT,                         ///< Abort button.
+	};
+
+	/** Widgets of the #GoalListWindow class. */
+	enum GoalListWidgets {
+		WID_GL_PANEL                         = ::WID_GL_PANEL,                         ///< Panel of the window.
+		WID_GL_SCROLLBAR                     = ::WID_GL_SCROLLBAR,                     ///< Scrollbar of the panel.
+	};
+
+	/** Widgets of the #GraphLegendWindow class. */
+	enum GraphLegendWidgets {
+		WID_GL_BACKGROUND                    = ::WID_GL_BACKGROUND,                    ///< Background of the window.
+		WID_GL_FIRST_COMPANY                 = ::WID_GL_FIRST_COMPANY,                 ///< First company in the legend.
+		WID_GL_LAST_COMPANY                  = ::WID_GL_LAST_COMPANY,                  ///< Last company in the legend.
+	};
+
+	/** Widgets of the #OperatingProfitGraphWindow class, #IncomeGraphWindow class, #DeliveredCargoGraphWindow class, and #CompanyValueGraphWindow class. */
+	enum CompanyValueWidgets {
+		WID_CV_KEY_BUTTON                    = ::WID_CV_KEY_BUTTON,                    ///< Key button.
+		WID_CV_BACKGROUND                    = ::WID_CV_BACKGROUND,                    ///< Background of the window.
+		WID_CV_GRAPH                         = ::WID_CV_GRAPH,                         ///< Graph itself.
+		WID_CV_RESIZE                        = ::WID_CV_RESIZE,                        ///< Resize button.
+	};
+
+	/** Widget of the #PerformanceHistoryGraphWindow class. */
+	enum PerformanceHistoryGraphWidgets {
+		WID_PHG_KEY                          = ::WID_PHG_KEY,                          ///< Key button.
+		WID_PHG_DETAILED_PERFORMANCE         = ::WID_PHG_DETAILED_PERFORMANCE,         ///< Detailed performance.
+		WID_PHG_BACKGROUND                   = ::WID_PHG_BACKGROUND,                   ///< Background of the window.
+		WID_PHG_GRAPH                        = ::WID_PHG_GRAPH,                        ///< Graph itself.
+		WID_PHG_RESIZE                       = ::WID_PHG_RESIZE,                       ///< Resize button.
+	};
+
+	/** Widget of the #PaymentRatesGraphWindow class. */
+	enum CargoPaymentRatesWidgets {
+		WID_CPR_BACKGROUND                   = ::WID_CPR_BACKGROUND,                   ///< Background of the window.
+		WID_CPR_HEADER                       = ::WID_CPR_HEADER,                       ///< Header.
+		WID_CPR_GRAPH                        = ::WID_CPR_GRAPH,                        ///< Graph itself.
+		WID_CPR_RESIZE                       = ::WID_CPR_RESIZE,                       ///< Resize button.
+		WID_CPR_FOOTER                       = ::WID_CPR_FOOTER,                       ///< Footer.
+		WID_CPR_ENABLE_CARGOES               = ::WID_CPR_ENABLE_CARGOES,               ///< Enable cargoes button.
+		WID_CPR_DISABLE_CARGOES              = ::WID_CPR_DISABLE_CARGOES,              ///< Disable cargoes button.
+		WID_CPR_CARGO_FIRST                  = ::WID_CPR_CARGO_FIRST,                  ///< First cargo in the list.
+	};
+
+	/** Widget of the #CompanyLeagueWindow class. */
+	enum CompanyLeagueWidgets {
+		WID_CL_BACKGROUND                    = ::WID_CL_BACKGROUND,                    ///< Background of the window.
+	};
+
+	/** Widget of the #PerformanceRatingDetailWindow class. */
+	enum PerformanceRatingDetailsWidgets {
+		WID_PRD_SCORE_FIRST                  = ::WID_PRD_SCORE_FIRST,                  ///< First entry in the score list.
+		WID_PRD_SCORE_LAST                   = ::WID_PRD_SCORE_LAST,                   ///< Last entry in the score list.
+		WID_PRD_COMPANY_FIRST                = ::WID_PRD_COMPANY_FIRST,                ///< First company.
+		WID_PRD_COMPANY_LAST                 = ::WID_PRD_COMPANY_LAST,                 ///< Last company.
+	};
+
+	/** Widgets of the #VehicleGroupWindow class. */
+	enum GroupListWidgets {
+		WID_GL_CAPTION                       = ::WID_GL_CAPTION,                       ///< Caption of the window.
+		WID_GL_SORT_BY_ORDER                 = ::WID_GL_SORT_BY_ORDER,                 ///< Sort order.
+		WID_GL_SORT_BY_DROPDOWN              = ::WID_GL_SORT_BY_DROPDOWN,              ///< Sort by dropdown list.
+		WID_GL_LIST_VEHICLE                  = ::WID_GL_LIST_VEHICLE,                  ///< List of the vehicles.
+		WID_GL_LIST_VEHICLE_SCROLLBAR        = ::WID_GL_LIST_VEHICLE_SCROLLBAR,        ///< Scrollbar for the list.
+		WID_GL_AVAILABLE_VEHICLES            = ::WID_GL_AVAILABLE_VEHICLES,            ///< Available vehicles.
+		WID_GL_MANAGE_VEHICLES_DROPDOWN      = ::WID_GL_MANAGE_VEHICLES_DROPDOWN,      ///< Manage vehicles dropdown list.
+		WID_GL_STOP_ALL                      = ::WID_GL_STOP_ALL,                      ///< Stop all button.
+		WID_GL_START_ALL                     = ::WID_GL_START_ALL,                     ///< Start all button.
+		WID_GL_ALL_VEHICLES                  = ::WID_GL_ALL_VEHICLES,                  ///< All vehicles entry.
+		WID_GL_DEFAULT_VEHICLES              = ::WID_GL_DEFAULT_VEHICLES,              ///< Default vehicles entry.
+		WID_GL_LIST_GROUP                    = ::WID_GL_LIST_GROUP,                    ///< List of the groups.
+		WID_GL_LIST_GROUP_SCROLLBAR          = ::WID_GL_LIST_GROUP_SCROLLBAR,          ///< Scrollbar for the list.
+		WID_GL_CREATE_GROUP                  = ::WID_GL_CREATE_GROUP,                  ///< Create group button.
+		WID_GL_DELETE_GROUP                  = ::WID_GL_DELETE_GROUP,                  ///< Delete group button.
+		WID_GL_RENAME_GROUP                  = ::WID_GL_RENAME_GROUP,                  ///< Rename group button.
+		WID_GL_REPLACE_PROTECTION            = ::WID_GL_REPLACE_PROTECTION,            ///< Replace protection button.
+	};
+
+	/** Widgets of the #EndGameHighScoreBaseWindow class and #HighScoreWindow class. */
+	enum HighscoreWidgets {
+		WID_H_BACKGROUND                     = ::WID_H_BACKGROUND,                     ///< Background of the window.
+	};
+
+	/** Widgets of the #BuildIndustryWindow class. */
+	enum DynamicPlaceIndustriesWidgets {
+		WID_DPI_MATRIX_WIDGET                = ::WID_DPI_MATRIX_WIDGET,                ///< Matrix of the industries.
+		WID_DPI_SCROLLBAR                    = ::WID_DPI_SCROLLBAR,                    ///< Scrollbar of the matrix.
+		WID_DPI_INFOPANEL                    = ::WID_DPI_INFOPANEL,                    ///< Info panel about the industry.
+		WID_DPI_DISPLAY_WIDGET               = ::WID_DPI_DISPLAY_WIDGET,               ///< Display chain button.
+		WID_DPI_FUND_WIDGET                  = ::WID_DPI_FUND_WIDGET,                  ///< Fund button.
+	};
+
+	/** Widgets of the #IndustryViewWindow class. */
+	enum IndustryViewWidgets {
+		WID_IV_CAPTION                       = ::WID_IV_CAPTION,                       ///< Caption of the window.
+		WID_IV_VIEWPORT                      = ::WID_IV_VIEWPORT,                      ///< Viewport of the industry.
+		WID_IV_INFO                          = ::WID_IV_INFO,                          ///< Info of the industry.
+		WID_IV_GOTO                          = ::WID_IV_GOTO,                          ///< Goto button.
+		WID_IV_DISPLAY                       = ::WID_IV_DISPLAY,                       ///< Display chain button.
+	};
+
+	/** Widgets of the #IndustryDirectoryWindow class. */
+	enum IndustryDirectoryWidgets {
+		WID_ID_DROPDOWN_ORDER                = ::WID_ID_DROPDOWN_ORDER,                ///< Dropdown for the order of the sort.
+		WID_ID_DROPDOWN_CRITERIA             = ::WID_ID_DROPDOWN_CRITERIA,             ///< Dropdown for the criteria of the sort.
+		WID_ID_INDUSTRY_LIST                 = ::WID_ID_INDUSTRY_LIST,                 ///< Industry list.
+		WID_ID_SCROLLBAR                     = ::WID_ID_SCROLLBAR,                     ///< Scrollbar of the list.
+	};
+
+	/** Widgets of the #IndustryCargoesWindow class */
+	enum IndustryCargoesWidgets {
+		WID_IC_CAPTION                       = ::WID_IC_CAPTION,                       ///< Caption of the window.
+		WID_IC_NOTIFY                        = ::WID_IC_NOTIFY,                        ///< Row of buttons at the bottom.
+		WID_IC_PANEL                         = ::WID_IC_PANEL,                         ///< Panel that shows the chain.
+		WID_IC_SCROLLBAR                     = ::WID_IC_SCROLLBAR,                     ///< Scrollbar of the panel.
+	};
+
+	/** Widgets of the #SelectGameWindow class. */
+	enum SelectGameIntroWidgets {
+		WID_SGI_GENERATE_GAME                = ::WID_SGI_GENERATE_GAME,                ///< Generate game button.
+		WID_SGI_LOAD_GAME                    = ::WID_SGI_LOAD_GAME,                    ///< Load game button.
+		WID_SGI_PLAY_SCENARIO                = ::WID_SGI_PLAY_SCENARIO,                ///< Play scenario button.
+		WID_SGI_PLAY_HEIGHTMAP               = ::WID_SGI_PLAY_HEIGHTMAP,               ///< Play heightmap button.
+		WID_SGI_EDIT_SCENARIO                = ::WID_SGI_EDIT_SCENARIO,                ///< Edit scenario button.
+		WID_SGI_PLAY_NETWORK                 = ::WID_SGI_PLAY_NETWORK,                 ///< Play network button.
+		WID_SGI_TEMPERATE_LANDSCAPE          = ::WID_SGI_TEMPERATE_LANDSCAPE,          ///< Select temperate landscape button.
+		WID_SGI_ARCTIC_LANDSCAPE             = ::WID_SGI_ARCTIC_LANDSCAPE,             ///< Select arctic landscape button.
+		WID_SGI_TROPIC_LANDSCAPE             = ::WID_SGI_TROPIC_LANDSCAPE,             ///< Select tropic landscape button.
+		WID_SGI_TOYLAND_LANDSCAPE            = ::WID_SGI_TOYLAND_LANDSCAPE,            ///< Select toyland landscape button.
+		WID_SGI_TRANSLATION_SELECTION        = ::WID_SGI_TRANSLATION_SELECTION,        ///< Translation selection.
+		WID_SGI_TRANSLATION                  = ::WID_SGI_TRANSLATION,                  ///< Translation.
+		WID_SGI_OPTIONS                      = ::WID_SGI_OPTIONS,                      ///< Options button.
+		WID_SGI_DIFFICULTIES                 = ::WID_SGI_DIFFICULTIES,                 ///< Difficulties button.
+		WID_SGI_SETTINGS_OPTIONS             = ::WID_SGI_SETTINGS_OPTIONS,             ///< Settings button.
+		WID_SGI_GRF_SETTINGS                 = ::WID_SGI_GRF_SETTINGS,                 ///< NewGRF button.
+		WID_SGI_CONTENT_DOWNLOAD             = ::WID_SGI_CONTENT_DOWNLOAD,             ///< Content Download button.
+		WID_SGI_AI_SETTINGS                  = ::WID_SGI_AI_SETTINGS,                  ///< AI button.
+		WID_SGI_EXIT                         = ::WID_SGI_EXIT,                         ///< Exit button.
+	};
+
+	/** Widgets of the #MainWindow class. */
+	enum MainWidgets {
+		WID_M_VIEWPORT                       = ::WID_M_VIEWPORT,                       ///< Main window viewport.
+	};
+
+	/** Widgets of the #LandInfoWindow class. */
+	enum LandInfoWidgets {
+		WID_LI_BACKGROUND                    = ::WID_LI_BACKGROUND,                    ///< Background of the window.
+	};
+
+	/** Widgets of the #TooltipsWindow class. */
+	enum ToolTipsWidgets {
+		WID_TT_BACKGROUND                    = ::WID_TT_BACKGROUND,                    ///< Background of the window.
+	};
+
+	/** Widgets of the #AboutWindow class. */
+	enum AboutWidgets {
+		WID_A_SCROLLING_TEXT                 = ::WID_A_SCROLLING_TEXT,                 ///< The actually scrolling text.
+		WID_A_WEBSITE                        = ::WID_A_WEBSITE,                        ///< URL of OpenTTD website.
+	};
+
+	/** Widgets of the #QueryStringWindow class. */
+	enum QueryStringWidgets {
+		WID_QS_CAPTION                       = ::WID_QS_CAPTION,                       ///< Caption of the window.
+		WID_QS_TEXT                          = ::WID_QS_TEXT,                          ///< Text of the query.
+		WID_QS_DEFAULT                       = ::WID_QS_DEFAULT,                       ///< Default button.
+		WID_QS_CANCEL                        = ::WID_QS_CANCEL,                        ///< Cancel button.
+		WID_QS_OK                            = ::WID_QS_OK,                            ///< OK button.
+	};
+
+	/** Widgets of the #QueryWindow class. */
+	enum QueryWidgets {
+		WID_Q_CAPTION                        = ::WID_Q_CAPTION,                        ///< Caption of the window.
+		WID_Q_TEXT                           = ::WID_Q_TEXT,                           ///< Text of the query.
+		WID_Q_NO                             = ::WID_Q_NO,                             ///< Yes button.
+		WID_Q_YES                            = ::WID_Q_YES,                            ///< No button.
+	};
+
+	/** Widgets of the #MusicTrackSelectionWindow class. */
+	enum MusicTrackSelectionWidgets {
+		WID_MTS_LIST_LEFT                    = ::WID_MTS_LIST_LEFT,                    ///< Left button.
+		WID_MTS_PLAYLIST                     = ::WID_MTS_PLAYLIST,                     ///< Playlist.
+		WID_MTS_LIST_RIGHT                   = ::WID_MTS_LIST_RIGHT,                   ///< Right button.
+		WID_MTS_ALL                          = ::WID_MTS_ALL,                          ///< All button.
+		WID_MTS_OLD                          = ::WID_MTS_OLD,                          ///< Old button.
+		WID_MTS_NEW                          = ::WID_MTS_NEW,                          ///< New button.
+		WID_MTS_EZY                          = ::WID_MTS_EZY,                          ///< Ezy button.
+		WID_MTS_CUSTOM1                      = ::WID_MTS_CUSTOM1,                      ///< Custom1 button.
+		WID_MTS_CUSTOM2                      = ::WID_MTS_CUSTOM2,                      ///< Custom2 button.
+		WID_MTS_CLEAR                        = ::WID_MTS_CLEAR,                        ///< Clear button.
+	};
+
+	/** Widgets of the #MusicWindow class. */
+	enum MusicWidgets {
+		WID_M_PREV                           = ::WID_M_PREV,                           ///< Previous button.
+		WID_M_NEXT                           = ::WID_M_NEXT,                           ///< Next button.
+		WID_M_STOP                           = ::WID_M_STOP,                           ///< Stop button.
+		WID_M_PLAY                           = ::WID_M_PLAY,                           ///< Play button.
+		WID_M_SLIDERS                        = ::WID_M_SLIDERS,                        ///< Sliders.
+		WID_M_MUSIC_VOL                      = ::WID_M_MUSIC_VOL,                      ///< Music volume.
+		WID_M_EFFECT_VOL                     = ::WID_M_EFFECT_VOL,                     ///< Effect volume.
+		WID_M_BACKGROUND                     = ::WID_M_BACKGROUND,                     ///< Background of the window.
+		WID_M_TRACK                          = ::WID_M_TRACK,                          ///< Track playing.
+		WID_M_TRACK_NR                       = ::WID_M_TRACK_NR,                       ///< Track number.
+		WID_M_TRACK_TITLE                    = ::WID_M_TRACK_TITLE,                    ///< Track title.
+		WID_M_TRACK_NAME                     = ::WID_M_TRACK_NAME,                     ///< Track name.
+		WID_M_SHUFFLE                        = ::WID_M_SHUFFLE,                        ///< Shuffle button.
+		WID_M_PROGRAMME                      = ::WID_M_PROGRAMME,                      ///< Program button.
+		WID_M_ALL                            = ::WID_M_ALL,                            ///< All button.
+		WID_M_OLD                            = ::WID_M_OLD,                            ///< Old button.
+		WID_M_NEW                            = ::WID_M_NEW,                            ///< New button.
+		WID_M_EZY                            = ::WID_M_EZY,                            ///< Ezy button.
+		WID_M_CUSTOM1                        = ::WID_M_CUSTOM1,                        ///< Custom1 button.
+		WID_M_CUSTOM2                        = ::WID_M_CUSTOM2,                        ///< Custom2 button.
+	};
+
+	/** Widgets of the #NetworkChatWindow class. */
+	enum NetWorkChatWidgets {
+		WID_NC_CLOSE                         = ::WID_NC_CLOSE,                         ///< Close button.
+		WID_NC_BACKGROUND                    = ::WID_NC_BACKGROUND,                    ///< Background of the window.
+		WID_NC_DESTINATION                   = ::WID_NC_DESTINATION,                   ///< Destination.
+		WID_NC_TEXTBOX                       = ::WID_NC_TEXTBOX,                       ///< Textbox.
+		WID_NC_SENDBUTTON                    = ::WID_NC_SENDBUTTON,                    ///< Send button.
+	};
+
+	/** Widgets of the #NetworkContentDownloadStatusWindow class. */
+	enum NetworkContentDownloadStatusWidgets {
+		WID_NCDS_BACKGROUND                  = ::WID_NCDS_BACKGROUND,                  ///< Background of the window.
+		WID_NCDS_CANCELOK                    = ::WID_NCDS_CANCELOK,                    ///< (Optional) Cancel/OK button.
+	};
+
+	/** Widgets of the #NetworkContentListWindow class. */
+	enum NetworkContentListWidgets {
+		WID_NCL_BACKGROUND                   = ::WID_NCL_BACKGROUND,                   ///< Resize button.
+		WID_NCL_FILTER_CAPT                  = ::WID_NCL_FILTER_CAPT,                  ///< Caption for the filter editbox.
+		WID_NCL_FILTER                       = ::WID_NCL_FILTER,                       ///< Filter editbox.
+		WID_NCL_CHECKBOX                     = ::WID_NCL_CHECKBOX,                     ///< Button above checkboxes.
+		WID_NCL_TYPE                         = ::WID_NCL_TYPE,                         ///< 'Type' button.
+		WID_NCL_NAME                         = ::WID_NCL_NAME,                         ///< 'Name' button.
+		WID_NCL_MATRIX                       = ::WID_NCL_MATRIX,                       ///< Panel with list of content.
+		WID_NCL_SCROLLBAR                    = ::WID_NCL_SCROLLBAR,                    ///< Scrollbar of matrix.
+		WID_NCL_DETAILS                      = ::WID_NCL_DETAILS,                      ///< Panel with content details.
+		WID_NCL_SELECT_ALL                   = ::WID_NCL_SELECT_ALL,                   ///< 'Select all' button.
+		WID_NCL_SELECT_UPDATE                = ::WID_NCL_SELECT_UPDATE,                ///< 'Select updates' button.
+		WID_NCL_UNSELECT                     = ::WID_NCL_UNSELECT,                     ///< 'Unselect all' button.
+		WID_NCL_OPEN_URL                     = ::WID_NCL_OPEN_URL,                     ///< 'Open url' button.
+		WID_NCL_CANCEL                       = ::WID_NCL_CANCEL,                       ///< 'Cancel' button.
+		WID_NCL_DOWNLOAD                     = ::WID_NCL_DOWNLOAD,                     ///< 'Download' button.
+		WID_NCL_SEL_ALL_UPDATE               = ::WID_NCL_SEL_ALL_UPDATE,               ///< #NWID_SELECTION widget for select all/update buttons..
+	};
+
+	/** Widgets of the #NetworkGameWindow class. */
+	enum NetworkGameWidgets {
+		WID_NG_MAIN                          = ::WID_NG_MAIN,                          ///< Main panel.
+		WID_NG_CONNECTION                    = ::WID_NG_CONNECTION,                    ///< Label in front of connection droplist.
+		WID_NG_CONN_BTN                      = ::WID_NG_CONN_BTN,                      ///< 'Connection' droplist button.
+		WID_NG_CLIENT_LABEL                  = ::WID_NG_CLIENT_LABEL,                  ///< Label in front of client name edit box.
+		WID_NG_CLIENT                        = ::WID_NG_CLIENT,                        ///< Panel with editbox to set client name.
+		WID_NG_HEADER                        = ::WID_NG_HEADER,                        ///< Header container of the matrix.
+		WID_NG_NAME                          = ::WID_NG_NAME,                          ///< 'Name' button.
+		WID_NG_CLIENTS                       = ::WID_NG_CLIENTS,                       ///< 'Clients' button.
+		WID_NG_MAPSIZE                       = ::WID_NG_MAPSIZE,                       ///< 'Map size' button.
+		WID_NG_DATE                          = ::WID_NG_DATE,                          ///< 'Date' button.
+		WID_NG_YEARS                         = ::WID_NG_YEARS,                         ///< 'Years' button.
+		WID_NG_INFO                          = ::WID_NG_INFO,                          ///< Third button in the game list panel.
+		WID_NG_MATRIX                        = ::WID_NG_MATRIX,                        ///< Panel with list of games.
+		WID_NG_SCROLLBAR                     = ::WID_NG_SCROLLBAR,                     ///< Scrollbar of matrix.
+		WID_NG_LASTJOINED_LABEL              = ::WID_NG_LASTJOINED_LABEL,              ///< Label "Last joined server:".
+		WID_NG_LASTJOINED                    = ::WID_NG_LASTJOINED,                    ///< Info about the last joined server.
+		WID_NG_LASTJOINED_SPACER             = ::WID_NG_LASTJOINED_SPACER,             ///< Spacer after last joined server panel.
+		WID_NG_DETAILS                       = ::WID_NG_DETAILS,                       ///< Panel with game details.
+		WID_NG_DETAILS_SPACER                = ::WID_NG_DETAILS_SPACER,                ///< Spacer for game actual details.
+		WID_NG_JOIN                          = ::WID_NG_JOIN,                          ///< 'Join game' button.
+		WID_NG_REFRESH                       = ::WID_NG_REFRESH,                       ///< 'Refresh server' button.
+		WID_NG_NEWGRF                        = ::WID_NG_NEWGRF,                        ///< 'NewGRF Settings' button.
+		WID_NG_NEWGRF_SEL                    = ::WID_NG_NEWGRF_SEL,                    ///< Selection 'widget' to hide the NewGRF settings.
+		WID_NG_NEWGRF_MISSING                = ::WID_NG_NEWGRF_MISSING,                ///< 'Find missing NewGRF online' button.
+		WID_NG_NEWGRF_MISSING_SEL            = ::WID_NG_NEWGRF_MISSING_SEL,            ///< Selection widget for the above button.
+		WID_NG_FIND                          = ::WID_NG_FIND,                          ///< 'Find server' button.
+		WID_NG_ADD                           = ::WID_NG_ADD,                           ///< 'Add server' button.
+		WID_NG_START                         = ::WID_NG_START,                         ///< 'Start server' button.
+		WID_NG_CANCEL                        = ::WID_NG_CANCEL,                        ///< 'Cancel' button.
+	};
+
+	/** Widgets of the #NetworkStartServerWindow class. */
+	enum NetworkStartServerWidgets {
+		WID_NSS_BACKGROUND                   = ::WID_NSS_BACKGROUND,                   ///< Background of the window.
+		WID_NSS_GAMENAME_LABEL               = ::WID_NSS_GAMENAME_LABEL,               ///< Label for the game name.
+		WID_NSS_GAMENAME                     = ::WID_NSS_GAMENAME,                     ///< Background for editbox to set game name.
+		WID_NSS_SETPWD                       = ::WID_NSS_SETPWD,                       ///< 'Set password' button.
+		WID_NSS_CONNTYPE_LABEL               = ::WID_NSS_CONNTYPE_LABEL,               ///< Label for 'connection type'.
+		WID_NSS_CONNTYPE_BTN                 = ::WID_NSS_CONNTYPE_BTN,                 ///< 'Connection type' droplist button.
+		WID_NSS_CLIENTS_LABEL                = ::WID_NSS_CLIENTS_LABEL,                ///< Label for 'max clients'.
+		WID_NSS_CLIENTS_BTND                 = ::WID_NSS_CLIENTS_BTND,                 ///< 'Max clients' downarrow.
+		WID_NSS_CLIENTS_TXT                  = ::WID_NSS_CLIENTS_TXT,                  ///< 'Max clients' text.
+		WID_NSS_CLIENTS_BTNU                 = ::WID_NSS_CLIENTS_BTNU,                 ///< 'Max clients' uparrow.
+		WID_NSS_COMPANIES_LABEL              = ::WID_NSS_COMPANIES_LABEL,              ///< Label for 'max companies'.
+		WID_NSS_COMPANIES_BTND               = ::WID_NSS_COMPANIES_BTND,               ///< 'Max companies' downarrow.
+		WID_NSS_COMPANIES_TXT                = ::WID_NSS_COMPANIES_TXT,                ///< 'Max companies' text.
+		WID_NSS_COMPANIES_BTNU               = ::WID_NSS_COMPANIES_BTNU,               ///< 'Max companies' uparrow.
+		WID_NSS_SPECTATORS_LABEL             = ::WID_NSS_SPECTATORS_LABEL,             ///< Label for 'max spectators'.
+		WID_NSS_SPECTATORS_BTND              = ::WID_NSS_SPECTATORS_BTND,              ///< 'Max spectators' downarrow.
+		WID_NSS_SPECTATORS_TXT               = ::WID_NSS_SPECTATORS_TXT,               ///< 'Max spectators' text.
+		WID_NSS_SPECTATORS_BTNU              = ::WID_NSS_SPECTATORS_BTNU,              ///< 'Max spectators' uparrow.
+		WID_NSS_LANGUAGE_LABEL               = ::WID_NSS_LANGUAGE_LABEL,               ///< Label for 'language spoken'.
+		WID_NSS_LANGUAGE_BTN                 = ::WID_NSS_LANGUAGE_BTN,                 ///< 'Language spoken' droplist button.
+		WID_NSS_GENERATE_GAME                = ::WID_NSS_GENERATE_GAME,                ///< New game button.
+		WID_NSS_LOAD_GAME                    = ::WID_NSS_LOAD_GAME,                    ///< Load game button.
+		WID_NSS_PLAY_SCENARIO                = ::WID_NSS_PLAY_SCENARIO,                ///< Play scenario button.
+		WID_NSS_PLAY_HEIGHTMAP               = ::WID_NSS_PLAY_HEIGHTMAP,               ///< Play heightmap button.
+		WID_NSS_CANCEL                       = ::WID_NSS_CANCEL,                       ///< 'Cancel' button.
+	};
+
+	/** Widgets of the #NetworkLobbyWindow class. */
+	enum NetworkLobbyWidgets {
+		WID_NL_BACKGROUND                    = ::WID_NL_BACKGROUND,                    ///< Background of the window.
+		WID_NL_TEXT                          = ::WID_NL_TEXT,                          ///< Heading text.
+		WID_NL_HEADER                        = ::WID_NL_HEADER,                        ///< Header above list of companies.
+		WID_NL_MATRIX                        = ::WID_NL_MATRIX,                        ///< List of companies.
+		WID_NL_SCROLLBAR                     = ::WID_NL_SCROLLBAR,                     ///< Scroll bar.
+		WID_NL_DETAILS                       = ::WID_NL_DETAILS,                       ///< Company details.
+		WID_NL_JOIN                          = ::WID_NL_JOIN,                          ///< 'Join company' button.
+		WID_NL_NEW                           = ::WID_NL_NEW,                           ///< 'New company' button.
+		WID_NL_SPECTATE                      = ::WID_NL_SPECTATE,                      ///< 'Spectate game' button.
+		WID_NL_REFRESH                       = ::WID_NL_REFRESH,                       ///< 'Refresh server' button.
+		WID_NL_CANCEL                        = ::WID_NL_CANCEL,                        ///< 'Cancel' button.
+	};
+
+	/** Widgets of the #NetworkClientListWindow class. */
+	enum ClientListWidgets {
+		WID_CL_PANEL                         = ::WID_CL_PANEL,                         ///< Panel of the window.
+	};
+
+	/** Widgets of the #NetworkClientListPopupWindow class. */
+	enum ClientListPopupWidgets {
+		WID_CLP_PANEL                        = ::WID_CLP_PANEL,                        ///< Panel of the window.
+	};
+
+	/** Widgets of the #NetworkJoinStatusWindow class. */
+	enum NetworkJoinStatusWidgets {
+		WID_NJS_BACKGROUND                   = ::WID_NJS_BACKGROUND,                   ///< Background of the window.
+		WID_NJS_CANCELOK                     = ::WID_NJS_CANCELOK,                     ///< Cancel / OK button.
+	};
+
+	/** Widgets of the #NetworkCompanyPasswordWindow class. */
+	enum NetworkCompanyPasswordWidgets {
+		WID_NCP_BACKGROUND                   = ::WID_NCP_BACKGROUND,                   ///< Background of the window.
+		WID_NCP_LABEL                        = ::WID_NCP_LABEL,                        ///< Label in front of the password field.
+		WID_NCP_PASSWORD                     = ::WID_NCP_PASSWORD,                     ///< Input field for the password.
+		WID_NCP_SAVE_AS_DEFAULT_PASSWORD     = ::WID_NCP_SAVE_AS_DEFAULT_PASSWORD,     ///< Toggle 'button' for saving the current password as default password.
+		WID_NCP_CANCEL                       = ::WID_NCP_CANCEL,                       ///< Close the window without changing anything.
+		WID_NCP_OK                           = ::WID_NCP_OK,                           ///< Safe the password etc.
+	};
+
+	/** Widgets of the #NewGRFInspectWindow class. */
+	enum NewGRFInspectWidgets {
+		WID_NGRFI_CAPTION                    = ::WID_NGRFI_CAPTION,                    ///< The caption bar of course.
+		WID_NGRFI_PARENT                     = ::WID_NGRFI_PARENT,                     ///< Inspect the parent.
+		WID_NGRFI_MAINPANEL                  = ::WID_NGRFI_MAINPANEL,                  ///< Panel widget containing the actual data.
+		WID_NGRFI_SCROLLBAR                  = ::WID_NGRFI_SCROLLBAR,                  ///< Scrollbar.
+	};
+
+	/** Widgets of the #SpriteAlignerWindow class. */
+	enum SpriteAlignerWidgets {
+		WID_SA_CAPTION                       = ::WID_SA_CAPTION,                       ///< Caption of the window.
+		WID_SA_PREVIOUS                      = ::WID_SA_PREVIOUS,                      ///< Skip to the previous sprite.
+		WID_SA_GOTO                          = ::WID_SA_GOTO,                          ///< Go to a given sprite.
+		WID_SA_NEXT                          = ::WID_SA_NEXT,                          ///< Skip to the next sprite.
+		WID_SA_UP                            = ::WID_SA_UP,                            ///< Move the sprite up.
+		WID_SA_LEFT                          = ::WID_SA_LEFT,                          ///< Move the sprite to the left.
+		WID_SA_RIGHT                         = ::WID_SA_RIGHT,                         ///< Move the sprite to the right.
+		WID_SA_DOWN                          = ::WID_SA_DOWN,                          ///< Move the sprite down.
+		WID_SA_SPRITE                        = ::WID_SA_SPRITE,                        ///< The actual sprite.
+		WID_SA_OFFSETS                       = ::WID_SA_OFFSETS,                       ///< The sprite offsets.
+		WID_SA_PICKER                        = ::WID_SA_PICKER,                        ///< Sprite picker.
+		WID_SA_LIST                          = ::WID_SA_LIST,                          ///< Queried sprite list.
+		WID_SA_SCROLLBAR                     = ::WID_SA_SCROLLBAR,                     ///< Scrollbar for sprite list.
+	};
+
+	/** Widgets of the #NewGRFParametersWindow class. */
+	enum NewGRFParametersWidgets {
+		WID_NP_SHOW_NUMPAR                   = ::WID_NP_SHOW_NUMPAR,                   ///< #NWID_SELECTION to optionally display #WID_NP_NUMPAR.
+		WID_NP_NUMPAR_DEC                    = ::WID_NP_NUMPAR_DEC,                    ///< Button to decrease number of parameters.
+		WID_NP_NUMPAR_INC                    = ::WID_NP_NUMPAR_INC,                    ///< Button to increase number of parameters.
+		WID_NP_NUMPAR                        = ::WID_NP_NUMPAR,                        ///< Optional number of parameters.
+		WID_NP_NUMPAR_TEXT                   = ::WID_NP_NUMPAR_TEXT,                   ///< Text description.
+		WID_NP_BACKGROUND                    = ::WID_NP_BACKGROUND,                    ///< Panel to draw the settings on.
+		WID_NP_SCROLLBAR                     = ::WID_NP_SCROLLBAR,                     ///< Scrollbar to scroll through all settings.
+		WID_NP_ACCEPT                        = ::WID_NP_ACCEPT,                        ///< Accept button.
+		WID_NP_RESET                         = ::WID_NP_RESET,                         ///< Reset button.
+		WID_NP_SHOW_DESCRIPTION              = ::WID_NP_SHOW_DESCRIPTION,              ///< #NWID_SELECTION to optionally display parameter descriptions.
+		WID_NP_DESCRIPTION                   = ::WID_NP_DESCRIPTION,                   ///< Multi-line description of a parameter.
+	};
+
+	/** Widgets of the #NewGRFTextfileWindow class. */
+	enum NewGRFTextfileWidgets {
+		WID_NT_CAPTION                       = ::WID_NT_CAPTION,                       ///< The caption of the window.
+		WID_NT_BACKGROUND                    = ::WID_NT_BACKGROUND,                    ///< Panel to draw the textfile on.
+		WID_NT_VSCROLLBAR                    = ::WID_NT_VSCROLLBAR,                    ///< Vertical scrollbar to scroll through the textfile up-and-down.
+		WID_NT_HSCROLLBAR                    = ::WID_NT_HSCROLLBAR,                    ///< Horizontal scrollbar to scroll through the textfile left-to-right.
+	};
+
+	/** Widgets of the #NewGRFWindow class. */
+	enum NewGRFStateWidgets {
+		WID_NS_PRESET_LIST                   = ::WID_NS_PRESET_LIST,                   ///< Active NewGRF preset.
+		WID_NS_PRESET_SAVE                   = ::WID_NS_PRESET_SAVE,                   ///< Save list of active NewGRFs as presets.
+		WID_NS_PRESET_DELETE                 = ::WID_NS_PRESET_DELETE,                 ///< Delete active preset.
+		WID_NS_ADD                           = ::WID_NS_ADD,                           ///< Add NewGRF to active list.
+		WID_NS_REMOVE                        = ::WID_NS_REMOVE,                        ///< Remove NewGRF from active list.
+		WID_NS_MOVE_UP                       = ::WID_NS_MOVE_UP,                       ///< Move NewGRF up in active list.
+		WID_NS_MOVE_DOWN                     = ::WID_NS_MOVE_DOWN,                     ///< Move NewGRF down in active list.
+		WID_NS_FILTER                        = ::WID_NS_FILTER,                        ///< Filter list of available NewGRFs.
+		WID_NS_FILE_LIST                     = ::WID_NS_FILE_LIST,                     ///< List window of active NewGRFs.
+		WID_NS_SCROLLBAR                     = ::WID_NS_SCROLLBAR,                     ///< Scrollbar for active NewGRF list.
+		WID_NS_AVAIL_LIST                    = ::WID_NS_AVAIL_LIST,                    ///< List window of available NewGRFs.
+		WID_NS_SCROLL2BAR                    = ::WID_NS_SCROLL2BAR,                    ///< Scrollbar for available NewGRF list.
+		WID_NS_NEWGRF_INFO_TITLE             = ::WID_NS_NEWGRF_INFO_TITLE,             ///< Title for Info on selected NewGRF.
+		WID_NS_NEWGRF_INFO                   = ::WID_NS_NEWGRF_INFO,                   ///< Panel for Info on selected NewGRF.
+		WID_NS_OPEN_URL                      = ::WID_NS_OPEN_URL,                      ///< Open URL of NewGRF.
+		WID_NS_NEWGRF_TEXTFILE               = ::WID_NS_NEWGRF_TEXTFILE,               ///< Open NewGRF readme, changelog (+1) or license (+2).
+		WID_NS_SET_PARAMETERS                = ::WID_NS_SET_PARAMETERS,                ///< Open Parameters Window for selected, active NewGRF.
+		WID_NS_TOGGLE_PALETTE                = ::WID_NS_TOGGLE_PALETTE,                ///< Toggle Palette of selected, active NewGRF.
+		WID_NS_APPLY_CHANGES                 = ::WID_NS_APPLY_CHANGES,                 ///< Apply changes to NewGRF config.
+		WID_NS_RESCAN_FILES                  = ::WID_NS_RESCAN_FILES,                  ///< Rescan files (available NewGRFs).
+		WID_NS_RESCAN_FILES2                 = ::WID_NS_RESCAN_FILES2,                 ///< Rescan files (active NewGRFs).
+		WID_NS_CONTENT_DOWNLOAD              = ::WID_NS_CONTENT_DOWNLOAD,              ///< Open content download (available NewGRFs).
+		WID_NS_CONTENT_DOWNLOAD2             = ::WID_NS_CONTENT_DOWNLOAD2,             ///< Open content download (active NewGRFs).
+		WID_NS_SHOW_REMOVE                   = ::WID_NS_SHOW_REMOVE,                   ///< Select active list buttons (0 = normal, 1 = simple layout).
+		WID_NS_SHOW_APPLY                    = ::WID_NS_SHOW_APPLY,                    ///< Select display of the buttons below the 'details'.
+	};
+
+	/** Widgets of the #ScanProgressWindow class. */
+	enum ScanProgressWidgets {
+		WID_SP_PROGRESS_BAR                  = ::WID_SP_PROGRESS_BAR,                  ///< Simple progress bar.
+		WID_SP_PROGRESS_TEXT                 = ::WID_SP_PROGRESS_TEXT,                 ///< Text explaining what is happening.
+	};
+
+	/** Widgets of the #NewsWindow class. */
+	enum NewsWidgets {
+		WID_N_PANEL                          = ::WID_N_PANEL,                          ///< Panel of the window.
+		WID_N_TITLE                          = ::WID_N_TITLE,                          ///< Title of the company news.
+		WID_N_HEADLINE                       = ::WID_N_HEADLINE,                       ///< The news headline.
+		WID_N_CLOSEBOX                       = ::WID_N_CLOSEBOX,                       ///< Close the window.
+		WID_N_DATE                           = ::WID_N_DATE,                           ///< Date of the news item.
+		WID_N_CAPTION                        = ::WID_N_CAPTION,                        ///< Title bar of the window. Only used in small news items.
+		WID_N_INSET                          = ::WID_N_INSET,                          ///< Inset around the viewport in the window. Only used in small news items.
+		WID_N_VIEWPORT                       = ::WID_N_VIEWPORT,                       ///< Viewport in the window.
+		WID_N_COMPANY_MSG                    = ::WID_N_COMPANY_MSG,                    ///< Message in company news items.
+		WID_N_MESSAGE                        = ::WID_N_MESSAGE,                        ///< Space for displaying the message. Only used in small news items.
+		WID_N_MGR_FACE                       = ::WID_N_MGR_FACE,                       ///< Face of the manager.
+		WID_N_MGR_NAME                       = ::WID_N_MGR_NAME,                       ///< Name of the manager.
+		WID_N_VEH_TITLE                      = ::WID_N_VEH_TITLE,                      ///< Vehicle new title.
+		WID_N_VEH_BKGND                      = ::WID_N_VEH_BKGND,                      ///< Dark background of new vehicle news.
+		WID_N_VEH_NAME                       = ::WID_N_VEH_NAME,                       ///< Name of the new vehicle.
+		WID_N_VEH_SPR                        = ::WID_N_VEH_SPR,                        ///< Graphical display of the new vehicle.
+		WID_N_VEH_INFO                       = ::WID_N_VEH_INFO,                       ///< Some technical data of the new vehicle.
+	};
+
+	/** Widgets of the #MessageHistoryWindow class. */
+	enum MessageHistoryWidgets {
+		WID_MH_STICKYBOX                     = ::WID_MH_STICKYBOX,                     ///< Stickybox.
+		WID_MH_BACKGROUND                    = ::WID_MH_BACKGROUND,                    ///< Background of the window.
+		WID_MH_SCROLLBAR                     = ::WID_MH_SCROLLBAR,                     ///< Scrollbar for the list.
+	};
+
+	/** Widgets of the #MessageOptionsWindow class. */
+	enum MessageOptionWidgets {
+		WID_MO_BACKGROUND                    = ::WID_MO_BACKGROUND,                    ///< Background of the window.
+		WID_MO_LABEL                         = ::WID_MO_LABEL,                         ///< Top label.
+		WID_MO_DROP_SUMMARY                  = ::WID_MO_DROP_SUMMARY,                  ///< Dropdown that adjusts at once the level for all settings.
+		WID_MO_LABEL_SUMMARY                 = ::WID_MO_LABEL_SUMMARY,                 ///< Label of the summary drop down.
+		WID_MO_SOUNDTICKER                   = ::WID_MO_SOUNDTICKER,                   ///< Button for (de)activating sound on events.
+		WID_MO_SOUNDTICKER_LABEL             = ::WID_MO_SOUNDTICKER_LABEL,             ///< Label of the soundticker button.
+		WID_MO_START_OPTION                  = ::WID_MO_START_OPTION,                  ///< First widget that is part of a group [<][label][>] [description].
+		WID_MO_END_OPTION                    = ::WID_MO_END_OPTION,                    ///< First widget after the groups.
+	};
+
+	/** Widgets of the #BuildObjectWindow class. */
+	enum BuildObjectWidgets {
+		WID_BO_CLASS_LIST                    = ::WID_BO_CLASS_LIST,                    ///< The list with classes.
+		WID_BO_SCROLLBAR                     = ::WID_BO_SCROLLBAR,                     ///< The scrollbar associated with the list.
+		WID_BO_OBJECT_MATRIX                 = ::WID_BO_OBJECT_MATRIX,                 ///< The matrix with preview sprites.
+		WID_BO_OBJECT_SPRITE                 = ::WID_BO_OBJECT_SPRITE,                 ///< A preview sprite of the object.
+		WID_BO_OBJECT_SIZE                   = ::WID_BO_OBJECT_SIZE,                   ///< The size of an object.
+		WID_BO_INFO                          = ::WID_BO_INFO,                          ///< Other information about the object (from the NewGRF).
+		WID_BO_SELECT_MATRIX                 = ::WID_BO_SELECT_MATRIX,                 ///< Selection preview matrix of objects of a given class.
+		WID_BO_SELECT_IMAGE                  = ::WID_BO_SELECT_IMAGE,                  ///< Preview image in the #WID_BO_SELECT_MATRIX.
+		WID_BO_SELECT_SCROLL                 = ::WID_BO_SELECT_SCROLL,                 ///< Scrollbar next to the #WID_BO_SELECT_MATRIX.
+	};
+
+	/** Widgets of the #OrdersWindow class. */
+	enum OrderWidgets {
+		WID_O_CAPTION                        = ::WID_O_CAPTION,                        ///< Caption of the window.
+		WID_O_TIMETABLE_VIEW                 = ::WID_O_TIMETABLE_VIEW,                 ///< Toggle timetable view.
+		WID_O_ORDER_LIST                     = ::WID_O_ORDER_LIST,                     ///< Order list panel.
+		WID_O_SCROLLBAR                      = ::WID_O_SCROLLBAR,                      ///< Order list scrollbar.
+		WID_O_SKIP                           = ::WID_O_SKIP,                           ///< Skip current order.
+		WID_O_DELETE                         = ::WID_O_DELETE,                         ///< Delete selected order.
+		WID_O_STOP_SHARING                   = ::WID_O_STOP_SHARING,                   ///< Stop sharing orders.
+		WID_O_NON_STOP                       = ::WID_O_NON_STOP,                       ///< Goto non-stop to destination.
+		WID_O_GOTO                           = ::WID_O_GOTO,                           ///< Goto destination.
+		WID_O_FULL_LOAD                      = ::WID_O_FULL_LOAD,                      ///< Select full load.
+		WID_O_UNLOAD                         = ::WID_O_UNLOAD,                         ///< Select unload.
+		WID_O_REFIT                          = ::WID_O_REFIT,                          ///< Select refit.
+		WID_O_SERVICE                        = ::WID_O_SERVICE,                        ///< Select service (at depot).
+		WID_O_EMPTY                          = ::WID_O_EMPTY,                          ///< Placeholder for refit dropdown when not owner.
+		WID_O_REFIT_DROPDOWN                 = ::WID_O_REFIT_DROPDOWN,                 ///< Open refit options.
+		WID_O_COND_VARIABLE                  = ::WID_O_COND_VARIABLE,                  ///< Choose condition variable.
+		WID_O_COND_COMPARATOR                = ::WID_O_COND_COMPARATOR,                ///< Choose condition type.
+		WID_O_COND_VALUE                     = ::WID_O_COND_VALUE,                     ///< Choose condition value.
+		WID_O_SEL_TOP_LEFT                   = ::WID_O_SEL_TOP_LEFT,                   ///< #NWID_SELECTION widget for left part of the top row of the 'your train' order window.
+		WID_O_SEL_TOP_MIDDLE                 = ::WID_O_SEL_TOP_MIDDLE,                 ///< #NWID_SELECTION widget for middle part of the top row of the 'your train' order window.
+		WID_O_SEL_TOP_RIGHT                  = ::WID_O_SEL_TOP_RIGHT,                  ///< #NWID_SELECTION widget for right part of the top row of the 'your train' order window.
+		WID_O_SEL_TOP_ROW_GROUNDVEHICLE      = ::WID_O_SEL_TOP_ROW_GROUNDVEHICLE,      ///< #NWID_SELECTION widget for the top row of the 'your train' order window.
+		WID_O_SEL_TOP_ROW                    = ::WID_O_SEL_TOP_ROW,                    ///< #NWID_SELECTION widget for the top row of the 'your non-trains' order window.
+		WID_O_SEL_BOTTOM_MIDDLE              = ::WID_O_SEL_BOTTOM_MIDDLE,              ///< #NWID_SELECTION widget for the middle part of the bottom row of the 'your train' order window.
+		WID_O_SHARED_ORDER_LIST              = ::WID_O_SHARED_ORDER_LIST,              ///< Open list of shared vehicles.
+	};
+
+	/** Widgets of the #OskWindow class. */
+	enum OnScreenKeyboardWidgets {
+		WID_OSK_CAPTION                      = ::WID_OSK_CAPTION,                      ///< Caption of window.
+		WID_OSK_TEXT                         = ::WID_OSK_TEXT,                         ///< Edit box.
+		WID_OSK_CANCEL                       = ::WID_OSK_CANCEL,                       ///< Cancel key.
+		WID_OSK_OK                           = ::WID_OSK_OK,                           ///< Ok key.
+		WID_OSK_BACKSPACE                    = ::WID_OSK_BACKSPACE,                    ///< Backspace key.
+		WID_OSK_SPECIAL                      = ::WID_OSK_SPECIAL,                      ///< Special key (at keyborads often used for tab key).
+		WID_OSK_CAPS                         = ::WID_OSK_CAPS,                         ///< Capslock key.
+		WID_OSK_SHIFT                        = ::WID_OSK_SHIFT,                        ///< Shift(lock) key.
+		WID_OSK_SPACE                        = ::WID_OSK_SPACE,                        ///< Space bar.
+		WID_OSK_LEFT                         = ::WID_OSK_LEFT,                         ///< Cursor left key.
+		WID_OSK_RIGHT                        = ::WID_OSK_RIGHT,                        ///< Cursor right key.
+		WID_OSK_LETTERS                      = ::WID_OSK_LETTERS,                      ///< First widget of the 'normal' keys.
+		WID_OSK_NUMBERS_FIRST                = ::WID_OSK_NUMBERS_FIRST,                ///< First widget of the numbers row.
+		WID_OSK_NUMBERS_LAST                 = ::WID_OSK_NUMBERS_LAST,                 ///< Last widget of the numbers row.
+		WID_OSK_QWERTY_FIRST                 = ::WID_OSK_QWERTY_FIRST,                 ///< First widget of the qwerty row.
+		WID_OSK_QWERTY_LAST                  = ::WID_OSK_QWERTY_LAST,                  ///< Last widget of the qwerty row.
+		WID_OSK_ASDFG_FIRST                  = ::WID_OSK_ASDFG_FIRST,                  ///< First widget of the asdfg row.
+		WID_OSK_ASDFG_LAST                   = ::WID_OSK_ASDFG_LAST,                   ///< Last widget of the asdfg row.
+		WID_OSK_ZXCVB_FIRST                  = ::WID_OSK_ZXCVB_FIRST,                  ///< First widget of the zxcvb row.
+		WID_OSK_ZXCVB_LAST                   = ::WID_OSK_ZXCVB_LAST,                   ///< Last widget of the zxcvb row.
+	};
+
+	/** Widgets of the #BuildRailToolbarWindow ckass. */
+	enum RailToolbarWidgets {
+		WID_RAT_CAPTION                      = ::WID_RAT_CAPTION,                      ///< Caption of the window.
+		WID_RAT_BUILD_NS                     = ::WID_RAT_BUILD_NS,                     ///< Build rail along the game view Y axis.
+		WID_RAT_BUILD_X                      = ::WID_RAT_BUILD_X,                      ///< Build rail along the game grid X axis.
+		WID_RAT_BUILD_EW                     = ::WID_RAT_BUILD_EW,                     ///< Build rail along the game view X axis.
+		WID_RAT_BUILD_Y                      = ::WID_RAT_BUILD_Y,                      ///< Build rail along the game grid Y axis.
+		WID_RAT_AUTORAIL                     = ::WID_RAT_AUTORAIL,                     ///< Autorail tool.
+		WID_RAT_DEMOLISH                     = ::WID_RAT_DEMOLISH,                     ///< Destroy something with dynamite!
+		WID_RAT_BUILD_DEPOT                  = ::WID_RAT_BUILD_DEPOT,                  ///< Build a depot.
+		WID_RAT_BUILD_WAYPOINT               = ::WID_RAT_BUILD_WAYPOINT,               ///< Build a waypoint.
+		WID_RAT_BUILD_STATION                = ::WID_RAT_BUILD_STATION,                ///< Build a station.
+		WID_RAT_BUILD_SIGNALS                = ::WID_RAT_BUILD_SIGNALS,                ///< Build signals.
+		WID_RAT_BUILD_BRIDGE                 = ::WID_RAT_BUILD_BRIDGE,                 ///< Build a bridge.
+		WID_RAT_BUILD_TUNNEL                 = ::WID_RAT_BUILD_TUNNEL,                 ///< Build a tunnel.
+		WID_RAT_REMOVE                       = ::WID_RAT_REMOVE,                       ///< Bulldozer to remove rail.
+		WID_RAT_CONVERT_RAIL                 = ::WID_RAT_CONVERT_RAIL,                 ///< Convert other rail to this type.
+	};
+
+	/** Widgets of the #BuildRailStationWindow class. */
+	enum BuildRailStationWidgets {
+		WID_BRAS_PLATFORM_DIR_X              = ::WID_BRAS_PLATFORM_DIR_X,              ///< Button to select '/' view.
+		WID_BRAS_PLATFORM_DIR_Y              = ::WID_BRAS_PLATFORM_DIR_Y,              ///< Button to select '\' view.
+		WID_BRAS_PLATFORM_NUM_1              = ::WID_BRAS_PLATFORM_NUM_1,              ///< Button to select stations with a single platform.
+		WID_BRAS_PLATFORM_NUM_2              = ::WID_BRAS_PLATFORM_NUM_2,              ///< Button to select stations with 2 platforms.
+		WID_BRAS_PLATFORM_NUM_3              = ::WID_BRAS_PLATFORM_NUM_3,              ///< Button to select stations with 3 platforms.
+		WID_BRAS_PLATFORM_NUM_4              = ::WID_BRAS_PLATFORM_NUM_4,              ///< Button to select stations with 4 platforms.
+		WID_BRAS_PLATFORM_NUM_5              = ::WID_BRAS_PLATFORM_NUM_5,              ///< Button to select stations with 5 platforms.
+		WID_BRAS_PLATFORM_NUM_6              = ::WID_BRAS_PLATFORM_NUM_6,              ///< Button to select stations with 6 platforms.
+		WID_BRAS_PLATFORM_NUM_7              = ::WID_BRAS_PLATFORM_NUM_7,              ///< Button to select stations with 7 platforms.
+		WID_BRAS_PLATFORM_LEN_1              = ::WID_BRAS_PLATFORM_LEN_1,              ///< Button to select single tile length station platforms.
+		WID_BRAS_PLATFORM_LEN_2              = ::WID_BRAS_PLATFORM_LEN_2,              ///< Button to select 2 tiles length station platforms.
+		WID_BRAS_PLATFORM_LEN_3              = ::WID_BRAS_PLATFORM_LEN_3,              ///< Button to select 3 tiles length station platforms.
+		WID_BRAS_PLATFORM_LEN_4              = ::WID_BRAS_PLATFORM_LEN_4,              ///< Button to select 4 tiles length station platforms.
+		WID_BRAS_PLATFORM_LEN_5              = ::WID_BRAS_PLATFORM_LEN_5,              ///< Button to select 5 tiles length station platforms.
+		WID_BRAS_PLATFORM_LEN_6              = ::WID_BRAS_PLATFORM_LEN_6,              ///< Button to select 6 tiles length station platforms.
+		WID_BRAS_PLATFORM_LEN_7              = ::WID_BRAS_PLATFORM_LEN_7,              ///< Button to select 7 tiles length station platforms.
+		WID_BRAS_PLATFORM_DRAG_N_DROP        = ::WID_BRAS_PLATFORM_DRAG_N_DROP,        ///< Button to enable drag and drop type station placement.
+		WID_BRAS_HIGHLIGHT_OFF               = ::WID_BRAS_HIGHLIGHT_OFF,               ///< Button for turning coverage highlighting off.
+		WID_BRAS_HIGHLIGHT_ON                = ::WID_BRAS_HIGHLIGHT_ON,                ///< Button for turning coverage highlighting on.
+		WID_BRAS_COVERAGE_TEXTS              = ::WID_BRAS_COVERAGE_TEXTS,              ///< Empty space for the coverage texts.
+		WID_BRAS_MATRIX                      = ::WID_BRAS_MATRIX,                      ///< Matrix widget displaying the available stations.
+		WID_BRAS_IMAGE                       = ::WID_BRAS_IMAGE,                       ///< Panel used at each cell of the matrix.
+		WID_BRAS_MATRIX_SCROLL               = ::WID_BRAS_MATRIX_SCROLL,               ///< Scrollbar of the matrix widget.
+		WID_BRAS_SHOW_NEWST_ADDITIONS        = ::WID_BRAS_SHOW_NEWST_ADDITIONS,        ///< Selection for newstation class selection list.
+		WID_BRAS_SHOW_NEWST_MATRIX           = ::WID_BRAS_SHOW_NEWST_MATRIX,           ///< Selection for newstation image matrix.
+		WID_BRAS_SHOW_NEWST_RESIZE           = ::WID_BRAS_SHOW_NEWST_RESIZE,           ///< Selection for panel and resize at bottom right for newstation.
+		WID_BRAS_SHOW_NEWST_TYPE             = ::WID_BRAS_SHOW_NEWST_TYPE,             ///< Display of selected station type.
+		WID_BRAS_NEWST_LIST                  = ::WID_BRAS_NEWST_LIST,                  ///< List with available newstation classes.
+		WID_BRAS_NEWST_SCROLL                = ::WID_BRAS_NEWST_SCROLL,                ///< Scrollbar of the #WID_BRAS_NEWST_LIST.
+		WID_BRAS_PLATFORM_NUM_BEGIN          = ::WID_BRAS_PLATFORM_NUM_BEGIN,          ///< Helper for determining the chosen platform width.
+		WID_BRAS_PLATFORM_LEN_BEGIN          = ::WID_BRAS_PLATFORM_LEN_BEGIN,          ///< Helper for determining the chosen platform length.
+	};
+
+	/** Widgets of the #BuildSignalWindow class. */
+	enum BuildSignalWidgets {
+		WID_BS_SEMAPHORE_NORM                = ::WID_BS_SEMAPHORE_NORM,                ///< Build a semaphore normal block signal
+		WID_BS_SEMAPHORE_ENTRY               = ::WID_BS_SEMAPHORE_ENTRY,               ///< Build a semaphore entry block signal
+		WID_BS_SEMAPHORE_EXIT                = ::WID_BS_SEMAPHORE_EXIT,                ///< Build a semaphore exit block signal
+		WID_BS_SEMAPHORE_COMBO               = ::WID_BS_SEMAPHORE_COMBO,               ///< Build a semaphore combo block signal
+		WID_BS_SEMAPHORE_PBS                 = ::WID_BS_SEMAPHORE_PBS,                 ///< Build a semaphore path signal.
+		WID_BS_SEMAPHORE_PBS_OWAY            = ::WID_BS_SEMAPHORE_PBS_OWAY,            ///< Build a semaphore one way path signal.
+		WID_BS_ELECTRIC_NORM                 = ::WID_BS_ELECTRIC_NORM,                 ///< Build an electric normal block signal
+		WID_BS_ELECTRIC_ENTRY                = ::WID_BS_ELECTRIC_ENTRY,                ///< Build an electric entry block signal
+		WID_BS_ELECTRIC_EXIT                 = ::WID_BS_ELECTRIC_EXIT,                 ///< Build an electric exit block signal
+		WID_BS_ELECTRIC_COMBO                = ::WID_BS_ELECTRIC_COMBO,                ///< Build an electric combo block signal
+		WID_BS_ELECTRIC_PBS                  = ::WID_BS_ELECTRIC_PBS,                  ///< Build an electric path signal.
+		WID_BS_ELECTRIC_PBS_OWAY             = ::WID_BS_ELECTRIC_PBS_OWAY,             ///< Build an electric one way path signal.
+		WID_BS_CONVERT                       = ::WID_BS_CONVERT,                       ///< Convert the signal.
+		WID_BS_DRAG_SIGNALS_DENSITY_LABEL    = ::WID_BS_DRAG_SIGNALS_DENSITY_LABEL,    ///< The current signal density.
+		WID_BS_DRAG_SIGNALS_DENSITY_DECREASE = ::WID_BS_DRAG_SIGNALS_DENSITY_DECREASE, ///< Decrease the signal density.
+		WID_BS_DRAG_SIGNALS_DENSITY_INCREASE = ::WID_BS_DRAG_SIGNALS_DENSITY_INCREASE, ///< Increase the signal density.
+	};
+
+	/** Widgets of the #BuildRailDepotWindow class. */
+	enum BuildRailDepotWidgets {
+		WID_BRAD_DEPOT_NE                    = ::WID_BRAD_DEPOT_NE,                    ///< Build a depot with the entrace in the north east.
+		WID_BRAD_DEPOT_SE                    = ::WID_BRAD_DEPOT_SE,                    ///< Build a depot with the entrace in the south east.
+		WID_BRAD_DEPOT_SW                    = ::WID_BRAD_DEPOT_SW,                    ///< Build a depot with the entrace in the south west.
+		WID_BRAD_DEPOT_NW                    = ::WID_BRAD_DEPOT_NW,                    ///< Build a depot with the entrace in the north west.
+	};
+
+	/** Widgets of the #BuildRailWaypointWindow class. */
+	enum BuildRailWaypointWidgets {
+		WID_BRW_WAYPOINT_MATRIX              = ::WID_BRW_WAYPOINT_MATRIX,              ///< Matrix with waypoints.
+		WID_BRW_WAYPOINT                     = ::WID_BRW_WAYPOINT,                     ///< A single waypoint.
+		WID_BRW_SCROLL                       = ::WID_BRW_SCROLL,                       ///< Scrollbar for the matrix.
+	};
+
+	/** Widgets of the #BuildRoadToolbarWindow class. */
+	enum RoadToolbarWidgets {
+		WID_ROT_ROAD_X                       = ::WID_ROT_ROAD_X,                       ///< Build road in x-direction.
+		WID_ROT_ROAD_Y                       = ::WID_ROT_ROAD_Y,                       ///< Build road in y-direction.
+		WID_ROT_AUTOROAD                     = ::WID_ROT_AUTOROAD,                     ///< Autorail.
+		WID_ROT_DEMOLISH                     = ::WID_ROT_DEMOLISH,                     ///< Demolish.
+		WID_ROT_DEPOT                        = ::WID_ROT_DEPOT,                        ///< Build depot.
+		WID_ROT_BUS_STATION                  = ::WID_ROT_BUS_STATION,                  ///< Build bus station.
+		WID_ROT_TRUCK_STATION                = ::WID_ROT_TRUCK_STATION,                ///< Build truck station.
+		WID_ROT_ONE_WAY                      = ::WID_ROT_ONE_WAY,                      ///< Build one-way road.
+		WID_ROT_BUILD_BRIDGE                 = ::WID_ROT_BUILD_BRIDGE,                 ///< Build bridge.
+		WID_ROT_BUILD_TUNNEL                 = ::WID_ROT_BUILD_TUNNEL,                 ///< Build tunnel.
+		WID_ROT_REMOVE                       = ::WID_ROT_REMOVE,                       ///< Remove road.
+	};
+
+	/** Widgets of the #BuildRoadDepotWindow class. */
+	enum BuildRoadDepotWidgets {
+		WID_BROD_CAPTION                     = ::WID_BROD_CAPTION,                     ///< Caption of the window.
+		WID_BROD_DEPOT_NE                    = ::WID_BROD_DEPOT_NE,                    ///< Depot with NE entry.
+		WID_BROD_DEPOT_SE                    = ::WID_BROD_DEPOT_SE,                    ///< Depot with SE entry.
+		WID_BROD_DEPOT_SW                    = ::WID_BROD_DEPOT_SW,                    ///< Depot with SW entry.
+		WID_BROD_DEPOT_NW                    = ::WID_BROD_DEPOT_NW,                    ///< Depot with NW entry.
+	};
+
+	/** Widgets of the #BuildRoadStationWindow class. */
+	enum BuildRoadStationWidgets {
+		WID_BROS_CAPTION                     = ::WID_BROS_CAPTION,                     ///< Caption of the window.
+		WID_BROS_BACKGROUND                  = ::WID_BROS_BACKGROUND,                  ///< Background of the window.
+		WID_BROS_STATION_NE                  = ::WID_BROS_STATION_NE,                  ///< Terminal station with NE entry.
+		WID_BROS_STATION_SE                  = ::WID_BROS_STATION_SE,                  ///< Terminal station with SE entry.
+		WID_BROS_STATION_SW                  = ::WID_BROS_STATION_SW,                  ///< Terminal station with SW entry.
+		WID_BROS_STATION_NW                  = ::WID_BROS_STATION_NW,                  ///< Terminal station with NW entry.
+		WID_BROS_STATION_X                   = ::WID_BROS_STATION_X,                   ///< Drive-through station in x-direction.
+		WID_BROS_STATION_Y                   = ::WID_BROS_STATION_Y,                   ///< Drive-through station in y-direction.
+		WID_BROS_LT_OFF                      = ::WID_BROS_LT_OFF,                      ///< Turn off area highlight.
+		WID_BROS_LT_ON                       = ::WID_BROS_LT_ON,                       ///< Turn on area highlight.
+		WID_BROS_INFO                        = ::WID_BROS_INFO,                        ///< Station acceptance info.
+	};
+
+	/** Widgets of the #GameOptionsWindow class. */
+	enum GameOptionsWidgets {
+		WID_GO_BACKGROUND                    = ::WID_GO_BACKGROUND,                    ///< Background of the window.
+		WID_GO_CURRENCY_DROPDOWN             = ::WID_GO_CURRENCY_DROPDOWN,             ///< Currency dropdown.
+		WID_GO_DISTANCE_DROPDOWN             = ::WID_GO_DISTANCE_DROPDOWN,             ///< Measuring unit dropdown.
+		WID_GO_ROADSIDE_DROPDOWN             = ::WID_GO_ROADSIDE_DROPDOWN,             ///< Dropdown to select the road side (to set the right side ;)).
+		WID_GO_TOWNNAME_DROPDOWN             = ::WID_GO_TOWNNAME_DROPDOWN,             ///< Town name dropdown.
+		WID_GO_AUTOSAVE_DROPDOWN             = ::WID_GO_AUTOSAVE_DROPDOWN,             ///< Dropdown to say how often to autosave.
+		WID_GO_LANG_DROPDOWN                 = ::WID_GO_LANG_DROPDOWN,                 ///< Language dropdown.
+		WID_GO_RESOLUTION_DROPDOWN           = ::WID_GO_RESOLUTION_DROPDOWN,           ///< Dropdown for the resolution.
+		WID_GO_FULLSCREEN_BUTTON             = ::WID_GO_FULLSCREEN_BUTTON,             ///< Toggle fullscreen.
+		WID_GO_SCREENSHOT_DROPDOWN           = ::WID_GO_SCREENSHOT_DROPDOWN,           ///< Select the screenshot type... please use PNG!.
+		WID_GO_BASE_GRF_DROPDOWN             = ::WID_GO_BASE_GRF_DROPDOWN,             ///< Use to select a base GRF.
+		WID_GO_BASE_GRF_STATUS               = ::WID_GO_BASE_GRF_STATUS,               ///< Info about missing files etc.
+		WID_GO_BASE_GRF_DESCRIPTION          = ::WID_GO_BASE_GRF_DESCRIPTION,          ///< Description of selected base GRF.
+		WID_GO_BASE_SFX_DROPDOWN             = ::WID_GO_BASE_SFX_DROPDOWN,             ///< Use to select a base SFX.
+		WID_GO_BASE_SFX_DESCRIPTION          = ::WID_GO_BASE_SFX_DESCRIPTION,          ///< Description of selected base SFX.
+		WID_GO_BASE_MUSIC_DROPDOWN           = ::WID_GO_BASE_MUSIC_DROPDOWN,           ///< Use to select a base music set.
+		WID_GO_BASE_MUSIC_STATUS             = ::WID_GO_BASE_MUSIC_STATUS,             ///< Info about corrupted files etc.
+		WID_GO_BASE_MUSIC_DESCRIPTION        = ::WID_GO_BASE_MUSIC_DESCRIPTION,        ///< Description of selected base music set.
+	};
+
+	/** Widgets of the #GameDifficultyWindow class. */
+	enum GameDifficultyWidgets {
+		WID_GD_LVL_EASY                      = ::WID_GD_LVL_EASY,                      ///< Easy level button.
+		WID_GD_LVL_MEDIUM                    = ::WID_GD_LVL_MEDIUM,                    ///< Medium level button.
+		WID_GD_LVL_HARD                      = ::WID_GD_LVL_HARD,                      ///< Hard level button.
+		WID_GD_LVL_CUSTOM                    = ::WID_GD_LVL_CUSTOM,                    ///< Custom level button.
+		WID_GD_HIGHSCORE                     = ::WID_GD_HIGHSCORE,                     ///< Highscore button.
+		WID_GD_ACCEPT                        = ::WID_GD_ACCEPT,                        ///< Accept button.
+		WID_GD_CANCEL                        = ::WID_GD_CANCEL,                        ///< Cancel button.
+		WID_GD_OPTIONS_START                 = ::WID_GD_OPTIONS_START,                 ///< Start of the options.
+	};
+
+	/** Widgets of the #GameSettingsWindow class. */
+	enum GameSettingsWidgets {
+		WID_GS_OPTIONSPANEL                  = ::WID_GS_OPTIONSPANEL,                  ///< Panel widget containing the option lists.
+		WID_GS_SCROLLBAR                     = ::WID_GS_SCROLLBAR,                     ///< Scrollbar.
+	};
+
+	/** Widgets of the #CustomCurrencyWindow class. */
+	enum CustomCurrencyWidgets {
+		WID_CC_RATE_DOWN                     = ::WID_CC_RATE_DOWN,                     ///< Down button.
+		WID_CC_RATE_UP                       = ::WID_CC_RATE_UP,                       ///< Up button.
+		WID_CC_RATE                          = ::WID_CC_RATE,                          ///< Rate of currency.
+		WID_CC_SEPARATOR_EDIT                = ::WID_CC_SEPARATOR_EDIT,                ///< Seperator edit button.
+		WID_CC_SEPARATOR                     = ::WID_CC_SEPARATOR,                     ///< Current seperator.
+		WID_CC_PREFIX_EDIT                   = ::WID_CC_PREFIX_EDIT,                   ///< Prefix edit button.
+		WID_CC_PREFIX                        = ::WID_CC_PREFIX,                        ///< Current prefix.
+		WID_CC_SUFFIX_EDIT                   = ::WID_CC_SUFFIX_EDIT,                   ///< Suffix edit button.
+		WID_CC_SUFFIX                        = ::WID_CC_SUFFIX,                        ///< Current suffix.
+		WID_CC_YEAR_DOWN                     = ::WID_CC_YEAR_DOWN,                     ///< Down button.
+		WID_CC_YEAR_UP                       = ::WID_CC_YEAR_UP,                       ///< Up button.
+		WID_CC_YEAR                          = ::WID_CC_YEAR,                          ///< Year of introduction.
+		WID_CC_PREVIEW                       = ::WID_CC_PREVIEW,                       ///< Preview.
+	};
+
+	/** Widgets of the #SignListWindow class. */
+	enum SignListWidgets {
+		WID_SIL_CAPTION                      = ::WID_SIL_CAPTION,                      ///< Caption of the window.
+		WID_SIL_LIST                         = ::WID_SIL_LIST,                         ///< List of signs.
+		WID_SIL_SCROLLBAR                    = ::WID_SIL_SCROLLBAR,                    ///< Scrollbar of list.
+		WID_SIL_FILTER_TEXT                  = ::WID_SIL_FILTER_TEXT,                  ///< Text box for typing a filter string.
+		WID_SIL_FILTER_MATCH_CASE_BTN        = ::WID_SIL_FILTER_MATCH_CASE_BTN,        ///< Button to toggle if case sensitive filtering should be used.
+		WID_SIL_FILTER_CLEAR_BTN             = ::WID_SIL_FILTER_CLEAR_BTN,             ///< Button to clear the filter.
+	};
+
+	/** Widgets of the #SignWindow class. */
+	enum QueryEditSignWidgets {
+		WID_QES_CAPTION                      = ::WID_QES_CAPTION,                      ///< Caption of the window.
+		WID_QES_TEXT                         = ::WID_QES_TEXT,                         ///< Text of the query.
+		WID_QES_OK                           = ::WID_QES_OK,                           ///< OK button.
+		WID_QES_CANCEL                       = ::WID_QES_CANCEL,                       ///< Cancel button.
+		WID_QES_DELETE                       = ::WID_QES_DELETE,                       ///< Delete button.
+		WID_QES_PREVIOUS                     = ::WID_QES_PREVIOUS,                     ///< Previous button.
+		WID_QES_NEXT                         = ::WID_QES_NEXT,                         ///< Next button.
+	};
+
+	/** Widgets of the #SmallMapWindow class. */
+	enum SmallMapWidgets {
+		WID_SM_CAPTION                       = ::WID_SM_CAPTION,                       ///< Caption of the window.
+		WID_SM_MAP_BORDER                    = ::WID_SM_MAP_BORDER,                    ///< Border around the smallmap.
+		WID_SM_MAP                           = ::WID_SM_MAP,                           ///< Panel containing the smallmap.
+		WID_SM_LEGEND                        = ::WID_SM_LEGEND,                        ///< Bottom panel to display smallmap legends.
+		WID_SM_ZOOM_IN                       = ::WID_SM_ZOOM_IN,                       ///< Button to zoom in one step.
+		WID_SM_ZOOM_OUT                      = ::WID_SM_ZOOM_OUT,                      ///< Button to zoom out one step.
+		WID_SM_CONTOUR                       = ::WID_SM_CONTOUR,                       ///< Button to select the contour view (height map).
+		WID_SM_VEHICLES                      = ::WID_SM_VEHICLES,                      ///< Button to select the vehicles view.
+		WID_SM_INDUSTRIES                    = ::WID_SM_INDUSTRIES,                    ///< Button to select the industries view.
+		WID_SM_ROUTES                        = ::WID_SM_ROUTES,                        ///< Button to select the routes view.
+		WID_SM_VEGETATION                    = ::WID_SM_VEGETATION,                    ///< Button to select the vegetation view.
+		WID_SM_OWNERS                        = ::WID_SM_OWNERS,                        ///< Button to select the owners view.
+		WID_SM_CENTERMAP                     = ::WID_SM_CENTERMAP,                     ///< Button to move smallmap center to main window center.
+		WID_SM_TOGGLETOWNNAME                = ::WID_SM_TOGGLETOWNNAME,                ///< Toggle button to display town names.
+		WID_SM_SELECT_BUTTONS                = ::WID_SM_SELECT_BUTTONS,                ///< Selection widget for the buttons present in some smallmap modes.
+		WID_SM_ENABLE_ALL                    = ::WID_SM_ENABLE_ALL,                    ///< Button to enable display of all legend entries.
+		WID_SM_DISABLE_ALL                   = ::WID_SM_DISABLE_ALL,                   ///< Button to disable display of all legend entries.
+		WID_SM_SHOW_HEIGHT                   = ::WID_SM_SHOW_HEIGHT,                   ///< Show heightmap toggle button.
+	};
+
+	/** Widgets of the #StationViewWindow class. */
+	enum StationViewWidgets {
+		WID_SV_CAPTION                       = ::WID_SV_CAPTION,                       ///< Caption of the window.
+		WID_SV_WAITING                       = ::WID_SV_WAITING,                       ///< List of waiting cargo.
+		WID_SV_SCROLLBAR                     = ::WID_SV_SCROLLBAR,                     ///< Scrollbar.
+		WID_SV_ACCEPT_RATING_LIST            = ::WID_SV_ACCEPT_RATING_LIST,            ///< List of accepted cargoes / rating of cargoes.
+		WID_SV_LOCATION                      = ::WID_SV_LOCATION,                      ///< 'Location' button.
+		WID_SV_ACCEPTS_RATINGS               = ::WID_SV_ACCEPTS_RATINGS,               ///< 'Accepts' / 'Ratings' button.
+		WID_SV_RENAME                        = ::WID_SV_RENAME,                        ///< 'Rename' button.
+		WID_SV_TRAINS                        = ::WID_SV_TRAINS,                        ///< List of scheduled trains button.
+		WID_SV_ROADVEHS                      = ::WID_SV_ROADVEHS,                      ///< List of scheduled road vehs button.
+		WID_SV_SHIPS                         = ::WID_SV_SHIPS,                         ///< List of scheduled ships button.
+		WID_SV_PLANES                        = ::WID_SV_PLANES,                        ///< List of scheduled planes button.
+	};
+
+	/** Widgets of the #CompanyStationsWindow class. */
+	enum StationListWidgets {
+		WID_STL_CAPTION                      = ::WID_STL_CAPTION,                      ///< Caption of the window.
+		WID_STL_LIST                         = ::WID_STL_LIST,                         ///< The main panel, list of stations.
+		WID_STL_SCROLLBAR                    = ::WID_STL_SCROLLBAR,                    ///< Scrollbar next to the main panel.
+		WID_STL_TRAIN                        = ::WID_STL_TRAIN,                        ///< 'TRAIN' button - list only facilities where is a railroad station.
+		WID_STL_TRUCK                        = ::WID_STL_TRUCK,                        ///< 'TRUCK' button - list only facilities where is a truck stop.
+		WID_STL_BUS                          = ::WID_STL_BUS,                          ///< 'BUS' button - list only facilities where is a bus stop.
+		WID_STL_AIRPLANE                     = ::WID_STL_AIRPLANE,                     ///< 'AIRPLANE' button - list only facilities where is an airport.
+		WID_STL_SHIP                         = ::WID_STL_SHIP,                         ///< 'SHIP' button - list only facilities where is a dock.
+		WID_STL_FACILALL                     = ::WID_STL_FACILALL,                     ///< 'ALL' button - list all facilities.
+		WID_STL_NOCARGOWAITING               = ::WID_STL_NOCARGOWAITING,               ///< 'NO' button - list stations where no cargo is waiting.
+		WID_STL_CARGOALL                     = ::WID_STL_CARGOALL,                     ///< 'ALL' button - list all stations.
+		WID_STL_SORTBY                       = ::WID_STL_SORTBY,                       ///< 'Sort by' button - reverse sort direction.
+		WID_STL_SORTDROPBTN                  = ::WID_STL_SORTDROPBTN,                  ///< Dropdown button.
+		WID_STL_CARGOSTART                   = ::WID_STL_CARGOSTART,                   ///< Widget numbers used for list of cargo types (not present in _company_stations_widgets).
+	};
+
+	/** Widgets of the #SelectStationWindow class. */
+	enum JoinStationWidgets {
+		WID_JS_CAPTION                       = ::WID_JS_CAPTION,                       // Caption of the window.
+		WID_JS_PANEL                         = ::WID_JS_PANEL,                         // Main panel.
+		WID_JS_SCROLLBAR                     = ::WID_JS_SCROLLBAR,                     // Scrollbar of the panel.
+	};
+
+	/** Widgets of the #StatusBarWindow class. */
+	enum StatusbarWidget {
+		WID_S_LEFT                           = ::WID_S_LEFT,                           ///< Left part of the statusbar; date is shown there.
+		WID_S_MIDDLE                         = ::WID_S_MIDDLE,                         ///< Middle part; current news or company name or *** SAVING *** or *** PAUSED ***.
+		WID_S_RIGHT                          = ::WID_S_RIGHT,                          ///< Right part; bank balance.
+	};
+
+	/** Widgets of the #SubsidyListWindow class. */
+	enum SubsidyListWidgets {
+		WID_SUL_PANEL                        = ::WID_SUL_PANEL,                        ///< Main panel of window.
+		WID_SUL_SCROLLBAR                    = ::WID_SUL_SCROLLBAR,                    ///< Scrollbar of panel.
+	};
+
+	/** Widgets of the #TerraformToolbarWindow class. */
+	enum TerraformToolbarWidgets {
+		WID_TT_SHOW_PLACE_OBJECT             = ::WID_TT_SHOW_PLACE_OBJECT,             ///< Should the place object button be shown?
+		WID_TT_BUTTONS_START                 = ::WID_TT_BUTTONS_START,                 ///< Start of pushable buttons.
+		WID_TT_LOWER_LAND                    = ::WID_TT_LOWER_LAND,                    ///< Lower land button.
+		WID_TT_RAISE_LAND                    = ::WID_TT_RAISE_LAND,                    ///< Raise land button.
+		WID_TT_LEVEL_LAND                    = ::WID_TT_LEVEL_LAND,                    ///< Level land button.
+		WID_TT_DEMOLISH                      = ::WID_TT_DEMOLISH,                      ///< Demolish aka dynamite button.
+		WID_TT_BUY_LAND                      = ::WID_TT_BUY_LAND,                      ///< Buy land button.
+		WID_TT_PLANT_TREES                   = ::WID_TT_PLANT_TREES,                   ///< Plant trees button (note: opens seperate window, no place-push-button).
+		WID_TT_PLACE_SIGN                    = ::WID_TT_PLACE_SIGN,                    ///< Place sign button.
+		WID_TT_PLACE_OBJECT                  = ::WID_TT_PLACE_OBJECT,                  ///< Place object button.
+	};
+
+	/** Widgets of the #ScenarioEditorLandscapeGenerationWindow class. */
+	enum EditorTerraformToolbarWidgets {
+		WID_ETT_SHOW_PLACE_DESERT            = ::WID_ETT_SHOW_PLACE_DESERT,            ///< Should the place desert button be shown?
+		WID_ETT_START                        = ::WID_ETT_START,                        ///< Used for iterations.
+		WID_ETT_DOTS                         = ::WID_ETT_DOTS,                         ///< Invisible widget for rendering the terraform size on.
+		WID_ETT_BUTTONS_START                = ::WID_ETT_BUTTONS_START,                ///< Start of pushable buttons.
+		WID_ETT_DEMOLISH                     = ::WID_ETT_DEMOLISH,                     ///< Demolish aka dynamite button.
+		WID_ETT_LOWER_LAND                   = ::WID_ETT_LOWER_LAND,                   ///< Lower land button.
+		WID_ETT_RAISE_LAND                   = ::WID_ETT_RAISE_LAND,                   ///< Raise land button.
+		WID_ETT_LEVEL_LAND                   = ::WID_ETT_LEVEL_LAND,                   ///< Level land button.
+		WID_ETT_PLACE_ROCKS                  = ::WID_ETT_PLACE_ROCKS,                  ///< Place rocks button.
+		WID_ETT_PLACE_DESERT                 = ::WID_ETT_PLACE_DESERT,                 ///< Place desert button (in tropical climate).
+		WID_ETT_PLACE_OBJECT                 = ::WID_ETT_PLACE_OBJECT,                 ///< Place transmitter button.
+		WID_ETT_BUTTONS_END                  = ::WID_ETT_BUTTONS_END,                  ///< End of pushable buttons.
+		WID_ETT_INCREASE_SIZE                = ::WID_ETT_INCREASE_SIZE,                ///< Upwards arrow button to increase terraforming size.
+		WID_ETT_DECREASE_SIZE                = ::WID_ETT_DECREASE_SIZE,                ///< Downwards arrow button to decrease terraforming size.
+		WID_ETT_NEW_SCENARIO                 = ::WID_ETT_NEW_SCENARIO,                 ///< Button for generating a new scenario.
+		WID_ETT_RESET_LANDSCAPE              = ::WID_ETT_RESET_LANDSCAPE,              ///< Button for removing all company-owned property.
+	};
+
+	/** Widgets of the #TimetableWindow class. */
+	enum VehicleTimetableWidgets {
+		WID_VT_CAPTION                       = ::WID_VT_CAPTION,                       ///< Caption of the window.
+		WID_VT_ORDER_VIEW                    = ::WID_VT_ORDER_VIEW,                    ///< Order view.
+		WID_VT_TIMETABLE_PANEL               = ::WID_VT_TIMETABLE_PANEL,               ///< Timetable panel.
+		WID_VT_ARRIVAL_DEPARTURE_PANEL       = ::WID_VT_ARRIVAL_DEPARTURE_PANEL,       ///< Panel with the expected/scheduled arrivals.
+		WID_VT_SCROLLBAR                     = ::WID_VT_SCROLLBAR,                     ///< Scrollbar for the panel.
+		WID_VT_SUMMARY_PANEL                 = ::WID_VT_SUMMARY_PANEL,                 ///< Summary panel.
+		WID_VT_START_DATE                    = ::WID_VT_START_DATE,                    ///< Start date button.
+		WID_VT_CHANGE_TIME                   = ::WID_VT_CHANGE_TIME,                   ///< Change time button.
+		WID_VT_CLEAR_TIME                    = ::WID_VT_CLEAR_TIME,                    ///< Clear time button.
+		WID_VT_RESET_LATENESS                = ::WID_VT_RESET_LATENESS,                ///< Reset lateness button.
+		WID_VT_AUTOFILL                      = ::WID_VT_AUTOFILL,                      ///< Autofill button.
+		WID_VT_EXPECTED                      = ::WID_VT_EXPECTED,                      ///< Toggle between expected and scheduled arrivals.
+		WID_VT_SHARED_ORDER_LIST             = ::WID_VT_SHARED_ORDER_LIST,             ///< Show the shared order list.
+		WID_VT_ARRIVAL_DEPARTURE_SELECTION   = ::WID_VT_ARRIVAL_DEPARTURE_SELECTION,   ///< Disable/hide the arrival departure panel.
+		WID_VT_EXPECTED_SELECTION            = ::WID_VT_EXPECTED_SELECTION,            ///< Disable/hide the expected selection button.
+	};
+
+	/** Widgets of the #MainToolbarWindow class. */
+	enum ToolbarNormalWidgets {
+		WID_TN_PAUSE                         = ::WID_TN_PAUSE,                         ///< Pause the game.
+		WID_TN_FAST_FORWARD                  = ::WID_TN_FAST_FORWARD,                  ///< Fast forward the game.
+		WID_TN_SETTINGS                      = ::WID_TN_SETTINGS,                      ///< Settings menu.
+		WID_TN_SAVE                          = ::WID_TN_SAVE,                          ///< Save menu.
+		WID_TN_SMALL_MAP                     = ::WID_TN_SMALL_MAP,                     ///< Small map menu.
+		WID_TN_TOWNS                         = ::WID_TN_TOWNS,                         ///< Town menu.
+		WID_TN_SUBSIDIES                     = ::WID_TN_SUBSIDIES,                     ///< Subsidy menu.
+		WID_TN_STATIONS                      = ::WID_TN_STATIONS,                      ///< Station menu.
+		WID_TN_FINANCES                      = ::WID_TN_FINANCES,                      ///< Finance menu.
+		WID_TN_COMPANIES                     = ::WID_TN_COMPANIES,                     ///< Company menu.
+		WID_TN_GRAPHS                        = ::WID_TN_GRAPHS,                        ///< Graph menu.
+		WID_TN_LEAGUE                        = ::WID_TN_LEAGUE,                        ///< Company league menu.
+		WID_TN_INDUSTRIES                    = ::WID_TN_INDUSTRIES,                    ///< Industry menu.
+		WID_TN_VEHICLE_START                 = ::WID_TN_VEHICLE_START,                 ///< Helper for the offset of the vehicle menus.
+		WID_TN_TRAINS                        = ::WID_TN_TRAINS,                        ///< Train menu.
+		WID_TN_ROADVEHS                      = ::WID_TN_ROADVEHS,                      ///< Road vehicle menu.
+		WID_TN_SHIPS                         = ::WID_TN_SHIPS,                         ///< Ship menu.
+		WID_TN_AIRCRAFTS                     = ::WID_TN_AIRCRAFTS,                     ///< Aircraft menu.
+		WID_TN_ZOOM_IN                       = ::WID_TN_ZOOM_IN,                       ///< Zoom in the main viewport.
+		WID_TN_ZOOM_OUT                      = ::WID_TN_ZOOM_OUT,                      ///< Zoom out the main viewport.
+		WID_TN_RAILS                         = ::WID_TN_RAILS,                         ///< Rail building menu.
+		WID_TN_ROADS                         = ::WID_TN_ROADS,                         ///< Road building menu.
+		WID_TN_WATER                         = ::WID_TN_WATER,                         ///< Water building toolbar.
+		WID_TN_AIR                           = ::WID_TN_AIR,                           ///< Airport building toolbar.
+		WID_TN_LANDSCAPE                     = ::WID_TN_LANDSCAPE,                     ///< Landscaping toolbar.
+		WID_TN_MUSIC_SOUND                   = ::WID_TN_MUSIC_SOUND,                   ///< Music/sound configuration menu.
+		WID_TN_MESSAGES                      = ::WID_TN_MESSAGES,                      ///< Messages menu.
+		WID_TN_HELP                          = ::WID_TN_HELP,                          ///< Help menu.
+		WID_TN_SWITCH_BAR                    = ::WID_TN_SWITCH_BAR,                    ///< Only available when toolbar has been split to switch between different subsets.
+		WID_TN_END                           = ::WID_TN_END,                           ///< Helper for knowing the amount of widgets.
+	};
+
+	/** Widgets of the #ScenarioEditorToolbarWindow class. */
+	enum ToolbarEditorWidgets {
+		WID_TE_PAUSE                         = ::WID_TE_PAUSE,                         ///< Pause the game.
+		WID_TE_FAST_FORWARD                  = ::WID_TE_FAST_FORWARD,                  ///< Fast forward the game.
+		WID_TE_SETTINGS                      = ::WID_TE_SETTINGS,                      ///< Settings menu.
+		WID_TE_SAVE                          = ::WID_TE_SAVE,                          ///< Save menu.
+		WID_TE_SPACER                        = ::WID_TE_SPACER,                        ///< Spacer with "scenario editor" text.
+		WID_TE_DATE                          = ::WID_TE_DATE,                          ///< The date of the scenario.
+		WID_TE_DATE_BACKWARD                 = ::WID_TE_DATE_BACKWARD,                 ///< Reduce the date of the scenario.
+		WID_TE_DATE_FORWARD                  = ::WID_TE_DATE_FORWARD,                  ///< Increase the date of the scenario.
+		WID_TE_SMALL_MAP                     = ::WID_TE_SMALL_MAP,                     ///< Small map menu.
+		WID_TE_ZOOM_IN                       = ::WID_TE_ZOOM_IN,                       ///< Zoom in the main viewport.
+		WID_TE_ZOOM_OUT                      = ::WID_TE_ZOOM_OUT,                      ///< Zoom out the main viewport.
+		WID_TE_LAND_GENERATE                 = ::WID_TE_LAND_GENERATE,                 ///< Land generation.
+		WID_TE_TOWN_GENERATE                 = ::WID_TE_TOWN_GENERATE,                 ///< Town building window.
+		WID_TE_INDUSTRY                      = ::WID_TE_INDUSTRY,                      ///< Industry building window.
+		WID_TE_ROADS                         = ::WID_TE_ROADS,                         ///< Road building menu.
+		WID_TE_WATER                         = ::WID_TE_WATER,                         ///< Water building toolbar.
+		WID_TE_TREES                         = ::WID_TE_TREES,                         ///< Tree building toolbar.
+		WID_TE_SIGNS                         = ::WID_TE_SIGNS,                         ///< Sign building.
+		WID_TE_DATE_PANEL                    = ::WID_TE_DATE_PANEL,                    ///< Container for the date widgets.
+		WID_TE_MUSIC_SOUND                   = ::WID_TE_MUSIC_SOUND,                   ///< Music/sound configuration menu.
+		WID_TE_HELP                          = ::WID_TE_HELP,                          ///< Help menu.
+		WID_TE_SWITCH_BAR                    = ::WID_TE_SWITCH_BAR,                    ///< Only available when toolbar has been split to switch between different subsets.
+	};
+
+	/** Widgets of the #TownDirectoryWindow class. */
+	enum TownDirectoryWidgets {
+		WID_TD_SORT_NAME                     = ::WID_TD_SORT_NAME,                     ///< Sort by town name.
+		WID_TD_SORT_POPULATION               = ::WID_TD_SORT_POPULATION,               ///< Sort by town population.
+		WID_TD_LIST                          = ::WID_TD_LIST,                          ///< List of towns.
+		WID_TD_SCROLLBAR                     = ::WID_TD_SCROLLBAR,                     ///< Scrollbar for the town list.
+		WID_TD_WORLD_POPULATION              = ::WID_TD_WORLD_POPULATION,              ///< The world's population.
+	};
+
+	/** Widgets of the #TownAuthorityWindow class. */
+	enum TownAuthorityWidgets {
+		WID_TA_CAPTION                       = ::WID_TA_CAPTION,                       ///< Caption of window.
+		WID_TA_RATING_INFO                   = ::WID_TA_RATING_INFO,                   ///< Overview with ratings for each company.
+		WID_TA_COMMAND_LIST                  = ::WID_TA_COMMAND_LIST,                  ///< List of commands for the player.
+		WID_TA_SCROLLBAR                     = ::WID_TA_SCROLLBAR,                     ///< Scrollbar of the list of commands.
+		WID_TA_ACTION_INFO                   = ::WID_TA_ACTION_INFO,                   ///< Additional information about the action.
+		WID_TA_EXECUTE                       = ::WID_TA_EXECUTE,                       ///< Do-it button.
+	};
+
+	/** Widgets of the #TownViewWindow class. */
+	enum TownViewWidgets {
+		WID_TV_CAPTION                       = ::WID_TV_CAPTION,                       ///< Caption of window.
+		WID_TV_VIEWPORT                      = ::WID_TV_VIEWPORT,                      ///< View of the center of the town.
+		WID_TV_INFO                          = ::WID_TV_INFO,                          ///< General information about the town.
+		WID_TV_CENTER_VIEW                   = ::WID_TV_CENTER_VIEW,                   ///< Center the main view on this town.
+		WID_TV_SHOW_AUTHORITY                = ::WID_TV_SHOW_AUTHORITY,                ///< Show the town authority window.
+		WID_TV_CHANGE_NAME                   = ::WID_TV_CHANGE_NAME,                   ///< Change the name of this town.
+		WID_TV_EXPAND                        = ::WID_TV_EXPAND,                        ///< Expand this town (scenario editor only).
+		WID_TV_DELETE                        = ::WID_TV_DELETE,                        ///< Delete this town (scenario editor only).
+	};
+
+	/** Widgets of the #FoundTownWindow class. */
+	enum TownFoundingWidgets {
+		WID_TF_NEW_TOWN                      = ::WID_TF_NEW_TOWN,                      ///< Create a new town.
+		WID_TF_RANDOM_TOWN                   = ::WID_TF_RANDOM_TOWN,                   ///< Randomly place a town.
+		WID_TF_MANY_RANDOM_TOWNS             = ::WID_TF_MANY_RANDOM_TOWNS,             ///< Randomly place many towns.
+		WID_TF_TOWN_NAME_EDITBOX             = ::WID_TF_TOWN_NAME_EDITBOX,             ///< Editor for the town name.
+		WID_TF_TOWN_NAME_RANDOM              = ::WID_TF_TOWN_NAME_RANDOM,              ///< Generate a random town name.
+		WID_TF_SIZE_SMALL                    = ::WID_TF_SIZE_SMALL,                    ///< Selection for a small town.
+		WID_TF_SIZE_MEDIUM                   = ::WID_TF_SIZE_MEDIUM,                   ///< Selection for a medium town.
+		WID_TF_SIZE_LARGE                    = ::WID_TF_SIZE_LARGE,                    ///< Selection for a large town.
+		WID_TF_SIZE_RANDOM                   = ::WID_TF_SIZE_RANDOM,                   ///< Selection for a randomly sized town.
+		WID_TF_CITY                          = ::WID_TF_CITY,                          ///< Selection for the town's city state.
+		WID_TF_LAYOUT_ORIGINAL               = ::WID_TF_LAYOUT_ORIGINAL,               ///< Selection for the original town layout.
+		WID_TF_LAYOUT_BETTER                 = ::WID_TF_LAYOUT_BETTER,                 ///< Selection for the better town layout.
+		WID_TF_LAYOUT_GRID2                  = ::WID_TF_LAYOUT_GRID2,                  ///< Selection for the 2x2 grid town layout.
+		WID_TF_LAYOUT_GRID3                  = ::WID_TF_LAYOUT_GRID3,                  ///< Selection for the 3x3 grid town layout.
+		WID_TF_LAYOUT_RANDOM                 = ::WID_TF_LAYOUT_RANDOM,                 ///< Selection for a randomly chosen town layout.
+	};
+
+	/** Widgets of the #TransparenciesWindow class. */
+	enum TransparencyToolbarWidgets {
+		WID_TT_BEGIN                         = ::WID_TT_BEGIN,                         ///< First toggle button.
+		WID_TT_SIGNS                         = ::WID_TT_SIGNS,                         ///< Signs background transparency toggle button.
+		WID_TT_TREES                         = ::WID_TT_TREES,                         ///< Trees transparency toggle button.
+		WID_TT_HOUSES                        = ::WID_TT_HOUSES,                        ///< Houses transparency toggle button.
+		WID_TT_INDUSTRIES                    = ::WID_TT_INDUSTRIES,                    ///< industries transparency toggle button.
+		WID_TT_BUILDINGS                     = ::WID_TT_BUILDINGS,                     ///< Company buildings and structures transparency toggle button.
+		WID_TT_BRIDGES                       = ::WID_TT_BRIDGES,                       ///< Bridges transparency toggle button.
+		WID_TT_STRUCTURES                    = ::WID_TT_STRUCTURES,                    ///< Object structure transparency toggle button.
+		WID_TT_CATENARY                      = ::WID_TT_CATENARY,                      ///< Catenary transparency toggle button.
+		WID_TT_LOADING                       = ::WID_TT_LOADING,                       ///< Loading indicators transparency toggle button.
+		WID_TT_END                           = ::WID_TT_END,                           ///< End of toggle buttons.
+		WID_TT_BUTTONS                       = ::WID_TT_BUTTONS,                       ///< Panel with 'invisibility' buttons.
+	};
+
+	/** Widgets of the #BuildTreesWindow class. */
+	enum BuildTreesWidgets {
+		WID_BT_TYPE_11                       = ::WID_BT_TYPE_11,                       ///< Tree 1st column 1st row.
+		WID_BT_TYPE_12                       = ::WID_BT_TYPE_12,                       ///< Tree 1st column 2nd row.
+		WID_BT_TYPE_13                       = ::WID_BT_TYPE_13,                       ///< Tree 1st column 3rd row.
+		WID_BT_TYPE_14                       = ::WID_BT_TYPE_14,                       ///< Tree 1st column 4th row.
+		WID_BT_TYPE_21                       = ::WID_BT_TYPE_21,                       ///< Tree 2st column 1st row.
+		WID_BT_TYPE_22                       = ::WID_BT_TYPE_22,                       ///< Tree 2st column 2nd row.
+		WID_BT_TYPE_23                       = ::WID_BT_TYPE_23,                       ///< Tree 2st column 3rd row.
+		WID_BT_TYPE_24                       = ::WID_BT_TYPE_24,                       ///< Tree 2st column 4th row.
+		WID_BT_TYPE_31                       = ::WID_BT_TYPE_31,                       ///< Tree 3st column 1st row.
+		WID_BT_TYPE_32                       = ::WID_BT_TYPE_32,                       ///< Tree 3st column 2nd row.
+		WID_BT_TYPE_33                       = ::WID_BT_TYPE_33,                       ///< Tree 3st column 3rd row.
+		WID_BT_TYPE_34                       = ::WID_BT_TYPE_34,                       ///< Tree 3st column 4th row.
+		WID_BT_TYPE_RANDOM                   = ::WID_BT_TYPE_RANDOM,                   ///< Button to build random type of tree.
+		WID_BT_MANY_RANDOM                   = ::WID_BT_MANY_RANDOM,                   ///< Button to build many random trees.
+	};
+
+	/** Widgets of the #VehicleViewWindow class. */
+	enum VehicleViewWidgets {
+		WID_VV_CAPTION                       = ::WID_VV_CAPTION,                       ///< Caption of window.
+		WID_VV_VIEWPORT                      = ::WID_VV_VIEWPORT,                      ///< Viewport widget.
+		WID_VV_START_STOP                    = ::WID_VV_START_STOP,                    ///< Start or stop this vehicle, and show information about the current state.
+		WID_VV_CENTER_MAIN_VIEW              = ::WID_VV_CENTER_MAIN_VIEW,              ///< Center the main view on this vehicle.
+		WID_VV_GOTO_DEPOT                    = ::WID_VV_GOTO_DEPOT,                    ///< Order this vehicle to go to the depot.
+		WID_VV_REFIT                         = ::WID_VV_REFIT,                         ///< Open the refit window.
+		WID_VV_SHOW_ORDERS                   = ::WID_VV_SHOW_ORDERS,                   ///< Show the orders of this vehicle.
+		WID_VV_SHOW_DETAILS                  = ::WID_VV_SHOW_DETAILS,                  ///< Show details of this vehicle.
+		WID_VV_CLONE                         = ::WID_VV_CLONE,                         ///< Clone this vehicle.
+		WID_VV_SELECT_DEPOT_CLONE            = ::WID_VV_SELECT_DEPOT_CLONE,            ///< Selection widget between 'goto depot', and 'clone vehicle' buttons.
+		WID_VV_SELECT_REFIT_TURN             = ::WID_VV_SELECT_REFIT_TURN,             ///< Selection widget between 'refit' and 'turn around' buttons.
+		WID_VV_TURN_AROUND                   = ::WID_VV_TURN_AROUND,                   ///< Turn this vehicle around.
+		WID_VV_FORCE_PROCEED                 = ::WID_VV_FORCE_PROCEED,                 ///< Force this vehicle to pass a signal at danger.
+	};
+
+	/** Widgets of the #RefitWindow class. */
+	enum VehicleRefitWidgets {
+		WID_VR_CAPTION                       = ::WID_VR_CAPTION,                       ///< Caption of window.
+		WID_VR_VEHICLE_PANEL_DISPLAY         = ::WID_VR_VEHICLE_PANEL_DISPLAY,         ///< Display with a representation of the vehicle to refit.
+		WID_VR_SHOW_HSCROLLBAR               = ::WID_VR_SHOW_HSCROLLBAR,               ///< Selection widget for the horizontal scrollbar.
+		WID_VR_HSCROLLBAR                    = ::WID_VR_HSCROLLBAR,                    ///< Horizontal scrollbar or the vehicle display.
+		WID_VR_SELECT_HEADER                 = ::WID_VR_SELECT_HEADER,                 ///< Header with question about the cargo to carry.
+		WID_VR_MATRIX                        = ::WID_VR_MATRIX,                        ///< Options to refit to.
+		WID_VR_SCROLLBAR                     = ::WID_VR_SCROLLBAR,                     ///< Scrollbar for the refit options.
+		WID_VR_INFO                          = ::WID_VR_INFO,                          ///< Information about the currently selected refit option.
+		WID_VR_REFIT                         = ::WID_VR_REFIT,                         ///< Perform the refit.
+	};
+
+	/** Widgets of the #VehicleDetailsWindow class. */
+	enum VehicleDetailsWidgets {
+		WID_VD_CAPTION                       = ::WID_VD_CAPTION,                       ///< Caption of window.
+		WID_VD_RENAME_VEHICLE                = ::WID_VD_RENAME_VEHICLE,                ///< Rename this vehicle.
+		WID_VD_TOP_DETAILS                   = ::WID_VD_TOP_DETAILS,                   ///< Panel with generic details.
+		WID_VD_INCREASE_SERVICING_INTERVAL   = ::WID_VD_INCREASE_SERVICING_INTERVAL,   ///< Increase the servicing interval.
+		WID_VD_DECREASE_SERVICING_INTERVAL   = ::WID_VD_DECREASE_SERVICING_INTERVAL,   ///< Decrease the servicing interval.
+		WID_VD_SERVICING_INTERVAL            = ::WID_VD_SERVICING_INTERVAL,            ///< Information about the servicing interval.
+		WID_VD_MIDDLE_DETAILS                = ::WID_VD_MIDDLE_DETAILS,                ///< Details for non-trains.
+		WID_VD_MATRIX                        = ::WID_VD_MATRIX,                        ///< List of details for trains.
+		WID_VD_SCROLLBAR                     = ::WID_VD_SCROLLBAR,                     ///< Scrollbar for train details.
+		WID_VD_DETAILS_CARGO_CARRIED         = ::WID_VD_DETAILS_CARGO_CARRIED,         ///< Show carried cargo per part of the train.
+		WID_VD_DETAILS_TRAIN_VEHICLES        = ::WID_VD_DETAILS_TRAIN_VEHICLES,        ///< Show all parts of the train with their description.
+		WID_VD_DETAILS_CAPACITY_OF_EACH      = ::WID_VD_DETAILS_CAPACITY_OF_EACH,      ///< Show the capacity of all train parts.
+		WID_VD_DETAILS_TOTAL_CARGO           = ::WID_VD_DETAILS_TOTAL_CARGO,           ///< Show the capacity and carried cargo amounts aggregrated per cargo of the train.
+	};
+
+	/** Widgets of the #VehicleListWindow class. */
+	enum VehicleListWidgets {
+		WID_VL_CAPTION                       = ::WID_VL_CAPTION,                       ///< Caption of window.
+		WID_VL_SORT_ORDER                    = ::WID_VL_SORT_ORDER,                    ///< Sort order.
+		WID_VL_SORT_BY_PULLDOWN              = ::WID_VL_SORT_BY_PULLDOWN,              ///< Sort by dropdown list.
+		WID_VL_LIST                          = ::WID_VL_LIST,                          ///< List of the vehicles.
+		WID_VL_SCROLLBAR                     = ::WID_VL_SCROLLBAR,                     ///< Scrollbar for the list.
+		WID_VL_HIDE_BUTTONS                  = ::WID_VL_HIDE_BUTTONS,                  ///< Selection to hide the buttons.
+		WID_VL_AVAILABLE_VEHICLES            = ::WID_VL_AVAILABLE_VEHICLES,            ///< Available vehicles.
+		WID_VL_MANAGE_VEHICLES_DROPDOWN      = ::WID_VL_MANAGE_VEHICLES_DROPDOWN,      ///< Manage vehicles dropdown list.
+		WID_VL_STOP_ALL                      = ::WID_VL_STOP_ALL,                      ///< Stop all button.
+		WID_VL_START_ALL                     = ::WID_VL_START_ALL,                     ///< Start all button.
+	};
+
+	/** Widgets of the #ExtraViewportWindow class. */
+	enum ExtraViewportWidgets {
+		WID_EV_CAPTION                       = ::WID_EV_CAPTION,                       ///< Caption of window.
+		WID_EV_VIEWPORT                      = ::WID_EV_VIEWPORT,                      ///< The viewport.
+		WID_EV_ZOOM_IN                       = ::WID_EV_ZOOM_IN,                       ///< Zoom in.
+		WID_EV_ZOOM_OUT                      = ::WID_EV_ZOOM_OUT,                      ///< Zoom out.
+		WID_EV_MAIN_TO_VIEW                  = ::WID_EV_MAIN_TO_VIEW,                  ///< Center the view of this viewport on the main view.
+		WID_EV_VIEW_TO_MAIN                  = ::WID_EV_VIEW_TO_MAIN,                  ///< Center the main view on the view of this viewport.
+	};
+
+	/** Widgets of the #WaypointWindow class. */
+	enum WaypointWidgets {
+		WID_W_CAPTION                        = ::WID_W_CAPTION,                        ///< Caption of window.
+		WID_W_VIEWPORT                       = ::WID_W_VIEWPORT,                       ///< The viewport on this waypoint.
+		WID_W_CENTER_VIEW                    = ::WID_W_CENTER_VIEW,                    ///< Center the main view on this waypoint.
+		WID_W_RENAME                         = ::WID_W_RENAME,                         ///< Rename this waypoint.
+		WID_W_SHOW_VEHICLES                  = ::WID_W_SHOW_VEHICLES,                  ///< Show the vehicles visiting this waypoint.
+	};
+};
+
+#endif /* SCRIPT_WINDOW_HPP */
--- a/src/script/api/template/template_event_types.hpp.sq
+++ b/src/script/api/template/template_event_types.hpp.sq
@@ -221,3 +221,12 @@
 	template <> inline const ScriptEventAdminPort &GetParam(ForceType<const ScriptEventAdminPort &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(ScriptEventAdminPort *)instance; }
 	template <> inline int Return<ScriptEventAdminPort *>(HSQUIRRELVM vm, ScriptEventAdminPort *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "EventAdminPort", res, NULL, DefSQDestructorCallback<ScriptEventAdminPort>, true); return 1; }
 } // namespace SQConvert
+
+namespace SQConvert {
+	/* Allow ScriptEventWindowWidgetClick to be used as Squirrel parameter */
+	template <> inline ScriptEventWindowWidgetClick *GetParam(ForceType<ScriptEventWindowWidgetClick *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (ScriptEventWindowWidgetClick *)instance; }
+	template <> inline ScriptEventWindowWidgetClick &GetParam(ForceType<ScriptEventWindowWidgetClick &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(ScriptEventWindowWidgetClick *)instance; }
+	template <> inline const ScriptEventWindowWidgetClick *GetParam(ForceType<const ScriptEventWindowWidgetClick *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (ScriptEventWindowWidgetClick *)instance; }
+	template <> inline const ScriptEventWindowWidgetClick &GetParam(ForceType<const ScriptEventWindowWidgetClick &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(ScriptEventWindowWidgetClick *)instance; }
+	template <> inline int Return<ScriptEventWindowWidgetClick *>(HSQUIRRELVM vm, ScriptEventWindowWidgetClick *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "EventWindowWidgetClick", res, NULL, DefSQDestructorCallback<ScriptEventWindowWidgetClick>, true); return 1; }
+} // namespace SQConvert
new file mode 100644
--- /dev/null
+++ b/src/script/api/template/template_window.hpp.sq
@@ -0,0 +1,255 @@
+/* $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/>.
+ */
+
+/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
+
+#include "../script_window.hpp"
+
+namespace SQConvert {
+	/* Allow enums to be used as Squirrel parameters */
+	template <> inline ScriptWindow::WindowNumberEnum GetParam(ForceType<ScriptWindow::WindowNumberEnum>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::WindowNumberEnum)tmp; }
+	template <> inline int Return<ScriptWindow::WindowNumberEnum>(HSQUIRRELVM vm, ScriptWindow::WindowNumberEnum res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::WindowClass GetParam(ForceType<ScriptWindow::WindowClass>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::WindowClass)tmp; }
+	template <> inline int Return<ScriptWindow::WindowClass>(HSQUIRRELVM vm, ScriptWindow::WindowClass res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::TextColour GetParam(ForceType<ScriptWindow::TextColour>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::TextColour)tmp; }
+	template <> inline int Return<ScriptWindow::TextColour>(HSQUIRRELVM vm, ScriptWindow::TextColour res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::NumberType GetParam(ForceType<ScriptWindow::NumberType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::NumberType)tmp; }
+	template <> inline int Return<ScriptWindow::NumberType>(HSQUIRRELVM vm, ScriptWindow::NumberType res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::WidgetType GetParam(ForceType<ScriptWindow::WidgetType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::WidgetType)tmp; }
+	template <> inline int Return<ScriptWindow::WidgetType>(HSQUIRRELVM vm, ScriptWindow::WidgetType res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::AIListWidgets GetParam(ForceType<ScriptWindow::AIListWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::AIListWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::AIListWidgets>(HSQUIRRELVM vm, ScriptWindow::AIListWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::AISettingsWidgets GetParam(ForceType<ScriptWindow::AISettingsWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::AISettingsWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::AISettingsWidgets>(HSQUIRRELVM vm, ScriptWindow::AISettingsWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::AIConfigWidgets GetParam(ForceType<ScriptWindow::AIConfigWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::AIConfigWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::AIConfigWidgets>(HSQUIRRELVM vm, ScriptWindow::AIConfigWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::AIDebugWidgets GetParam(ForceType<ScriptWindow::AIDebugWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::AIDebugWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::AIDebugWidgets>(HSQUIRRELVM vm, ScriptWindow::AIDebugWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::AirportToolbarWidgets GetParam(ForceType<ScriptWindow::AirportToolbarWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::AirportToolbarWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::AirportToolbarWidgets>(HSQUIRRELVM vm, ScriptWindow::AirportToolbarWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::AirportPickerWidgets GetParam(ForceType<ScriptWindow::AirportPickerWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::AirportPickerWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::AirportPickerWidgets>(HSQUIRRELVM vm, ScriptWindow::AirportPickerWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::ReplaceVehicleWidgets GetParam(ForceType<ScriptWindow::ReplaceVehicleWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::ReplaceVehicleWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::ReplaceVehicleWidgets>(HSQUIRRELVM vm, ScriptWindow::ReplaceVehicleWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::BootstrapBackgroundWidgets GetParam(ForceType<ScriptWindow::BootstrapBackgroundWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::BootstrapBackgroundWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::BootstrapBackgroundWidgets>(HSQUIRRELVM vm, ScriptWindow::BootstrapBackgroundWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::BootstrapAskForDownloadWidgets GetParam(ForceType<ScriptWindow::BootstrapAskForDownloadWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::BootstrapAskForDownloadWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::BootstrapAskForDownloadWidgets>(HSQUIRRELVM vm, ScriptWindow::BootstrapAskForDownloadWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::BuildBridgeSelectionWidgets GetParam(ForceType<ScriptWindow::BuildBridgeSelectionWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::BuildBridgeSelectionWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::BuildBridgeSelectionWidgets>(HSQUIRRELVM vm, ScriptWindow::BuildBridgeSelectionWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::BuildVehicleWidgets GetParam(ForceType<ScriptWindow::BuildVehicleWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::BuildVehicleWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::BuildVehicleWidgets>(HSQUIRRELVM vm, ScriptWindow::BuildVehicleWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::CheatWidgets GetParam(ForceType<ScriptWindow::CheatWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::CheatWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::CheatWidgets>(HSQUIRRELVM vm, ScriptWindow::CheatWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::CompanyWidgets GetParam(ForceType<ScriptWindow::CompanyWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::CompanyWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::CompanyWidgets>(HSQUIRRELVM vm, ScriptWindow::CompanyWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::CompanyFinancesWidgets GetParam(ForceType<ScriptWindow::CompanyFinancesWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::CompanyFinancesWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::CompanyFinancesWidgets>(HSQUIRRELVM vm, ScriptWindow::CompanyFinancesWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::SelectCompanyLiveryWidgets GetParam(ForceType<ScriptWindow::SelectCompanyLiveryWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::SelectCompanyLiveryWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::SelectCompanyLiveryWidgets>(HSQUIRRELVM vm, ScriptWindow::SelectCompanyLiveryWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::SelectCompanyManagerFaceWidgets GetParam(ForceType<ScriptWindow::SelectCompanyManagerFaceWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::SelectCompanyManagerFaceWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::SelectCompanyManagerFaceWidgets>(HSQUIRRELVM vm, ScriptWindow::SelectCompanyManagerFaceWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::CompanyInfrastructureWidgets GetParam(ForceType<ScriptWindow::CompanyInfrastructureWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::CompanyInfrastructureWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::CompanyInfrastructureWidgets>(HSQUIRRELVM vm, ScriptWindow::CompanyInfrastructureWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::BuyCompanyWidgets GetParam(ForceType<ScriptWindow::BuyCompanyWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::BuyCompanyWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::BuyCompanyWidgets>(HSQUIRRELVM vm, ScriptWindow::BuyCompanyWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::ConsoleWidgets GetParam(ForceType<ScriptWindow::ConsoleWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::ConsoleWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::ConsoleWidgets>(HSQUIRRELVM vm, ScriptWindow::ConsoleWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::SetDateWidgets GetParam(ForceType<ScriptWindow::SetDateWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::SetDateWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::SetDateWidgets>(HSQUIRRELVM vm, ScriptWindow::SetDateWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::DepotWidgets GetParam(ForceType<ScriptWindow::DepotWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::DepotWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::DepotWidgets>(HSQUIRRELVM vm, ScriptWindow::DepotWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::BuildDockDepotWidgets GetParam(ForceType<ScriptWindow::BuildDockDepotWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::BuildDockDepotWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::BuildDockDepotWidgets>(HSQUIRRELVM vm, ScriptWindow::BuildDockDepotWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::DockToolbarWidgets GetParam(ForceType<ScriptWindow::DockToolbarWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::DockToolbarWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::DockToolbarWidgets>(HSQUIRRELVM vm, ScriptWindow::DockToolbarWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::DropdownMenuWidgets GetParam(ForceType<ScriptWindow::DropdownMenuWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::DropdownMenuWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::DropdownMenuWidgets>(HSQUIRRELVM vm, ScriptWindow::DropdownMenuWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::EnginePreviewWidgets GetParam(ForceType<ScriptWindow::EnginePreviewWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::EnginePreviewWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::EnginePreviewWidgets>(HSQUIRRELVM vm, ScriptWindow::EnginePreviewWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::ErrorMessageWidgets GetParam(ForceType<ScriptWindow::ErrorMessageWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::ErrorMessageWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::ErrorMessageWidgets>(HSQUIRRELVM vm, ScriptWindow::ErrorMessageWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::SaveLoadWidgets GetParam(ForceType<ScriptWindow::SaveLoadWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::SaveLoadWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::SaveLoadWidgets>(HSQUIRRELVM vm, ScriptWindow::SaveLoadWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::GenerateLandscapeWidgets GetParam(ForceType<ScriptWindow::GenerateLandscapeWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::GenerateLandscapeWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::GenerateLandscapeWidgets>(HSQUIRRELVM vm, ScriptWindow::GenerateLandscapeWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::CreateScenarioWidgets GetParam(ForceType<ScriptWindow::CreateScenarioWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::CreateScenarioWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::CreateScenarioWidgets>(HSQUIRRELVM vm, ScriptWindow::CreateScenarioWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::GenerationProgressWidgets GetParam(ForceType<ScriptWindow::GenerationProgressWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::GenerationProgressWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::GenerationProgressWidgets>(HSQUIRRELVM vm, ScriptWindow::GenerationProgressWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::GoalListWidgets GetParam(ForceType<ScriptWindow::GoalListWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::GoalListWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::GoalListWidgets>(HSQUIRRELVM vm, ScriptWindow::GoalListWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::GraphLegendWidgets GetParam(ForceType<ScriptWindow::GraphLegendWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::GraphLegendWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::GraphLegendWidgets>(HSQUIRRELVM vm, ScriptWindow::GraphLegendWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::CompanyValueWidgets GetParam(ForceType<ScriptWindow::CompanyValueWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::CompanyValueWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::CompanyValueWidgets>(HSQUIRRELVM vm, ScriptWindow::CompanyValueWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::PerformanceHistoryGraphWidgets GetParam(ForceType<ScriptWindow::PerformanceHistoryGraphWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::PerformanceHistoryGraphWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::PerformanceHistoryGraphWidgets>(HSQUIRRELVM vm, ScriptWindow::PerformanceHistoryGraphWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::CargoPaymentRatesWidgets GetParam(ForceType<ScriptWindow::CargoPaymentRatesWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::CargoPaymentRatesWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::CargoPaymentRatesWidgets>(HSQUIRRELVM vm, ScriptWindow::CargoPaymentRatesWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::CompanyLeagueWidgets GetParam(ForceType<ScriptWindow::CompanyLeagueWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::CompanyLeagueWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::CompanyLeagueWidgets>(HSQUIRRELVM vm, ScriptWindow::CompanyLeagueWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::PerformanceRatingDetailsWidgets GetParam(ForceType<ScriptWindow::PerformanceRatingDetailsWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::PerformanceRatingDetailsWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::PerformanceRatingDetailsWidgets>(HSQUIRRELVM vm, ScriptWindow::PerformanceRatingDetailsWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::GroupListWidgets GetParam(ForceType<ScriptWindow::GroupListWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::GroupListWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::GroupListWidgets>(HSQUIRRELVM vm, ScriptWindow::GroupListWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::HighscoreWidgets GetParam(ForceType<ScriptWindow::HighscoreWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::HighscoreWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::HighscoreWidgets>(HSQUIRRELVM vm, ScriptWindow::HighscoreWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::DynamicPlaceIndustriesWidgets GetParam(ForceType<ScriptWindow::DynamicPlaceIndustriesWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::DynamicPlaceIndustriesWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::DynamicPlaceIndustriesWidgets>(HSQUIRRELVM vm, ScriptWindow::DynamicPlaceIndustriesWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::IndustryViewWidgets GetParam(ForceType<ScriptWindow::IndustryViewWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::IndustryViewWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::IndustryViewWidgets>(HSQUIRRELVM vm, ScriptWindow::IndustryViewWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::IndustryDirectoryWidgets GetParam(ForceType<ScriptWindow::IndustryDirectoryWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::IndustryDirectoryWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::IndustryDirectoryWidgets>(HSQUIRRELVM vm, ScriptWindow::IndustryDirectoryWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::IndustryCargoesWidgets GetParam(ForceType<ScriptWindow::IndustryCargoesWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::IndustryCargoesWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::IndustryCargoesWidgets>(HSQUIRRELVM vm, ScriptWindow::IndustryCargoesWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::SelectGameIntroWidgets GetParam(ForceType<ScriptWindow::SelectGameIntroWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::SelectGameIntroWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::SelectGameIntroWidgets>(HSQUIRRELVM vm, ScriptWindow::SelectGameIntroWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::MainWidgets GetParam(ForceType<ScriptWindow::MainWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::MainWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::MainWidgets>(HSQUIRRELVM vm, ScriptWindow::MainWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::LandInfoWidgets GetParam(ForceType<ScriptWindow::LandInfoWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::LandInfoWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::LandInfoWidgets>(HSQUIRRELVM vm, ScriptWindow::LandInfoWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::ToolTipsWidgets GetParam(ForceType<ScriptWindow::ToolTipsWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::ToolTipsWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::ToolTipsWidgets>(HSQUIRRELVM vm, ScriptWindow::ToolTipsWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::AboutWidgets GetParam(ForceType<ScriptWindow::AboutWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::AboutWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::AboutWidgets>(HSQUIRRELVM vm, ScriptWindow::AboutWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::QueryStringWidgets GetParam(ForceType<ScriptWindow::QueryStringWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::QueryStringWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::QueryStringWidgets>(HSQUIRRELVM vm, ScriptWindow::QueryStringWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::QueryWidgets GetParam(ForceType<ScriptWindow::QueryWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::QueryWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::QueryWidgets>(HSQUIRRELVM vm, ScriptWindow::QueryWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::MusicTrackSelectionWidgets GetParam(ForceType<ScriptWindow::MusicTrackSelectionWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::MusicTrackSelectionWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::MusicTrackSelectionWidgets>(HSQUIRRELVM vm, ScriptWindow::MusicTrackSelectionWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::MusicWidgets GetParam(ForceType<ScriptWindow::MusicWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::MusicWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::MusicWidgets>(HSQUIRRELVM vm, ScriptWindow::MusicWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::NetWorkChatWidgets GetParam(ForceType<ScriptWindow::NetWorkChatWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::NetWorkChatWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::NetWorkChatWidgets>(HSQUIRRELVM vm, ScriptWindow::NetWorkChatWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::NetworkContentDownloadStatusWidgets GetParam(ForceType<ScriptWindow::NetworkContentDownloadStatusWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::NetworkContentDownloadStatusWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::NetworkContentDownloadStatusWidgets>(HSQUIRRELVM vm, ScriptWindow::NetworkContentDownloadStatusWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::NetworkContentListWidgets GetParam(ForceType<ScriptWindow::NetworkContentListWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::NetworkContentListWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::NetworkContentListWidgets>(HSQUIRRELVM vm, ScriptWindow::NetworkContentListWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::NetworkGameWidgets GetParam(ForceType<ScriptWindow::NetworkGameWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::NetworkGameWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::NetworkGameWidgets>(HSQUIRRELVM vm, ScriptWindow::NetworkGameWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::NetworkStartServerWidgets GetParam(ForceType<ScriptWindow::NetworkStartServerWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::NetworkStartServerWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::NetworkStartServerWidgets>(HSQUIRRELVM vm, ScriptWindow::NetworkStartServerWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::NetworkLobbyWidgets GetParam(ForceType<ScriptWindow::NetworkLobbyWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::NetworkLobbyWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::NetworkLobbyWidgets>(HSQUIRRELVM vm, ScriptWindow::NetworkLobbyWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::ClientListWidgets GetParam(ForceType<ScriptWindow::ClientListWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::ClientListWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::ClientListWidgets>(HSQUIRRELVM vm, ScriptWindow::ClientListWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::ClientListPopupWidgets GetParam(ForceType<ScriptWindow::ClientListPopupWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::ClientListPopupWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::ClientListPopupWidgets>(HSQUIRRELVM vm, ScriptWindow::ClientListPopupWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::NetworkJoinStatusWidgets GetParam(ForceType<ScriptWindow::NetworkJoinStatusWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::NetworkJoinStatusWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::NetworkJoinStatusWidgets>(HSQUIRRELVM vm, ScriptWindow::NetworkJoinStatusWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::NetworkCompanyPasswordWidgets GetParam(ForceType<ScriptWindow::NetworkCompanyPasswordWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::NetworkCompanyPasswordWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::NetworkCompanyPasswordWidgets>(HSQUIRRELVM vm, ScriptWindow::NetworkCompanyPasswordWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::NewGRFInspectWidgets GetParam(ForceType<ScriptWindow::NewGRFInspectWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::NewGRFInspectWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::NewGRFInspectWidgets>(HSQUIRRELVM vm, ScriptWindow::NewGRFInspectWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::SpriteAlignerWidgets GetParam(ForceType<ScriptWindow::SpriteAlignerWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::SpriteAlignerWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::SpriteAlignerWidgets>(HSQUIRRELVM vm, ScriptWindow::SpriteAlignerWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::NewGRFParametersWidgets GetParam(ForceType<ScriptWindow::NewGRFParametersWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::NewGRFParametersWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::NewGRFParametersWidgets>(HSQUIRRELVM vm, ScriptWindow::NewGRFParametersWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::NewGRFTextfileWidgets GetParam(ForceType<ScriptWindow::NewGRFTextfileWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::NewGRFTextfileWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::NewGRFTextfileWidgets>(HSQUIRRELVM vm, ScriptWindow::NewGRFTextfileWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::NewGRFStateWidgets GetParam(ForceType<ScriptWindow::NewGRFStateWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::NewGRFStateWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::NewGRFStateWidgets>(HSQUIRRELVM vm, ScriptWindow::NewGRFStateWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::ScanProgressWidgets GetParam(ForceType<ScriptWindow::ScanProgressWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::ScanProgressWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::ScanProgressWidgets>(HSQUIRRELVM vm, ScriptWindow::ScanProgressWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::NewsWidgets GetParam(ForceType<ScriptWindow::NewsWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::NewsWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::NewsWidgets>(HSQUIRRELVM vm, ScriptWindow::NewsWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::MessageHistoryWidgets GetParam(ForceType<ScriptWindow::MessageHistoryWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::MessageHistoryWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::MessageHistoryWidgets>(HSQUIRRELVM vm, ScriptWindow::MessageHistoryWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::MessageOptionWidgets GetParam(ForceType<ScriptWindow::MessageOptionWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::MessageOptionWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::MessageOptionWidgets>(HSQUIRRELVM vm, ScriptWindow::MessageOptionWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::BuildObjectWidgets GetParam(ForceType<ScriptWindow::BuildObjectWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::BuildObjectWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::BuildObjectWidgets>(HSQUIRRELVM vm, ScriptWindow::BuildObjectWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::OrderWidgets GetParam(ForceType<ScriptWindow::OrderWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::OrderWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::OrderWidgets>(HSQUIRRELVM vm, ScriptWindow::OrderWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::OnScreenKeyboardWidgets GetParam(ForceType<ScriptWindow::OnScreenKeyboardWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::OnScreenKeyboardWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::OnScreenKeyboardWidgets>(HSQUIRRELVM vm, ScriptWindow::OnScreenKeyboardWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::RailToolbarWidgets GetParam(ForceType<ScriptWindow::RailToolbarWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::RailToolbarWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::RailToolbarWidgets>(HSQUIRRELVM vm, ScriptWindow::RailToolbarWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::BuildRailStationWidgets GetParam(ForceType<ScriptWindow::BuildRailStationWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::BuildRailStationWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::BuildRailStationWidgets>(HSQUIRRELVM vm, ScriptWindow::BuildRailStationWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::BuildSignalWidgets GetParam(ForceType<ScriptWindow::BuildSignalWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::BuildSignalWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::BuildSignalWidgets>(HSQUIRRELVM vm, ScriptWindow::BuildSignalWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::BuildRailDepotWidgets GetParam(ForceType<ScriptWindow::BuildRailDepotWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::BuildRailDepotWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::BuildRailDepotWidgets>(HSQUIRRELVM vm, ScriptWindow::BuildRailDepotWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::BuildRailWaypointWidgets GetParam(ForceType<ScriptWindow::BuildRailWaypointWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::BuildRailWaypointWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::BuildRailWaypointWidgets>(HSQUIRRELVM vm, ScriptWindow::BuildRailWaypointWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::RoadToolbarWidgets GetParam(ForceType<ScriptWindow::RoadToolbarWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::RoadToolbarWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::RoadToolbarWidgets>(HSQUIRRELVM vm, ScriptWindow::RoadToolbarWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::BuildRoadDepotWidgets GetParam(ForceType<ScriptWindow::BuildRoadDepotWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::BuildRoadDepotWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::BuildRoadDepotWidgets>(HSQUIRRELVM vm, ScriptWindow::BuildRoadDepotWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::BuildRoadStationWidgets GetParam(ForceType<ScriptWindow::BuildRoadStationWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::BuildRoadStationWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::BuildRoadStationWidgets>(HSQUIRRELVM vm, ScriptWindow::BuildRoadStationWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::GameOptionsWidgets GetParam(ForceType<ScriptWindow::GameOptionsWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::GameOptionsWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::GameOptionsWidgets>(HSQUIRRELVM vm, ScriptWindow::GameOptionsWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::GameDifficultyWidgets GetParam(ForceType<ScriptWindow::GameDifficultyWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::GameDifficultyWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::GameDifficultyWidgets>(HSQUIRRELVM vm, ScriptWindow::GameDifficultyWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::GameSettingsWidgets GetParam(ForceType<ScriptWindow::GameSettingsWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::GameSettingsWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::GameSettingsWidgets>(HSQUIRRELVM vm, ScriptWindow::GameSettingsWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::CustomCurrencyWidgets GetParam(ForceType<ScriptWindow::CustomCurrencyWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::CustomCurrencyWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::CustomCurrencyWidgets>(HSQUIRRELVM vm, ScriptWindow::CustomCurrencyWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::SignListWidgets GetParam(ForceType<ScriptWindow::SignListWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::SignListWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::SignListWidgets>(HSQUIRRELVM vm, ScriptWindow::SignListWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::QueryEditSignWidgets GetParam(ForceType<ScriptWindow::QueryEditSignWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::QueryEditSignWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::QueryEditSignWidgets>(HSQUIRRELVM vm, ScriptWindow::QueryEditSignWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::SmallMapWidgets GetParam(ForceType<ScriptWindow::SmallMapWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::SmallMapWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::SmallMapWidgets>(HSQUIRRELVM vm, ScriptWindow::SmallMapWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::StationViewWidgets GetParam(ForceType<ScriptWindow::StationViewWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::StationViewWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::StationViewWidgets>(HSQUIRRELVM vm, ScriptWindow::StationViewWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::StationListWidgets GetParam(ForceType<ScriptWindow::StationListWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::StationListWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::StationListWidgets>(HSQUIRRELVM vm, ScriptWindow::StationListWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::JoinStationWidgets GetParam(ForceType<ScriptWindow::JoinStationWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::JoinStationWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::JoinStationWidgets>(HSQUIRRELVM vm, ScriptWindow::JoinStationWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::StatusbarWidget GetParam(ForceType<ScriptWindow::StatusbarWidget>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::StatusbarWidget)tmp; }
+	template <> inline int Return<ScriptWindow::StatusbarWidget>(HSQUIRRELVM vm, ScriptWindow::StatusbarWidget res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::SubsidyListWidgets GetParam(ForceType<ScriptWindow::SubsidyListWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::SubsidyListWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::SubsidyListWidgets>(HSQUIRRELVM vm, ScriptWindow::SubsidyListWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::TerraformToolbarWidgets GetParam(ForceType<ScriptWindow::TerraformToolbarWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::TerraformToolbarWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::TerraformToolbarWidgets>(HSQUIRRELVM vm, ScriptWindow::TerraformToolbarWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::EditorTerraformToolbarWidgets GetParam(ForceType<ScriptWindow::EditorTerraformToolbarWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::EditorTerraformToolbarWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::EditorTerraformToolbarWidgets>(HSQUIRRELVM vm, ScriptWindow::EditorTerraformToolbarWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::VehicleTimetableWidgets GetParam(ForceType<ScriptWindow::VehicleTimetableWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::VehicleTimetableWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::VehicleTimetableWidgets>(HSQUIRRELVM vm, ScriptWindow::VehicleTimetableWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::ToolbarNormalWidgets GetParam(ForceType<ScriptWindow::ToolbarNormalWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::ToolbarNormalWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::ToolbarNormalWidgets>(HSQUIRRELVM vm, ScriptWindow::ToolbarNormalWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::ToolbarEditorWidgets GetParam(ForceType<ScriptWindow::ToolbarEditorWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::ToolbarEditorWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::ToolbarEditorWidgets>(HSQUIRRELVM vm, ScriptWindow::ToolbarEditorWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::TownDirectoryWidgets GetParam(ForceType<ScriptWindow::TownDirectoryWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::TownDirectoryWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::TownDirectoryWidgets>(HSQUIRRELVM vm, ScriptWindow::TownDirectoryWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::TownAuthorityWidgets GetParam(ForceType<ScriptWindow::TownAuthorityWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::TownAuthorityWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::TownAuthorityWidgets>(HSQUIRRELVM vm, ScriptWindow::TownAuthorityWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::TownViewWidgets GetParam(ForceType<ScriptWindow::TownViewWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::TownViewWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::TownViewWidgets>(HSQUIRRELVM vm, ScriptWindow::TownViewWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::TownFoundingWidgets GetParam(ForceType<ScriptWindow::TownFoundingWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::TownFoundingWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::TownFoundingWidgets>(HSQUIRRELVM vm, ScriptWindow::TownFoundingWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::TransparencyToolbarWidgets GetParam(ForceType<ScriptWindow::TransparencyToolbarWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::TransparencyToolbarWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::TransparencyToolbarWidgets>(HSQUIRRELVM vm, ScriptWindow::TransparencyToolbarWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::BuildTreesWidgets GetParam(ForceType<ScriptWindow::BuildTreesWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::BuildTreesWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::BuildTreesWidgets>(HSQUIRRELVM vm, ScriptWindow::BuildTreesWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::VehicleViewWidgets GetParam(ForceType<ScriptWindow::VehicleViewWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::VehicleViewWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::VehicleViewWidgets>(HSQUIRRELVM vm, ScriptWindow::VehicleViewWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::VehicleRefitWidgets GetParam(ForceType<ScriptWindow::VehicleRefitWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::VehicleRefitWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::VehicleRefitWidgets>(HSQUIRRELVM vm, ScriptWindow::VehicleRefitWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::VehicleDetailsWidgets GetParam(ForceType<ScriptWindow::VehicleDetailsWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::VehicleDetailsWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::VehicleDetailsWidgets>(HSQUIRRELVM vm, ScriptWindow::VehicleDetailsWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::VehicleListWidgets GetParam(ForceType<ScriptWindow::VehicleListWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::VehicleListWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::VehicleListWidgets>(HSQUIRRELVM vm, ScriptWindow::VehicleListWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::ExtraViewportWidgets GetParam(ForceType<ScriptWindow::ExtraViewportWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::ExtraViewportWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::ExtraViewportWidgets>(HSQUIRRELVM vm, ScriptWindow::ExtraViewportWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+	template <> inline ScriptWindow::WaypointWidgets GetParam(ForceType<ScriptWindow::WaypointWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::WaypointWidgets)tmp; }
+	template <> inline int Return<ScriptWindow::WaypointWidgets>(HSQUIRRELVM vm, ScriptWindow::WaypointWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+
+	/* Allow ScriptWindow to be used as Squirrel parameter */
+	template <> inline ScriptWindow *GetParam(ForceType<ScriptWindow *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (ScriptWindow *)instance; }
+	template <> inline ScriptWindow &GetParam(ForceType<ScriptWindow &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(ScriptWindow *)instance; }
+	template <> inline const ScriptWindow *GetParam(ForceType<const ScriptWindow *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (ScriptWindow *)instance; }
+	template <> inline const ScriptWindow &GetParam(ForceType<const ScriptWindow &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(ScriptWindow *)instance; }
+	template <> inline int Return<ScriptWindow *>(HSQUIRRELVM vm, ScriptWindow *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "Window", res, NULL, DefSQDestructorCallback<ScriptWindow>, true); return 1; }
+} // namespace SQConvert
--- a/src/widget.cpp
+++ b/src/widget.cpp
@@ -21,6 +21,7 @@
 
 #include "table/sprites.h"
 #include "table/strings.h"
+#include "table/palettes.h"
 
 static const char *UPARROW   = "\xEE\x8A\xA0"; ///< String containing an upwards pointing arrow.
 static const char *DOWNARROW = "\xEE\x8A\xAA"; ///< String containing a downwards pointing arrow.
@@ -570,6 +571,26 @@
 	if (this->flags & WF_WHITE_BORDER) {
 		DrawFrameRect(0, 0, this->width - 1, this->height - 1, COLOUR_WHITE, FR_BORDERONLY);
 	}
+
+	if (this->flags & WF_HIGHLIGHTED) {
+		extern bool _window_highlight_colour;
+		for (uint i = 0; i < this->nested_array_size; i++) {
+			const NWidgetBase *widget = this->GetWidget<NWidgetBase>(i);
+			if (widget == NULL || !widget->IsHighlighted()) continue;
+
+			int left = widget->pos_x;
+			int top  = widget->pos_y;
+			int right  = left + widget->current_x - 1;
+			int bottom = top  + widget->current_y - 1;
+
+			int colour = _string_colourmap[_window_highlight_colour ? widget->GetHighlightColour() : TC_WHITE];
+
+			GfxFillRect(left,                 top,    left,                   bottom - WD_BEVEL_BOTTOM, colour);
+			GfxFillRect(left + WD_BEVEL_LEFT, top,    right - WD_BEVEL_RIGHT, top,                      colour);
+			GfxFillRect(right,                top,    right,                  bottom - WD_BEVEL_BOTTOM, colour);
+			GfxFillRect(left,                 bottom, right,                  bottom,                   colour);
+		}
+	}
 }
 
 /**
--- a/src/widget_type.h
+++ b/src/widget_type.h
@@ -132,6 +132,10 @@
 	virtual NWidgetCore *GetWidgetFromPos(int x, int y) = 0;
 	virtual NWidgetBase *GetWidgetOfType(WidgetType tp);
 
+	virtual bool IsHighlighted() const { return false; }
+	virtual TextColour GetHighlightColour() const { return TC_INVALID; }
+	virtual void SetHighlighted(TextColour highlight_colour) {}
+
 	/**
 	 * Set additional space (padding) around the widget.
 	 * @param top    Amount of additional space above the widget.
@@ -254,9 +258,12 @@
 	/* Scrollbar widget. */
 	NDB_SCROLLBAR_UP    = 6, ///< Up-button is lowered bit.
 	NDB_SCROLLBAR_DOWN  = 7, ///< Down-button is lowered bit.
+	/* Generic. */
+	NDB_HIGHLIGHT       = 8, ///< Highlight of widget is on.
 
 	ND_LOWERED  = 1 << NDB_LOWERED,                ///< Bit value of the lowered flag.
 	ND_DISABLED = 1 << NDB_DISABLED,               ///< Bit value of the disabled flag.
+	ND_HIGHLIGHT = 1 << NDB_HIGHLIGHT,             ///< Bit value of the highlight flag.
 	ND_NO_TRANSPARENCY = 1 << NDB_NO_TRANSPARENCY, ///< Bit value of the 'no transparency' flag.
 	ND_SHADE_GREY      = 1 << NDB_SHADE_GREY,      ///< Bit value of the 'shade to grey' flag.
 	ND_SHADE_DIMMED    = 1 << NDB_SHADE_DIMMED,    ///< Bit value of the 'dimmed colours' flag.
@@ -285,6 +292,9 @@
 
 	/* virtual */ void FillNestedArray(NWidgetBase **array, uint length);
 	/* virtual */ NWidgetCore *GetWidgetFromPos(int x, int y);
+	/* virtual */ bool IsHighlighted() const;
+	/* virtual */ TextColour GetHighlightColour() const;
+	/* virtual */ void SetHighlighted(TextColour highlight_colour);
 
 	NWidgetDisplay disp_flags; ///< Flags that affect display and interaction with the widget.
 	Colours colour;            ///< Colour of this widget.
@@ -292,9 +302,32 @@
 	uint16 widget_data;        ///< Data of the widget. @see Widget::data
 	StringID tool_tip;         ///< Tooltip of the widget. @see Widget::tootips
 	int scrollbar_index;       ///< Index of an attached scrollbar.
+	TextColour highlight_colour; ///< Colour of highlight.
 };
 
 /**
+ * Highlight the widget or not.
+ * @param higlighted Widget must be highlighted (blink).
+ */
+inline void NWidgetCore::SetHighlighted(TextColour highlight_colour)
+{
+	this->disp_flags = highlight_colour != TC_INVALID ? SETBITS(this->disp_flags, ND_HIGHLIGHT) : CLRBITS(this->disp_flags, ND_HIGHLIGHT);
+	this->highlight_colour = highlight_colour;
+}
+
+/** Return whether the widget is highlighted. */
+inline bool NWidgetCore::IsHighlighted() const
+{
+	return HasBit(this->disp_flags, NDB_HIGHLIGHT);
+}
+
+/** Return the colour of the highlight. */
+inline TextColour NWidgetCore::GetHighlightColour() const
+{
+	return this->highlight_colour;
+}
+
+/**
  * Lower or raise the widget.
  * @param lowered Widget must be lowered (drawn pressed down).
  */
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -33,6 +33,7 @@
 #include "toolbar_gui.h"
 #include "statusbar_gui.h"
 #include "error.h"
+#include "game/game.hpp"
 
 
 static Point _drag_delta; ///< delta between mouse cursor and upper left corner of dragged window
@@ -44,6 +45,9 @@
 /** List of windows opened at the screen sorted from the back. */
 Window *_z_back_window  = NULL;
 
+/** If false, highlight is white, otherwise the by the widget defined colour. */
+bool _window_highlight_colour = false;
+
 /*
  * Window that currently has focus. - The main purpose is to generate
  * #FocusLost events, not to give next window in z-order focus when a
@@ -99,6 +103,72 @@
 }
 
 /**
+ * Disable the highlighted status of all widgets.
+ */
+void Window::DisableAllWidgetHighlight()
+{
+	for (uint i = 0; i < this->nested_array_size; i++) {
+		NWidgetBase *nwid = this->GetWidget<NWidgetBase>(i);
+		if (nwid == NULL) continue;
+
+		if (nwid->IsHighlighted()) {
+			nwid->SetHighlighted(TC_INVALID);
+			this->SetWidgetDirty(i);
+		}
+	}
+
+	CLRBITS(this->flags, WF_HIGHLIGHTED);
+}
+
+/**
+ * Sets the highlighted status of a widget.
+ * @param widget_index index of this widget in the window
+ * @param highlighted_colour Colour of highlight, or TC_INVALID to disable.
+ */
+void Window::SetWidgetHighlight(byte widget_index, TextColour highlighted_colour)
+{
+	assert(widget_index < this->nested_array_size);
+
+	NWidgetBase *nwid = this->GetWidget<NWidgetBase>(widget_index);
+	if (nwid == NULL) return;
+
+	nwid->SetHighlighted(highlighted_colour);
+	this->SetWidgetDirty(widget_index);
+
+	if (highlighted_colour != TC_INVALID) {
+		/* If we set a highlight, the window has a highlight */
+		this->flags |= WF_HIGHLIGHTED;
+	} else {
+		/* If we disable a highlight, check all widgets if anyone still has a highlight */
+		bool valid = false;
+		for (uint i = 0; i < this->nested_array_size; i++) {
+			NWidgetBase *nwid = this->GetWidget<NWidgetBase>(i);
+			if (nwid == NULL) continue;
+			if (!nwid->IsHighlighted()) continue;
+
+			valid = true;
+		}
+		/* If nobody has a highlight, disable the flag on the window */
+		if (!valid) CLRBITS(this->flags, WF_HIGHLIGHTED);
+	}
+}
+
+/**
+ * Gets the highlighted status of a widget.
+ * @param widget_index index of this widget in the window
+ * @return status of the widget ie: highlighted = true, not highlighted = false
+ */
+bool Window::IsWidgetHighlighted(byte widget_index) const
+{
+	assert(widget_index < this->nested_array_size);
+
+	const NWidgetBase *nwid = this->GetWidget<NWidgetBase>(widget_index);
+	if (nwid == NULL) return false;
+
+	return nwid->IsHighlighted();
+}
+
+/**
  * Return the Scrollbar to a widget index.
  * @param widnum Scrollbar widget index
  * @return Scrollbar to the widget
@@ -384,6 +454,12 @@
 	/* Widget has no index, so the window is not interested in it. */
 	if (widget_index < 0) return;
 
+	/* Check if the widget is highlighted; if so, disable highlight and dispatch an event to the GameScript */
+	if (w->IsWidgetHighlighted(widget_index)) {
+		w->SetWidgetHighlight(widget_index, TC_INVALID);
+		Game::NewEvent(new ScriptEventWindowWidgetClick((ScriptWindow::WindowClass)w->window_class, w->window_number, widget_index));
+	}
+
 	Point pt = { x, y };
 	w->OnClick(pt, widget_index, click_count);
 }
@@ -2506,8 +2582,15 @@
 {
 	Window *w;
 
+	static int highlight_timer = 1;
+	if (--highlight_timer == 0) {
+		highlight_timer = 15;
+		_window_highlight_colour = !_window_highlight_colour;
+	}
+
 	FOR_ALL_WINDOWS_FROM_FRONT(w) {
 		w->ProcessScheduledInvalidations();
+		w->ProcessHighlightedInvalidations();
 	}
 
 	static int we4_timer = 0;
@@ -2607,6 +2690,18 @@
 }
 
 /**
+ * Process all invalidation of highlighted widgets.
+ */
+void Window::ProcessHighlightedInvalidations()
+{
+	if ((this->flags & WF_HIGHLIGHTED) == 0) return;
+
+	for (uint i = 0; i < this->nested_array_size; i++) {
+		if (this->IsWidgetHighlighted(i)) this->SetWidgetDirty(i);
+	}
+}
+
+/**
  * Mark window data of the window of a given class and specific window number as invalid (in need of re-computing)
  *
  * Note that by default the invalidation is not considered to be called from GUI scope.
--- a/src/window_gui.h
+++ b/src/window_gui.h
@@ -218,7 +218,7 @@
 	WF_STICKY            = 1 <<  6, ///< Window is made sticky by user
 	WF_DISABLE_VP_SCROLL = 1 <<  7, ///< Window does not do autoscroll, @see HandleAutoscroll().
 	WF_WHITE_BORDER      = 1 <<  8, ///< Window white border counter bit mask.
-
+	WF_HIGHLIGHTED       = 1 <<  9, ///< Window has a widget that has a highlight.
 	WF_CENTERED          = 1 << 10, ///< Window is centered and shall stay centered after ReInit.
 };
 DECLARE_ENUM_AS_BIT_SET(WindowFlags)
@@ -338,6 +338,10 @@
 		this->white_border_timer = WHITE_BORDER_DURATION;
 	}
 
+	void DisableAllWidgetHighlight();
+	void SetWidgetHighlight(byte widget_index, TextColour highlighted_colour);
+	bool IsWidgetHighlighted(byte widget_index) const;
+
 	/**
 	 * Sets the enabled/disabled status of a widget.
 	 * By default, widgets are enabled.
@@ -482,6 +486,7 @@
 
 	void InvalidateData(int data = 0, bool gui_scope = true);
 	void ProcessScheduledInvalidations();
+	void ProcessHighlightedInvalidations();
 
 	/*** Event handling ***/