changeset 18752:8712c7857433 draft

(svn r23600) -Codechange: link WC+number to a Widget, and the Widget to a Window class
author truebrain <truebrain@openttd.org>
date Mon, 19 Dec 2011 20:46:17 +0000
parents 96fe0249253a
children 8d2cdabac894
files src/bootstrap_gui.cpp src/dock_gui.cpp src/news_type.h src/widgets/ai_widget.h src/widgets/airport_widget.h src/widgets/autoreplace_widget.h src/widgets/bootstrap_widget.h src/widgets/bridge_widget.h src/widgets/build_vehicle_widget.h src/widgets/cheat_widget.h src/widgets/company_widget.h src/widgets/console_widget.h src/widgets/date_widget.h src/widgets/depot_widget.h src/widgets/dock_widget.h src/widgets/dropdown_widget.h src/widgets/engine_widget.h src/widgets/error_widget.h src/widgets/fios_widget.h src/widgets/genworld_widget.h src/widgets/graph_widget.h src/widgets/group_widget.h src/widgets/highscore_widget.h src/widgets/industry_widget.h src/widgets/intro_widget.h src/widgets/main_widget.h src/widgets/misc_widget.h src/widgets/music_widget.h src/widgets/network_chat_widget.h src/widgets/network_content_widget.h src/widgets/network_widget.h src/widgets/newgrf_debug_widget.h src/widgets/newgrf_widget.h src/widgets/news_widget.h src/widgets/object_widget.h src/widgets/order_widget.h src/widgets/osk_widget.h src/widgets/rail_widget.h src/widgets/road_widget.h src/widgets/settings_widget.h src/widgets/sign_widget.h src/widgets/smallmap_widget.h src/widgets/station_widget.h src/widgets/statusbar_widget.h src/widgets/subsidy_widget.h src/widgets/terraform_widget.h src/widgets/timetable_widget.h src/widgets/toolbar_widget.h src/widgets/town_widget.h src/widgets/transparency_widget.h src/widgets/tree_widget.h src/widgets/vehicle_widget.h src/widgets/viewport_widget.h src/widgets/waypoint_widget.h src/window_type.h
diffstat 55 files changed, 753 insertions(+), 249 deletions(-) [+]
line wrap: on
line diff
--- a/src/bootstrap_gui.cpp
+++ b/src/bootstrap_gui.cpp
@@ -33,7 +33,7 @@
 
 /** Widgets for the background window to prevent smearing. */
 static const struct NWidgetPart _background_widgets[] = {
-	NWidget(WWT_PANEL, COLOUR_DARK_BLUE, 0), SetResize(1, 1),
+	NWidget(WWT_PANEL, COLOUR_DARK_BLUE, WID_BB_BACKGROUND), SetResize(1, 1),
 };
 
 /**
--- a/src/dock_gui.cpp
+++ b/src/dock_gui.cpp
@@ -480,13 +480,6 @@
 	new BuildDocksStationWindow(&_build_dock_station_desc, parent);
 }
 
-/** Widgets for the build ship depot window. */
-enum BuildDockDepotWidgets {
-	BDDW_BACKGROUND,
-	BDDW_X,
-	BDDW_Y,
-};
-
 struct BuildDocksDepotWindow : public PickerWindowBase {
 private:
 	static void UpdateDocksDirection()
@@ -502,7 +495,7 @@
 	BuildDocksDepotWindow(const WindowDesc *desc, Window *parent) : PickerWindowBase(parent)
 	{
 		this->InitNested(desc, TRANSPORT_WATER);
-		this->LowerWidget(_ship_depot_direction + BDDW_X);
+		this->LowerWidget(_ship_depot_direction + WID_BDD_X);
 		UpdateDocksDirection();
 	}
 
@@ -510,20 +503,20 @@
 	{
 		this->DrawWidgets();
 
-		DrawShipDepotSprite(this->GetWidget<NWidgetBase>(BDDW_X)->pos_x + 64, this->GetWidget<NWidgetBase>(BDDW_X)->pos_y + 18, AXIS_X, DEPOT_PART_NORTH);
-		DrawShipDepotSprite(this->GetWidget<NWidgetBase>(BDDW_X)->pos_x + 32, this->GetWidget<NWidgetBase>(BDDW_X)->pos_y + 34, AXIS_X, DEPOT_PART_SOUTH);
-		DrawShipDepotSprite(this->GetWidget<NWidgetBase>(BDDW_Y)->pos_x + 32, this->GetWidget<NWidgetBase>(BDDW_Y)->pos_y + 18, AXIS_Y, DEPOT_PART_NORTH);
-		DrawShipDepotSprite(this->GetWidget<NWidgetBase>(BDDW_Y)->pos_x + 64, this->GetWidget<NWidgetBase>(BDDW_Y)->pos_y + 34, AXIS_Y, DEPOT_PART_SOUTH);
+		DrawShipDepotSprite(this->GetWidget<NWidgetBase>(WID_BDD_X)->pos_x + 64, this->GetWidget<NWidgetBase>(WID_BDD_X)->pos_y + 18, AXIS_X, DEPOT_PART_NORTH);
+		DrawShipDepotSprite(this->GetWidget<NWidgetBase>(WID_BDD_X)->pos_x + 32, this->GetWidget<NWidgetBase>(WID_BDD_X)->pos_y + 34, AXIS_X, DEPOT_PART_SOUTH);
+		DrawShipDepotSprite(this->GetWidget<NWidgetBase>(WID_BDD_Y)->pos_x + 32, this->GetWidget<NWidgetBase>(WID_BDD_Y)->pos_y + 18, AXIS_Y, DEPOT_PART_NORTH);
+		DrawShipDepotSprite(this->GetWidget<NWidgetBase>(WID_BDD_Y)->pos_x + 64, this->GetWidget<NWidgetBase>(WID_BDD_Y)->pos_y + 34, AXIS_Y, DEPOT_PART_SOUTH);
 	}
 
 	virtual void OnClick(Point pt, int widget, int click_count)
 	{
 		switch (widget) {
-			case BDDW_X:
-			case BDDW_Y:
-				this->RaiseWidget(_ship_depot_direction + BDDW_X);
-				_ship_depot_direction = (widget == BDDW_X ? AXIS_X : AXIS_Y);
-				this->LowerWidget(_ship_depot_direction + BDDW_X);
+			case WID_BDD_X:
+			case WID_BDD_Y:
+				this->RaiseWidget(_ship_depot_direction + WID_BDD_X);
+				_ship_depot_direction = (widget == WID_BDD_X ? AXIS_X : AXIS_Y);
+				this->LowerWidget(_ship_depot_direction + WID_BDD_X);
 				SndPlayFx(SND_15_BEEP);
 				UpdateDocksDirection();
 				this->SetDirty();
@@ -537,14 +530,14 @@
 		NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN),
 		NWidget(WWT_CAPTION, COLOUR_DARK_GREEN), SetDataTip(STR_DEPOT_BUILD_SHIP_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
 	EndContainer(),
-	NWidget(WWT_PANEL, COLOUR_DARK_GREEN, BDDW_BACKGROUND),
+	NWidget(WWT_PANEL, COLOUR_DARK_GREEN, WID_BDD_BACKGROUND),
 		NWidget(NWID_SPACER), SetMinimalSize(0, 3),
 		NWidget(NWID_HORIZONTAL_LTR),
 			NWidget(NWID_SPACER), SetMinimalSize(3, 0),
-			NWidget(WWT_PANEL, COLOUR_GREY, BDDW_X), SetMinimalSize(98, 66), SetDataTip(0x0, STR_DEPOT_BUILD_SHIP_ORIENTATION_TOOLTIP),
+			NWidget(WWT_PANEL, COLOUR_GREY, WID_BDD_X), SetMinimalSize(98, 66), SetDataTip(0x0, STR_DEPOT_BUILD_SHIP_ORIENTATION_TOOLTIP),
 			EndContainer(),
 			NWidget(NWID_SPACER), SetMinimalSize(2, 0),
-			NWidget(WWT_PANEL, COLOUR_GREY, BDDW_Y), SetMinimalSize(98, 66), SetDataTip(0x0, STR_DEPOT_BUILD_SHIP_ORIENTATION_TOOLTIP),
+			NWidget(WWT_PANEL, COLOUR_GREY, WID_BDD_Y), SetMinimalSize(98, 66), SetDataTip(0x0, STR_DEPOT_BUILD_SHIP_ORIENTATION_TOOLTIP),
 			EndContainer(),
 			NWidget(NWID_SPACER), SetMinimalSize(3, 0),
 		EndContainer(),
--- a/src/news_type.h
+++ b/src/news_type.h
@@ -17,6 +17,19 @@
 #include "strings_type.h"
 #include "sound_type.h"
 
+/** Constants in the message options window. */
+enum MessageOptionsSpace {
+	MOS_WIDG_PER_SETTING      = 4,  ///< Number of widgets needed for each news category, starting at widget #WID_MO_START_OPTION.
+
+	MOS_LEFT_EDGE             = 6,  ///< Number of pixels between left edge of the window and the options buttons column.
+	MOS_COLUMN_SPACING        = 4,  ///< Number of pixels between the buttons and the description columns.
+	MOS_RIGHT_EDGE            = 6,  ///< Number of pixels between right edge of the window and the options descriptions column.
+	MOS_BUTTON_SPACE          = 10, ///< Additional space in the button with the option value (for better looks).
+
+	MOS_ABOVE_GLOBAL_SETTINGS = 6,  ///< Number of vertical pixels between the categories and the global options.
+	MOS_BOTTOM_EDGE           = 6,  ///< Number of pixels between bottom edge of the window and bottom of the global options.
+};
+
 /**
  * Type of news.
  */
--- a/src/widgets/ai_widget.h
+++ b/src/widgets/ai_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_AI_WIDGET_H
 #define WIDGETS_AI_WIDGET_H
 
-/** Widgets of the WC_AI_LIST. */
+/** Widgets of the #AIListWindow class. */
 enum AIListWidgets {
 	WID_AIL_LIST,      ///< The matrix with all available AIs.
 	WID_AIL_SCROLLBAR, ///< Scrollbar next to the AI list.
@@ -21,7 +21,7 @@
 	WID_AIL_CANCEL,    ///< Cancel button.
 };
 
-/** Widgets of the WC_AI_SETTINGS. */
+/** Widgets of the #AISettingsWindow class. */
 enum AISettingsWidgets {
 	WID_AIS_BACKGROUND, ///< Panel to draw the settings on.
 	WID_AIS_SCROLLBAR,  ///< Scrollbar to scroll through all settings.
@@ -29,7 +29,7 @@
 	WID_AIS_RESET,      ///< Reset button.
 };
 
-/** Widgets of the WC_GAME_OPTIONS (WC_GAME_OPTIONS is also used in others). */
+/** Widgets of the #AIConfigWindow class. */
 enum AIConfigWidgets {
 	WID_AIC_BACKGROUND,       ///< Window background.
 	WID_AIC_DECREASE,         ///< Decrease the number of AIs.
@@ -45,7 +45,7 @@
 	WID_AIC_CONTENT_DOWNLOAD, ///< Download content button.
 };
 
-/** Widgets of the WC_AI_DEBUG. */
+/** Widgets of the #AIDebugWindow class. */
 enum AIDebugWidgets {
 	WID_AID_VIEW,                 ///< The row of company buttons.
 	WID_AID_NAME_TEXT,            ///< Name of the current selected.
--- a/src/widgets/airport_widget.h
+++ b/src/widgets/airport_widget.h
@@ -12,13 +12,13 @@
 #ifndef WIDGETS_AIRPORT_WIDGET_H
 #define WIDGETS_AIRPORT_WIDGET_H
 
-/** Widgets of the WC_BUILD_TOOLBAR (WC_BUILD_TOOLBAR is also used in others). */
+/** Widgets of the #BuildAirToolbarWindow class. */
 enum AirportToolbarWidgets {
 	WID_AT_AIRPORT,  ///< Build airport button.
 	WID_AT_DEMOLISH, ///< Demolish button.
 };
 
-/** Widgets of the WC_BUILD_STATION (WC_BUILD_STATION is also used in others). */
+/** Widgets of the #BuildAirportWindow class. */
 enum AirportPickerWidgets {
 	WID_AP_CLASS_DROPDOWN,  ///< Dropdown of airport classes.
 	WID_AP_AIRPORT_LIST,    ///< List of airports.
--- a/src/widgets/autoreplace_widget.h
+++ b/src/widgets/autoreplace_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_AUTOREPLACE_WIDGET_H
 #define WIDGETS_AUTOREPLACE_WIDGET_H
 
-/** Widgets of the WC_REPLACE_VEHICLE. */
+/** Widgets of the #ReplaceVehicleWindow class. */
 enum ReplaceVehicleWidgets {
 	WID_RV_CAPTION,                  ///< Caption of the window.
 
--- a/src/widgets/bootstrap_widget.h
+++ b/src/widgets/bootstrap_widget.h
@@ -12,7 +12,12 @@
 #ifndef WIDGETS_BOOTSTRAP_WIDGET_H
 #define WIDGETS_BOOTSTRAP_WIDGET_H
 
-/** Widgets of the WC_CONFIRM_POPUP_QUERY (WC_CONFIRM_POPUP_QUERY is also used in QueryWidgets). */
+/** Widgets of the #BootstrapBackground class. */
+enum BootstrapBackgroundWidgets {
+	WID_BB_BACKGROUND, ///< Background of the window.
+};
+
+/** Widgets of the #BootstrapContentDownloadStatusWindow class. */
 enum BootstrapAskForDownloadWidgets {
 	WID_BAFD_QUESTION, ///< The question whether to download.
 	WID_BAFD_YES,      ///< An affirmative answer to the question.
--- a/src/widgets/bridge_widget.h
+++ b/src/widgets/bridge_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_BRIDGE_WIDGET_H
 #define WIDGETS_BRIDGE_WIDGET_H
 
-/** Widgets of the WC_BUILD_BRIDGE. */
+/** Widgets of the #BuildBridgeWindow class. */
 enum BuildBridgeSelectionWidgets {
 	WID_BBS_CAPTION,           ///< Caption of the window.
 	WID_BBS_DROPDOWN_ORDER,    ///< Direction of sort dropdown.
--- a/src/widgets/build_vehicle_widget.h
+++ b/src/widgets/build_vehicle_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_BUILD_VEHICLE_WIDGET_H
 #define WIDGETS_BUILD_VEHICLE_WIDGET_H
 
-/** Widgets of the WC_BUILD_VEHICLE. */
+/** Widgets of the #BuildVehicleWindow class. */
 enum BuildVehicleWidgets {
 	WID_BV_CAPTION,                   ///< Caption of window.
 	WID_BV_SORT_ASSENDING_DESCENDING, ///< Sort direction.
--- a/src/widgets/cheat_widget.h
+++ b/src/widgets/cheat_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_CHEAT_WIDGET_H
 #define WIDGETS_CHEAT_WIDGET_H
 
-/** Widgets of the WC_CHEATS. */
+/** Widgets of the #CheatWindow class.. */
 enum CheatWidgets {
 	WID_C_PANEL, ///< Panel where all cheats are shown in.
 };
--- a/src/widgets/company_widget.h
+++ b/src/widgets/company_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_COMPANY_WIDGET_H
 #define WIDGETS_COMPANY_WIDGET_H
 
-/** Widgets of the WC_COMPANY. */
+/** Widgets of the #CompanyWindow class. */
 enum CompanyWidgets {
 	WID_C_CAPTION,                    ///< Caption of the window.
 
@@ -54,7 +54,7 @@
 	WID_C_COMPANY_JOIN,               ///< Button to join company.
 };
 
-/** Widgets of the WC_FINANCES. */
+/** Widgets of the #CompanyFinancesWindow class. */
 enum CompanyFinancesWidgets {
 	WID_CF_CAPTION,        ///< Caption of the window.
 	WID_CF_TOGGLE_SIZE,    ///< Toggle windows size.
@@ -78,7 +78,7 @@
 };
 
 
-/** Widgets of the WC_COMPANY_COLOUR. */
+/** Widgets of the #SelectCompanyLiveryWindow class. */
 enum SelectCompanyLiveryWidgets {
 	WID_SCL_CAPTION,          ///< Caption of window.
 	WID_SCL_CLASS_GENERAL,    ///< Class general.
@@ -93,7 +93,8 @@
 };
 
 
-/** Widgets of the WC_COMPANY_MANAGER_FACE.
+/**
+ * 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().
  */
@@ -164,7 +165,7 @@
 	WID_SCMF_GLASSES_R,                  ///< Glasses right.
 };
 
-/** Widgets of the WC_COMPANY_INFRASTRUCTURE. */
+/** Widgets of the #CompanyInfrastructureWindow class. */
 enum CompanyInfrastructureWidgets {
 	WID_CI_CAPTION,       ///< Caption of window.
 	WID_CI_RAIL_DESC,     ///< Description of rail.
@@ -179,7 +180,7 @@
 	WID_CI_TOTAL,         ///< Count of total.
 };
 
-/** Widgets of the WC_BUY_COMPANY. */
+/** Widgets of the #BuyCompanyWindow class. */
 enum BuyCompanyWidgets {
 	WID_BC_CAPTION,  ///< Caption of window.
 	WID_BC_FACE,     ///< Face button.
--- a/src/widgets/console_widget.h
+++ b/src/widgets/console_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_CONSOLE_WIDGET_H
 #define WIDGETS_CONSOLE_WIDGET_H
 
-/** Widgets of the WC_CONSOLE. */
+/** Widgets of the #IConsoleWindow class. */
 enum ConsoleWidgets {
 	WID_C_BACKGROUND, ///< Background of the console.
 };
--- a/src/widgets/date_widget.h
+++ b/src/widgets/date_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_DATE_WIDGET_H
 #define WIDGETS_DATE_WIDGET_H
 
-/** Widgets of the WC_SET_DATE. */
+/** Widgets of the #SetDateWindow class. */
 enum SetDateWidgets {
 	WID_SD_DAY,      ///< Dropdown for the day.
 	WID_SD_MONTH,    ///< Dropdown for the month.
--- a/src/widgets/depot_widget.h
+++ b/src/widgets/depot_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_DEPOT_WIDGET_H
 #define WIDGETS_DEPOT_WIDGET_H
 
-/** Widgets of the WC_VEHICLE_DEPOT. */
+/** Widgets of the #DepotWindow class. */
 enum DepotWidgets {
 	WID_D_CAPTION,         ///< Caption of window.
 	WID_D_SELL,            ///< Sell button.
--- a/src/widgets/dock_widget.h
+++ b/src/widgets/dock_widget.h
@@ -12,7 +12,14 @@
 #ifndef WIDGETS_DOCK_WIDGET_H
 #define WIDGETS_DOCK_WIDGET_H
 
-/** Widgets of the WC_SCEN_BUILD_TOOLBAR / WC_BUILD_TOOLBAR (WC_SCEN_BUILD_TOOLBAR / WC_BUILD_TOOLBAR is also used in others). */
+/** Widgets of the #BuildDocksDepotWindow class. */
+enum BuildDockDepotWidgets {
+	WID_BDD_BACKGROUND, ///< Background of the window.
+	WID_BDD_X,          ///< X-direction button.
+	WID_BDD_Y,          ///< Y-direction button.
+};
+
+/** Widgets of the #BuildDocksToolbarWindow class. */
 enum DockToolbarWidgets {
 	WID_DT_CANAL,          ///< Build canal button.
 	WID_DT_LOCK,           ///< Build lock button.
--- a/src/widgets/dropdown_widget.h
+++ b/src/widgets/dropdown_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_DROPDOWN_WIDGET_H
 #define WIDGETS_DROPDOWN_WIDGET_H
 
-/** Widgets of the WC_DROPDOWN_MENU. */
+/** Widgets of the #DropdownWindow class. */
 enum DropdownMenuWidgets {
 	WID_DM_ITEMS,        ///< Panel showing the dropdown items.
 	WID_DM_SHOW_SCROLL,  ///< Hide scrollbar if too few items.
--- a/src/widgets/engine_widget.h
+++ b/src/widgets/engine_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_ENGINE_WIDGET_H
 #define WIDGETS_ENGINE_WIDGET_H
 
-/** Widgets of the WC_ENGINE_PREVIEW. */
+/** Widgets of the #EnginePreviewWindow class. */
 enum EnginePreviewWidgets {
 	WID_EP_QUESTION, ///< The container for the question.
 	WID_EP_NO,       ///< No button.
--- a/src/widgets/error_widget.h
+++ b/src/widgets/error_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_ERROR_WIDGET_H
 #define WIDGETS_ERROR_WIDGET_H
 
-/** Widgets of the WC_ERRMSG. */
+/** Widgets of the #ErrmsgWindow class. */
 enum ErrorMessageWidgets {
 	WID_EM_CAPTION, ///< Caption of the window.
 	WID_EM_FACE,    ///< Error title.
--- a/src/widgets/fios_widget.h
+++ b/src/widgets/fios_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_FIOS_WIDGET_H
 #define WIDGETS_FIOS_WIDGET_H
 
-/** Widgets of the WC_SAVELOAD. */
+/** Widgets of the #SaveLoadWindow class. */
 enum SaveLoadWidgets {
 	WID_SL_CAPTION,                 ///< Caption of the window.
 	WID_SL_SORT_BYNAME,             ///< Sort by name button.
--- a/src/widgets/genworld_widget.h
+++ b/src/widgets/genworld_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_GENWORLD_WIDGET_H
 #define WIDGETS_GENWORLD_WIDGET_H
 
-/** Widgets of the WC_GENERATE_LANDSCAPE (WC_GENERATE_LANDSCAPE is also used in CreateScenarioWidgets). */
+/** Widgets of the #GenerateLandscapeWindow class. */
 enum GenerateLandscapeWidgets {
 	WID_GL_TEMPERATE,                   ///< Button with icon "Temperate".
 	WID_GL_ARCTIC,                      ///< Button with icon "Arctic".
@@ -58,7 +58,7 @@
 	WID_GL_WATER_SW,                    ///< SW 'Water'/'Freeform'.
 };
 
-/** Widgets of the WC_GENERATE_LANDSCAPE (WC_GENERATE_LANDSCAPE is also used in GenerateLandscapeWidgets). */
+/** Widgets of the #CreateScenarioWindow class. */
 enum CreateScenarioWidgets {
 	WID_CS_TEMPERATE,              ///< Select temperate landscape style.
 	WID_CS_ARCTIC,                 ///< Select arctic landscape style.
@@ -76,7 +76,7 @@
 	WID_CS_FLAT_LAND_HEIGHT_UP,    ///< Increase flat land height.
 };
 
-/** Widgets of the WC_MODAL_PROGRESS (WC_MODAL_PROGRESS is also used in ScanProgressWidgets). */
+/** Widgets of the #GenerateProgressWindow class. */
 enum GenerationProgressWidgets {
 	WID_GP_PROGRESS_BAR,  ///< Progress bar.
 	WID_GP_PROGRESS_TEXT, ///< Text with the progress bar.
--- a/src/widgets/graph_widget.h
+++ b/src/widgets/graph_widget.h
@@ -14,7 +14,7 @@
 
 #include "../economy_type.h"
 
-/** Widgets of the WC_GRAPH_LEGEND. */
+/** Widgets of the #GraphLegendWindow class. */
 enum GraphLegendWidgets {
 	WID_GL_BACKGROUND,    ///< Background of the window.
 
@@ -22,7 +22,7 @@
 	WID_GL_LAST_COMPANY = WID_GL_FIRST_COMPANY + MAX_COMPANIES - 1, ///< Last company in the legend.
 };
 
-/** Widgets of the WC_OPERATING_PROFIT / WC_DELIVERED_CARGO / WC_COMPANY_VALUE / WC_INCOME_GRAPH. */
+/** Widgets of the #OperatingProfitGraphWindow class, #IncomeGraphWindow class, #DeliveredCargoGraphWindow class, and #CompanyValueGraphWindow class. */
 enum CompanyValueWidgets {
 	WID_CV_KEY_BUTTON, ///< Key button.
 	WID_CV_BACKGROUND, ///< Background of the window.
@@ -30,7 +30,7 @@
 	WID_CV_RESIZE,     ///< Resize button.
 };
 
-/** Widget of the WC_PERFORMANCE_HISTORY. */
+/** Widget of the #PerformanceHistoryGraphWindow class. */
 enum PerformanceHistoryGraphWidgets {
 	WID_PHG_KEY,                  ///< Key button.
 	WID_PHG_DETAILED_PERFORMANCE, ///< Detailed performance.
@@ -39,7 +39,7 @@
 	WID_PHG_RESIZE,               ///< Resize button.
 };
 
-/** Widget of the WC_PAYMENT_RATES. */
+/** Widget of the #PaymentRatesGraphWindow class. */
 enum CargoPaymentRatesWidgets {
 	WID_CPR_BACKGROUND,      ///< Background of the window.
 	WID_CPR_HEADER,          ///< Header.
@@ -51,12 +51,12 @@
 	WID_CPR_CARGO_FIRST,     ///< First cargo in the list.
 };
 
-/** Widget of the WC_COMPANY_LEAGUE. */
+/** Widget of the #CompanyLeagueWindow class. */
 enum CompanyLeagueWidgets {
 	WID_CL_BACKGROUND, ///< Background of the window.
 };
 
-/** Widget of the WC_PERFORMANCE_DETAIL. */
+/** Widget of the #PerformanceRatingDetailWindow class. */
 enum PerformanceRatingDetailsWidgets {
 	WID_PRD_SCORE_FIRST, ///< First entry in the score list.
 	WID_PRD_SCORE_LAST = WID_PRD_SCORE_FIRST + (SCORE_END - SCORE_BEGIN) - 1, ///< Last entry in the score list.
--- a/src/widgets/group_widget.h
+++ b/src/widgets/group_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_GROUP_WIDGET_H
 #define WIDGETS_GROUP_WIDGET_H
 
-/** Widgets of the WC_TRAINS_LIST / WC_ROADVEH_LIST / WC_SHIPS_LIST / WC_AIRCRAFT_LIST. */
+/** Widgets of the #VehicleGroupWindow class. */
 enum GroupListWidgets {
 	WID_GL_CAPTION,                  ///< Caption of the window.
 	WID_GL_SORT_BY_ORDER,            ///< Sort order.
--- a/src/widgets/highscore_widget.h
+++ b/src/widgets/highscore_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_HIGHSCORE_WIDGET_H
 #define WIDGETS_HIGHSCORE_WIDGET_H
 
-/** Widgets of the WC_HIGHSCORE / WC_ENDSCREEN. */
+/** Widgets of the #EndGameHighScoreBaseWindow class and #HighScoreWindow class. */
 enum HighscoreWidgets {
 	WID_H_BACKGROUND, ///< Background of the window.
 };
--- a/src/widgets/industry_widget.h
+++ b/src/widgets/industry_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_INDUSTRY_WIDGET_H
 #define WIDGETS_INDUSTRY_WIDGET_H
 
-/** Widgets of the WC_BUILD_INDUSTRY. */
+/** Widgets of the #BuildIndustryWindow class. */
 enum DynamicPlaceIndustriesWidgets {
 	WID_DPI_MATRIX_WIDGET,  ///< Matrix of the industries.
 	WID_DPI_SCROLLBAR,      ///< Scrollbar of the matrix.
@@ -21,7 +21,7 @@
 	WID_DPI_FUND_WIDGET,    ///< Fund button.
 };
 
-/** Widgets of the WC_INDUSTRY_VIEW. */
+/** Widgets of the #IndustryViewWindow class. */
 enum IndustryViewWidgets {
 	WID_IV_CAPTION,  ///< Caption of the window.
 	WID_IV_VIEWPORT, ///< Viewport of the industry.
@@ -30,7 +30,7 @@
 	WID_IV_DISPLAY,  ///< Display chain button.
 };
 
-/** Widgets of the WC_INDUSTRY_DIRECTORY. */
+/** Widgets of the #IndustryDirectoryWindow class. */
 enum IndustryDirectoryWidgets {
 	WID_ID_DROPDOWN_ORDER,    ///< Dropdown for the order of the sort.
 	WID_ID_DROPDOWN_CRITERIA, ///< Dropdown for the criteria of the sort.
@@ -38,7 +38,7 @@
 	WID_ID_SCROLLBAR,         ///< Scrollbar of the list.
 };
 
-/** Widgets of the WC_INDUSTRY_CARGOES */
+/** Widgets of the #IndustryCargoesWindow class */
 enum IndustryCargoesWidgets {
 	WID_IC_CAPTION,   ///< Caption of the window.
 	WID_IC_NOTIFY,    ///< Row of buttons at the bottom.
--- a/src/widgets/intro_widget.h
+++ b/src/widgets/intro_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_INTRO_WIDGET_H
 #define WIDGETS_INTRO_WIDGET_H
 
-/** Widgets of the WC_SELECT_GAME. */
+/** Widgets of the #SelectGameWindow class. */
 enum SelectGameIntroWidgets {
 	WID_SGI_GENERATE_GAME,         ///< Generate game button.
 	WID_SGI_LOAD_GAME,             ///< Load game button.
--- a/src/widgets/main_widget.h
+++ b/src/widgets/main_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_MAIN_WIDGET_H
 #define WIDGETS_MAIN_WIDGET_H
 
-/** Widgets of the WC_MAIN_WINDOW. */
+/** Widgets of the #MainWindow class. */
 enum MainWidgets {
 	WID_M_VIEWPORT, ///< Main window viewport.
 };
--- a/src/widgets/misc_widget.h
+++ b/src/widgets/misc_widget.h
@@ -12,23 +12,23 @@
 #ifndef WIDGETS_MISC_WIDGET_H
 #define WIDGETS_MISC_WIDGET_H
 
-/** Widgets of the WC_LAND_INFO. */
+/** Widgets of the #LandInfoWindow class. */
 enum LandInfoWidgets {
 	WID_LI_BACKGROUND, ///< Background of the window.
 };
 
-/** Widgets of the WC_TOOLTIPS. */
+/** Widgets of the #TooltipsWindow class. */
 enum ToolTipsWidgets {
 	WID_TT_BACKGROUND, ///< Background of the window.
 };
 
-/** Widgets of the WC_GAME_OPTIONS (WC_GAME_OPTIONS is also used in others). */
+/** Widgets of the #AboutWindow class. */
 enum AboutWidgets {
 	WID_A_SCROLLING_TEXT, ///< The actually scrolling text.
 	WID_A_WEBSITE,        ///< URL of OpenTTD website.
 };
 
-/** Widgets of the WC_QUERY_STRING (WC_QUERY_STRING is also used in QueryEditSignWidgets). */
+/** Widgets of the #QueryStringWindow class. */
 enum QueryStringWidgets {
 	WID_QS_CAPTION, ///< Caption of the window.
 	WID_QS_TEXT,    ///< Text of the query.
@@ -37,7 +37,7 @@
 	WID_QS_OK,      ///< OK button.
 };
 
-/** Widgets of the WC_CONFIRM_POPUP_QUERY (WC_CONFIRM_POPUP_QUERY is also used in BootstrapAskForDownloadWidgets). */
+/** Widgets of the #QueryWindow class. */
 enum QueryWidgets {
 	WID_Q_CAPTION, ///< Caption of the window.
 	WID_Q_TEXT,    ///< Text of the query.
--- a/src/widgets/music_widget.h
+++ b/src/widgets/music_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_MUSIC_WIDGET_H
 #define WIDGETS_MUSIC_WIDGET_H
 
-/** Widgets of the WC_MUSIC_TRACK_SELECTION. */
+/** Widgets of the #MusicTrackSelectionWindow class. */
 enum MusicTrackSelectionWidgets {
 	WID_MTS_LIST_LEFT,  ///< Left button.
 	WID_MTS_PLAYLIST,   ///< Playlist.
@@ -26,7 +26,7 @@
 	WID_MTS_CLEAR,      ///< Clear button.
 };
 
-/** Widgets of the WC_MUSIC_WINDOW. */
+/** Widgets of the #MusicWindow class. */
 enum MusicWidgets {
 	WID_M_PREV,        ///< Previous button.
 	WID_M_NEXT,        ///< Next button.
--- a/src/widgets/network_chat_widget.h
+++ b/src/widgets/network_chat_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_NETWORK_CHAT_WIDGET_H
 #define WIDGETS_NETWORK_CHAT_WIDGET_H
 
-/** Widgets of the WC_SEND_NETWORK_MSG. */
+/** Widgets of the #NetworkChatWindow class. */
 enum NetWorkChatWidgets {
 	WID_NC_CLOSE,       ///< Close button.
 	WID_NC_BACKGROUND,  ///< Background of the window.
--- a/src/widgets/network_content_widget.h
+++ b/src/widgets/network_content_widget.h
@@ -12,13 +12,13 @@
 #ifndef WIDGETS_NETWORK_CONTENT_WIDGET_H
 #define WIDGETS_NETWORK_CONTENT_WIDGET_H
 
-/** Widgets of the WC_NETWORK_STATUS_WINDOW (WC_NETWORK_STATUS_WINDOW is also used in NetworkJoinStatusWidgets). */
+/** Widgets of the #NetworkContentDownloadStatusWindow class. */
 enum NetworkContentDownloadStatusWidgets {
 	WID_NCDS_BACKGROUND, ///< Background of the window.
 	WID_NCDS_CANCELOK,   ///< (Optional) Cancel/OK button.
 };
 
-/** Widgets of the WC_NETWORK_WINDOW (WC_NETWORK_WINDOW is also used in NetworkGameWidgets, NetworkStartServerWidgets, and NetworkLobbyWidgets). */
+/** Widgets of the #NetworkContentListWindow class. */
 enum NetworkContentListWidgets {
 	WID_NCL_BACKGROUND,     ///< Resize button.
 
--- a/src/widgets/network_widget.h
+++ b/src/widgets/network_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_NETWORK_WIDGET_H
 #define WIDGETS_NETWORK_WIDGET_H
 
-/** Widgets of the WC_NETWORK_WINDOW (WC_NETWORK_WINDOW is also used in NetworkContentListWidgets, NetworkStartServerWidgets, and NetworkLobbyWidgets). */
+/** Widgets of the #NetworkGameWindow class. */
 enum NetworkGameWidgets {
 	WID_NG_MAIN,               ///< Main panel.
 
@@ -51,7 +51,7 @@
 	WID_NG_CANCEL,             ///< 'Cancel' button.
 };
 
-/** Widgets of the WC_NETWORK_WINDOW (WC_NETWORK_WINDOW is also used in NetworkContentListWidgets, NetworkGameWidgets, and NetworkLobbyWidgets). */
+/** Widgets of the #NetworkStartServerWindow class. */
 enum NetworkStartServerWidgets {
 	WID_NSS_BACKGROUND,        ///< Background of the window.
 	WID_NSS_GAMENAME_LABEL,    ///< Label for the game name.
@@ -83,7 +83,7 @@
 	WID_NSS_CANCEL,            ///< 'Cancel' button.
 };
 
-/** Widgets of the WC_NETWORK_WINDOW (WC_NETWORK_WINDOW is also used in NetworkContentListWidgets, NetworkGameWidgets, and NetworkStartServerWidgets). */
+/** Widgets of the #NetworkLobbyWindow class. */
 enum NetworkLobbyWidgets {
 	WID_NL_BACKGROUND, ///< Background of the window.
 	WID_NL_TEXT,       ///< Heading text.
@@ -98,23 +98,23 @@
 	WID_NL_CANCEL,     ///< 'Cancel' button.
 };
 
-/** Widgets of the WC_CLIENT_LIST. */
+/** Widgets of the #NetworkClientListWindow class. */
 enum ClientListWidgets {
 	WID_CL_PANEL, ///< Panel of the window.
 };
 
-/** Widgets of the WC_CLIENT_LIST_POPUP. */
+/** Widgets of the #NetworkClientListPopupWindow class. */
 enum ClientListPopupWidgets {
 	WID_CLP_PANEL, ///< Panel of the window.
 };
 
-/** Widgets of the WC_NETWORK_STATUS_WINDOW (WC_NETWORK_STATUS_WINDOW is also used in NetworkContentDownloadStatusWidgets). */
+/** Widgets of the #NetworkJoinStatusWindow class. */
 enum NetworkJoinStatusWidgets {
 	WID_NJS_BACKGROUND, ///< Background of the window.
 	WID_NJS_CANCELOK,   ///< Cancel / OK button.
 };
 
-/** Widgets of the WC_COMPANY_PASSWORD_WINDOW. */
+/** Widgets of the #NetworkCompanyPasswordWindow class. */
 enum NetworkCompanyPasswordWidgets {
 	WID_NCP_BACKGROUND,               ///< Background of the window.
 	WID_NCP_LABEL,                    ///< Label in front of the password field.
--- a/src/widgets/newgrf_debug_widget.h
+++ b/src/widgets/newgrf_debug_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_NEWGRF_DEBUG_WIDGET_H
 #define WIDGETS_NEWGRF_DEBUG_WIDGET_H
 
-/** Widgets of the WC_NEWGRF_INSPECT. */
+/** Widgets of the #NewGRFInspectWindow class. */
 enum NewGRFInspectWidgets {
 	WID_NGRFI_CAPTION,   ///< The caption bar of course.
 	WID_NGRFI_PARENT,    ///< Inspect the parent.
@@ -20,7 +20,7 @@
 	WID_NGRFI_SCROLLBAR, ///< Scrollbar.
 };
 
-/** Widgets of the WC_SPRITE_ALIGNER. */
+/** Widgets of the #SpriteAlignerWindow class. */
 enum SpriteAlignerWidgets {
 	WID_SA_CAPTION,   ///< Caption of the window.
 	WID_SA_PREVIOUS,  ///< Skip to the previous sprite.
--- a/src/widgets/newgrf_widget.h
+++ b/src/widgets/newgrf_widget.h
@@ -14,7 +14,7 @@
 
 #include "../newgrf_config.h"
 
-/** Widgets of the WC_GRF_PARAMETERS. */
+/** Widgets of the #NewGRFParametersWindow class. */
 enum NewGRFParametersWidgets {
 	WID_NP_SHOW_NUMPAR,      ///< #NWID_SELECTION to optionally display #WID_NP_NUMPAR.
 	WID_NP_NUMPAR_DEC,       ///< Button to decrease number of parameters.
@@ -29,7 +29,7 @@
 	WID_NP_DESCRIPTION,      ///< Multi-line description of a parameter.
 };
 
-/** Widgets of the WC_NEWGRF_TEXTFILE. */
+/** Widgets of the #NewGRFTextfileWindow class. */
 enum NewGRFTextfileWidgets {
 	WID_NT_CAPTION,    ///< The caption of the window.
 	WID_NT_BACKGROUND, ///< Panel to draw the textfile on.
@@ -37,7 +37,7 @@
 	WID_NT_HSCROLLBAR, ///< Horizontal scrollbar to scroll through the textfile left-to-right.
 };
 
-/** Widgets of the WC_GAME_OPTIONS (WC_GAME_OPTIONS is also used in others). */
+/** Widgets of the #NewGRFWindow class. */
 enum NewGRFStateWidgets {
 	WID_NS_PRESET_LIST,       ///< Active NewGRF preset.
 	WID_NS_PRESET_SAVE,       ///< Save list of active NewGRFs as presets.
@@ -66,7 +66,7 @@
 	WID_NS_SHOW_APPLY,        ///< Select display of the buttons below the 'details'.
 };
 
-/** Widgets of the WC_MODAL_PROGRESS (WC_MODAL_PROGRESS is also used in GenerationProgressWidgets). */
+/** Widgets of the #ScanProgressWindow class. */
 enum ScanProgressWidgets {
 	WID_SP_PROGRESS_BAR,  ///< Simple progress bar.
 	WID_SP_PROGRESS_TEXT, ///< Text explaining what is happening.
--- a/src/widgets/news_widget.h
+++ b/src/widgets/news_widget.h
@@ -14,20 +14,7 @@
 
 #include "../news_type.h"
 
-/** Constants in the message options window. */
-enum MessageOptionsSpace {
-	MOS_WIDG_PER_SETTING      = 4,  ///< Number of widgets needed for each news category, starting at widget #WID_MO_START_OPTION.
-
-	MOS_LEFT_EDGE             = 6,  ///< Number of pixels between left edge of the window and the options buttons column.
-	MOS_COLUMN_SPACING        = 4,  ///< Number of pixels between the buttons and the description columns.
-	MOS_RIGHT_EDGE            = 6,  ///< Number of pixels between right edge of the window and the options descriptions column.
-	MOS_BUTTON_SPACE          = 10, ///< Additional space in the button with the option value (for better looks).
-
-	MOS_ABOVE_GLOBAL_SETTINGS = 6,  ///< Number of vertical pixels between the categories and the global options.
-	MOS_BOTTOM_EDGE           = 6,  ///< Number of pixels between bottom edge of the window and bottom of the global options.
-};
-
-/** Widgets of the WC_NEWS_WINDOW. */
+/** Widgets of the #NewsWindow class. */
 enum NewsWidgets {
 	WID_N_PANEL,       ///< Panel of the window.
 	WID_N_TITLE,       ///< Title of the company news.
@@ -48,14 +35,14 @@
 	WID_N_VEH_INFO,    ///< Some technical data of the new vehicle.
 };
 
-/** Widgets of the WC_MESSAGE_HISTORY. */
+/** Widgets of the #MessageHistoryWindow class. */
 enum MessageHistoryWidgets {
 	WID_MH_STICKYBOX,  ///< Stickybox.
 	WID_MH_BACKGROUND, ///< Background of the window.
 	WID_MH_SCROLLBAR,  ///< Scrollbar for the list.
 };
 
-/** Widgets of the WC_GAME_OPTIONS (WC_GAME_OPTIONS is also used in others). */
+/** Widgets of the #MessageOptionsWindow class. */
 enum MessageOptionWidgets {
 	WID_MO_BACKGROUND,        ///< Background of the window.
 	WID_MO_LABEL,             ///< Top label.
--- a/src/widgets/object_widget.h
+++ b/src/widgets/object_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_OBJECT_WIDGET_H
 #define WIDGETS_OBJECT_WIDGET_H
 
-/** Widgets of the WC_BUILD_OBJECT. */
+/** Widgets of the #BuildObjectWindow class. */
 enum BuildObjectWidgets {
 	WID_BO_CLASS_LIST,     ///< The list with classes.
 	WID_BO_SCROLLBAR,      ///< The scrollbar associated with the list.
--- a/src/widgets/order_widget.h
+++ b/src/widgets/order_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_ORDER_WIDGET_H
 #define WIDGETS_ORDER_WIDGET_H
 
-/** Widgets of the WC_VEHICLE_ORDERS. */
+/** Widgets of the #OrdersWindow class. */
 enum OrderWidgets {
 	WID_O_CAPTION,                   ///< Caption of the window.
 	WID_O_TIMETABLE_VIEW,            ///< Toggle timetable view.
--- a/src/widgets/osk_widget.h
+++ b/src/widgets/osk_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_OSK_WIDGET_H
 #define WIDGETS_OSK_WIDGET_H
 
-/** Widgets of the WC_OSK. */
+/** Widgets of the #OskWindow class. */
 enum OnScreenKeyboardWidgets {
 	WID_OSK_CAPTION,   ///< Caption of window.
 	WID_OSK_TEXT,      ///< Edit box.
--- a/src/widgets/rail_widget.h
+++ b/src/widgets/rail_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_RAIL_WIDGET_H
 #define WIDGETS_RAIL_WIDGET_H
 
-/** Widgets of the WC_BUILD_TOOLBAR (WC_BUILD_TOOLBAR is also used in others). */
+/** Widgets of the #BuildRailToolbarWindow ckass. */
 enum RailToolbarWidgets {
 	/* Name starts with RA instead of R, because of collision with RoadToolbarWidgets */
 	WID_RAT_CAPTION,        ///< Caption of the window.
@@ -32,7 +32,7 @@
 	WID_RAT_CONVERT_RAIL,   ///< Convert other rail to this type.
 };
 
-/** Widgets of the WC_BUILD_STATION (WC_BUILD_STATION is also used in others). */
+/** Widgets of the #BuildRailStationWindow class. */
 enum BuildRailStationWidgets {
 	/* Name starts with BRA instead of BR, because of collision with BuildRoadStationWidgets */
 	WID_BRAS_PLATFORM_DIR_X,       ///< Button to select '/' view.
@@ -75,7 +75,7 @@
 	WID_BRAS_PLATFORM_LEN_BEGIN = WID_BRAS_PLATFORM_LEN_1 - 1, ///< Helper for determining the chosen platform length.
 };
 
-/** Widgets of the WC_BUILD_SIGNAL. */
+/** Widgets of the #BuildSignalWindow class. */
 enum BuildSignalWidgets {
 	WID_BS_SEMAPHORE_NORM,     ///< Build a semaphore normal block signal
 	WID_BS_SEMAPHORE_ENTRY,    ///< Build a semaphore entry block signal
@@ -95,7 +95,7 @@
 	WID_BS_DRAG_SIGNALS_DENSITY_INCREASE, ///< Increase the signal density.
 };
 
-/** Widgets of the WC_BUILD_DEPOT (WC_BUILD_DEPOT is also used in others). */
+/** Widgets of the #BuildRailDepotWindow class. */
 enum BuildRailDepotWidgets {
 	/* Name starts with BRA instead of BR, because of collision with BuildRoadDepotWidgets */
 	WID_BRAD_DEPOT_NE, ///< Build a depot with the entrace in the north east.
@@ -104,7 +104,7 @@
 	WID_BRAD_DEPOT_NW, ///< Build a depot with the entrace in the north west.
 };
 
-/** Widgets of the WC_BUILD_DEPOT (WC_BUILD_DEPOT is also used in others). */
+/** Widgets of the #BuildRailWaypointWindow class. */
 enum BuildRailWaypointWidgets {
 	WID_BRW_WAYPOINT_MATRIX, ///< Matrix with waypoints.
 	WID_BRW_WAYPOINT,        ///< A single waypoint.
--- a/src/widgets/road_widget.h
+++ b/src/widgets/road_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_ROAD_WIDGET_H
 #define WIDGETS_ROAD_WIDGET_H
 
-/** Widgets of the WC_SCEN_BUILD_TOOLBAR / WC_BUILD_TOOLBAR (WC_SCEN_BUILD_TOOLBAR / WC_BUILD_TOOLBAR is also used in others). */
+/** Widgets of the #BuildRoadToolbarWindow class. */
 enum RoadToolbarWidgets {
 	/* Name starts with RO instead of R, because of collision with RailToolbarWidgets */
 	WID_ROT_ROAD_X,         ///< Build road in x-direction.
@@ -28,7 +28,7 @@
 	WID_ROT_REMOVE,         ///< Remove road.
 };
 
-/** Widgets of the WC_BUILD_DEPOT (WC_BUILD_DEPOT is also used in others). */
+/** Widgets of the #BuildRoadDepotWindow class. */
 enum BuildRoadDepotWidgets {
 	/* Name starts with BRO instead of BR, because of collision with BuildRailDepotWidgets */
 	WID_BROD_CAPTION,   ///< Caption of the window.
@@ -38,7 +38,7 @@
 	WID_BROD_DEPOT_NW,  ///< Depot with NW entry.
 };
 
-/** Widgets of the WC_BUS_STATION / WC_TRUCK_STATION. */
+/** Widgets of the #BuildRoadStationWindow class. */
 enum BuildRoadStationWidgets {
 	/* Name starts with BRO instead of BR, because of collision with BuildRailStationWidgets */
 	WID_BROS_CAPTION,       ///< Caption of the window.
--- a/src/widgets/settings_widget.h
+++ b/src/widgets/settings_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_SETTINGS_WIDGET_H
 #define WIDGETS_SETTINGS_WIDGET_H
 
-/** Widgets of the WC_GAME_OPTIONS (WC_GAME_OPTIONS is also used in others). */
+/** Widgets of the #GameOptionsWindow class. */
 enum GameOptionsWidgets {
 	WID_GO_BACKGROUND,             ///< Background of the window.
 	WID_GO_CURRENCY_DROPDOWN,      ///< Currency dropdown.
@@ -34,7 +34,7 @@
 	WID_GO_BASE_MUSIC_DESCRIPTION, ///< Description of selected base music set.
 };
 
-/** Widgets of the WC_GAME_OPTIONS (WC_GAME_OPTIONS is also used in others). */
+/** Widgets of the #GameDifficultyWindow class. */
 enum GameDifficultyWidgets {
 	WID_GD_LVL_EASY,      ///< Easy level button.
 	WID_GD_LVL_MEDIUM,    ///< Medium level button.
@@ -47,13 +47,13 @@
 	WID_GD_OPTIONS_START, ///< Start of the options.
 };
 
-/** Widgets of the WC_GAME_OPTIONS (WC_GAME_OPTIONS is also used in others). */
+/** Widgets of the #GameSettingsWindow class. */
 enum GameSettingsWidgets {
 	WID_GS_OPTIONSPANEL, ///< Panel widget containing the option lists.
 	WID_GS_SCROLLBAR,    ///< Scrollbar.
 };
 
-/** Widgets of the WC_CUSTOM_CURRENCY. */
+/** Widgets of the #CustomCurrencyWindow class. */
 enum CustomCurrencyWidgets {
 	WID_CC_RATE_DOWN,      ///< Down button.
 	WID_CC_RATE_UP,        ///< Up button.
--- a/src/widgets/sign_widget.h
+++ b/src/widgets/sign_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_SIGN_WIDGET_H
 #define WIDGETS_SIGN_WIDGET_H
 
-/** Widgets of the WC_SIGN_LIST. */
+/** Widgets of the #SignListWindow class. */
 enum SignListWidgets {
 	/* Name starts with SI instead of S, because of collision with SaveLoadWidgets */
 	WID_SIL_CAPTION,               ///< Caption of the window.
@@ -23,7 +23,7 @@
 	WID_SIL_FILTER_CLEAR_BTN,      ///< Button to clear the filter.
 };
 
-/** Widgets of the WC_QUERY_STRING (WC_QUERY_STRING is also used in QueryStringWidgets). */
+/** Widgets of the #SignWindow class. */
 enum QueryEditSignWidgets {
 	WID_QES_CAPTION,  ///< Caption of the window.
 	WID_QES_TEXT,     ///< Text of the query.
--- a/src/widgets/smallmap_widget.h
+++ b/src/widgets/smallmap_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_SMALLMAP_WIDGET_H
 #define WIDGETS_SMALLMAP_WIDGET_H
 
-/** Widgets of the WC_SMALLMAP. */
+/** Widgets of the #SmallMapWindow class. */
 enum SmallMapWidgets {
 	WID_SM_CAPTION,        ///< Caption of the window.
 	WID_SM_MAP_BORDER,     ///< Border around the smallmap.
--- a/src/widgets/station_widget.h
+++ b/src/widgets/station_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_STATION_WIDGET_H
 #define WIDGETS_STATION_WIDGET_H
 
-/** Widgets of the WC_STATION_VIEW. */
+/** Widgets of the #StationViewWindow class. */
 enum StationViewWidgets {
 	WID_SV_CAPTION,            ///< Caption of the window.
 	WID_SV_WAITING,            ///< List of waiting cargo.
@@ -27,7 +27,7 @@
 	WID_SV_PLANES,             ///< List of scheduled planes button.
 };
 
-/** Widgets of the WC_STATION_LIST. */
+/** Widgets of the #CompanyStationsWindow class. */
 enum StationListWidgets {
 	/* Name starts with ST instead of S, because of collision with SaveLoadWidgets */
 	WID_STL_CAPTION,        ///< Caption of the window.
@@ -51,7 +51,7 @@
 	WID_STL_CARGOSTART,     ///< Widget numbers used for list of cargo types (not present in _company_stations_widgets).
 };
 
-/** Widgets of the WC_SELECT_STATION. */
+/** Widgets of the #SelectStationWindow class. */
 enum JoinStationWidgets {
 	WID_JS_CAPTION,   // Caption of the window.
 	WID_JS_PANEL,     // Main panel.
--- a/src/widgets/statusbar_widget.h
+++ b/src/widgets/statusbar_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_STATUSBAR_WIDGET_H
 #define WIDGETS_STATUSBAR_WIDGET_H
 
-/** Widgets of the WC_STATUS_BAR. */
+/** Widgets of the #StatusBarWindow class. */
 enum StatusbarWidget {
 	WID_S_LEFT,   ///< Left part of the statusbar; date is shown there.
 	WID_S_MIDDLE, ///< Middle part; current news or company name or *** SAVING *** or *** PAUSED ***.
--- a/src/widgets/subsidy_widget.h
+++ b/src/widgets/subsidy_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_SUBSIDY_WIDGET_H
 #define WIDGETS_SUBSIDY_WIDGET_H
 
-/** Widgets of the WC_SUBSIDIES_LIST. */
+/** Widgets of the #SubsidyListWindow class. */
 enum SubsidyListWidgets {
 	/* Name starts with SU instead of S, because of collision with SaveLoadWidgets. */
 	WID_SUL_PANEL,     ///< Main panel of window.
--- a/src/widgets/terraform_widget.h
+++ b/src/widgets/terraform_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_TERRAFORM_WIDGET_H
 #define WIDGETS_TERRAFORM_WIDGET_H
 
-/** Widgets of the WC_SCEN_LAND_GEN (WC_SCEN_LAND_GEN is also used in EditorTerraformToolbarWidgets). */
+/** Widgets of the #TerraformToolbarWindow class. */
 enum TerraformToolbarWidgets {
 	WID_TT_SHOW_PLACE_OBJECT,                 ///< Should the place object button be shown?
 	WID_TT_BUTTONS_START,                     ///< Start of pushable buttons.
@@ -26,7 +26,7 @@
 	WID_TT_PLACE_OBJECT,                      ///< Place object button.
 };
 
-/** Widgets of the WC_SCEN_LAND_GEN (WC_SCEN_LAND_GEN is also used in TerraformToolbarWidgets). */
+/** Widgets of the #ScenarioEditorLandscapeGenerationWindow class. */
 enum EditorTerraformToolbarWidgets {
 	WID_ETT_SHOW_PLACE_DESERT,                   ///< Should the place desert button be shown?
 	WID_ETT_START,                               ///< Used for iterations.
--- a/src/widgets/timetable_widget.h
+++ b/src/widgets/timetable_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_TIMETABLE_WIDGET_H
 #define WIDGETS_TIMETABLE_WIDGET_H
 
-/** Widgets of the WC_VEHICLE_TIMETABLE. */
+/** Widgets of the #TimetableWindow class. */
 enum VehicleTimetableWidgets {
 	WID_VT_CAPTION,                     ///< Caption of the window.
 	WID_VT_ORDER_VIEW,                  ///< Order view.
--- a/src/widgets/toolbar_widget.h
+++ b/src/widgets/toolbar_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_TOOLBAR_WIDGET_H
 #define WIDGETS_TOOLBAR_WIDGET_H
 
-/** Widgets of the WC_MAIN_TOOLBAR, when in normal game mode. */
+/** Widgets of the #MainToolbarWindow class. */
 enum ToolbarNormalWidgets {
 	WID_TN_PAUSE,         ///< Pause the game.
 	WID_TN_FAST_FORWARD,  ///< Fast forward the game.
@@ -46,7 +46,7 @@
 	WID_TN_END,           ///< Helper for knowing the amount of widgets.
 };
 
-/** Widgets of the WC_MAIN_TOOLBAR, when in scenario editor. */
+/** Widgets of the #ScenarioEditorToolbarWindow class. */
 enum ToolbarEditorWidgets {
 	WID_TE_PAUSE,         ///< Pause the game.
 	WID_TE_FAST_FORWARD,  ///< Fast forward the game.
--- a/src/widgets/town_widget.h
+++ b/src/widgets/town_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_TOWN_WIDGET_H
 #define WIDGETS_TOWN_WIDGET_H
 
-/** Widgets of the WC_TOWN_DIRECTORY. */
+/** Widgets of the #TownDirectoryWindow class. */
 enum TownDirectoryWidgets {
 	WID_TD_SORT_NAME,        ///< Sort by town name.
 	WID_TD_SORT_POPULATION,  ///< Sort by town population.
@@ -21,7 +21,7 @@
 	WID_TD_WORLD_POPULATION, ///< The world's population.
 };
 
-/** Widgets of the WC_TOWN_AUTHORITY. */
+/** Widgets of the #TownAuthorityWindow class. */
 enum TownAuthorityWidgets {
 	WID_TA_CAPTION,      ///< Caption of window.
 	WID_TA_RATING_INFO,  ///< Overview with ratings for each company.
@@ -31,7 +31,7 @@
 	WID_TA_EXECUTE,      ///< Do-it button.
 };
 
-/** Widgets of the WC_TOWN_VIEW. */
+/** Widgets of the #TownViewWindow class. */
 enum TownViewWidgets {
 	WID_TV_CAPTION,        ///< Caption of window.
 	WID_TV_VIEWPORT,       ///< View of the center of the town.
@@ -43,7 +43,7 @@
 	WID_TV_DELETE,         ///< Delete this town (scenario editor only).
 };
 
-/** Widgets of the WC_FOUND_TOWN. */
+/** Widgets of the #FoundTownWindow class. */
 enum TownFoundingWidgets {
 	WID_TF_NEW_TOWN,          ///< Create a new town.
 	WID_TF_RANDOM_TOWN,       ///< Randomly place a town.
--- a/src/widgets/transparency_widget.h
+++ b/src/widgets/transparency_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_TRANSPARENCY_WIDGET_H
 #define WIDGETS_TRANSPARENCY_WIDGET_H
 
-/** Widgets of the WC_TRANSPARENCY_TOOLBAR. */
+/** Widgets of the #TransparenciesWindow class. */
 enum TransparencyToolbarWidgets {
 	/* Button row. */
 	WID_TT_BEGIN,                    ///< First toggle button.
--- a/src/widgets/tree_widget.h
+++ b/src/widgets/tree_widget.h
@@ -12,20 +12,20 @@
 #ifndef WIDGETS_TREE_WIDGET_H
 #define WIDGETS_TREE_WIDGET_H
 
-/** Widgets of the WC_BUILD_TREES. */
+/** Widgets of the #BuildTreesWindow class. */
 enum BuildTreesWidgets {
 	WID_BT_TYPE_11,         ///< Tree 1st column 1st row.
 	WID_BT_TYPE_12,         ///< Tree 1st column 2nd row.
 	WID_BT_TYPE_13,         ///< Tree 1st column 3rd row.
 	WID_BT_TYPE_14,         ///< Tree 1st column 4th row.
-	WID_BT_TYPE_21,         ///< Tree 1st column 1st row.
-	WID_BT_TYPE_22,         ///< Tree 1st column 2nd row.
-	WID_BT_TYPE_23,         ///< Tree 1st column 3rd row.
-	WID_BT_TYPE_24,         ///< Tree 1st column 4th row.
-	WID_BT_TYPE_31,         ///< Tree 1st column 1st row.
-	WID_BT_TYPE_32,         ///< Tree 1st column 2nd row.
-	WID_BT_TYPE_33,         ///< Tree 1st column 3rd row.
-	WID_BT_TYPE_34,         ///< Tree 1st column 4th row.
+	WID_BT_TYPE_21,         ///< Tree 2st column 1st row.
+	WID_BT_TYPE_22,         ///< Tree 2st column 2nd row.
+	WID_BT_TYPE_23,         ///< Tree 2st column 3rd row.
+	WID_BT_TYPE_24,         ///< Tree 2st column 4th row.
+	WID_BT_TYPE_31,         ///< Tree 3st column 1st row.
+	WID_BT_TYPE_32,         ///< Tree 3st column 2nd row.
+	WID_BT_TYPE_33,         ///< Tree 3st column 3rd row.
+	WID_BT_TYPE_34,         ///< Tree 3st column 4th row.
 	WID_BT_TYPE_RANDOM,     ///< Button to build random type of tree.
 	WID_BT_MANY_RANDOM,     ///< Button to build many random trees.
 };
--- a/src/widgets/vehicle_widget.h
+++ b/src/widgets/vehicle_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_VEHICLE_WIDGET_H
 #define WIDGETS_VEHICLE_WIDGET_H
 
-/** Widgets of the WC_VEHICLE_VIEW. */
+/** Widgets of the #VehicleViewWindow class. */
 enum VehicleViewWidgets {
 	WID_VV_CAPTION,            ///< Caption of window.
 	WID_VV_VIEWPORT,           ///< Viewport widget.
@@ -29,7 +29,7 @@
 	WID_VV_FORCE_PROCEED,      ///< Force this vehicle to pass a signal at danger.
 };
 
-/** Widgets of the WC_VEHICLE_REFIT. */
+/** Widgets of the #RefitWindow class. */
 enum VehicleRefitWidgets {
 	WID_VR_CAPTION,               ///< Caption of window.
 	WID_VR_VEHICLE_PANEL_DISPLAY, ///< Display with a representation of the vehicle to refit.
@@ -42,7 +42,7 @@
 	WID_VR_REFIT,                 ///< Perform the refit.
 };
 
-/** Widgets of the WC_VEHICLE_DETAILS. */
+/** Widgets of the #VehicleDetailsWindow class. */
 enum VehicleDetailsWidgets {
 	WID_VD_CAPTION,                     ///< Caption of window.
 	WID_VD_RENAME_VEHICLE,              ///< Rename this vehicle.
@@ -59,7 +59,7 @@
 	WID_VD_DETAILS_TOTAL_CARGO,         ///< Show the capacity and carried cargo amounts aggregrated per cargo of the train.
 };
 
-/** Widgets of the vehicle lists (WC_TRAINS_LIST, WC_ROADVEH_LIST, WC_SHIPS_LIST, WC_AIRCRAFT_LIST). */
+/** Widgets of the #VehicleListWindow class. */
 enum VehicleListWidgets {
 	WID_VL_CAPTION,                  ///< Caption of window.
 	WID_VL_SORT_ORDER,               ///< Sort order.
--- a/src/widgets/viewport_widget.h
+++ b/src/widgets/viewport_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_VIEWPORT_WIDGET_H
 #define WIDGETS_VIEWPORT_WIDGET_H
 
-/** Widgets of the WC_EXTRA_VIEW_PORT. */
+/** Widgets of the #ExtraViewportWindow class. */
 enum ExtraViewportWidgets {
 	WID_EV_CAPTION,      ///< Caption of window.
 	WID_EV_VIEWPORT,     ///< The viewport.
--- a/src/widgets/waypoint_widget.h
+++ b/src/widgets/waypoint_widget.h
@@ -12,7 +12,7 @@
 #ifndef WIDGETS_WAYPOINT_WIDGET_H
 #define WIDGETS_WAYPOINT_WIDGET_H
 
-/** Widgets of the WC_WAYPOINT_VIEW. */
+/** Widgets of the #WaypointWindow class. */
 enum WaypointWidgets {
 	WID_W_CAPTION,       ///< Caption of window.
 	WID_W_VIEWPORT,      ///< The viewport on this waypoint.
--- a/src/window_type.h
+++ b/src/window_type.h
@@ -12,124 +12,622 @@
 #ifndef WINDOW_TYPE_H
 #define WINDOW_TYPE_H
 
-
 /**
- * Window classes
+ * Window classes.
  */
 enum WindowClass {
-	WC_NONE,                    ///< No window, redirects to WC_MAIN_WINDOW.
+	WC_NONE, ///< No window, redirects to WC_MAIN_WINDOW.
+
+	/**
+	 * Main window; Window numbers:
+	 *   - 0 = #MainWidgets
+	 */
+	WC_MAIN_WINDOW = WC_NONE,
+
+	/**
+	 * Main toolbar (the long bar at the top); Window numbers:
+	 *   - 0 = #ToolbarNormalWidgets
+	 *   - 0 = #ToolbarEditorWidgets
+	 */
+	WC_MAIN_TOOLBAR,
+
+	/**
+	 * Statusbar (at the bottom of your screen); Window numbers:
+	 *   - 0 = #StatusbarWidget
+	 */
+	WC_STATUS_BAR,
+
+	/**
+	 * Build toolbar; Window numbers:
+	 *   - 0 = #RailToolbarWidgets
+	 *   - #TRANSPORT_AIR = #AirportToolbarWidgets
+	 *   - #TRANSPORT_WATER = #DockToolbarWidgets
+	 *   - #TRANSPORT_ROAD = #RoadToolbarWidgets
+	 */
+	WC_BUILD_TOOLBAR,
 
-	WC_MAIN_WINDOW = WC_NONE,   ///< Main window.
-	WC_MAIN_TOOLBAR,            ///< Main toolbar (the long bar at the top..
-	WC_STATUS_BAR,              ///< Statusbar (at the bottom of your screen).
-	WC_BUILD_TOOLBAR,           ///< Build toolbar.
-	WC_SCEN_BUILD_TOOLBAR,      ///< Scenario build toolbar.
-	WC_BUILD_TREES,             ///< Build trees toolbar.
-	WC_TRANSPARENCY_TOOLBAR,    ///< Transparency toolbar.
-	WC_BUILD_SIGNAL,            ///< Build signal toolbar.
+	/**
+	 * Scenario build toolbar; Window numbers:
+	 *   - 0 = #RoadToolbarWidgets
+	 *   - #TRANSPORT_WATER = #DockToolbarWidgets
+	 */
+	WC_SCEN_BUILD_TOOLBAR,
+
+	/**
+	 * Build trees toolbar; Window numbers:
+	 *   - 0 = #BuildTreesWidgets
+	 */
+	WC_BUILD_TREES,
+
+	/**
+	 * Transparency toolbar; Window numbers:
+	 *   - 0 = #TransparencyToolbarWidgets
+	 */
+	WC_TRANSPARENCY_TOOLBAR,
+
+	/**
+	 * Build signal toolbar; Window numbers:
+	 *   - #TRANSPORT_RAIL = #BuildSignalWidgets
+	 */
+	WC_BUILD_SIGNAL,
+
+	/**
+	 * Small map; Window numbers:
+	 *   - 0 = #SmallMapWidgets
+	 */
+	WC_SMALLMAP,
+
+	/**
+	 * Error message; Window numbers:
+	 *   - 0 = #ErrorMessageWidgets
+	 */
+	WC_ERRMSG,
+
+	/**
+	 * Tooltip window; Window numbers:
+	 *   - 0 = #ToolTipsWidgets
+	 */
+	WC_TOOLTIPS,
 
-	WC_SMALLMAP,                ///< Small map.
-	WC_ERRMSG,                  ///< Error message.
-	WC_TOOLTIPS,                ///< Tooltip window.
-	WC_QUERY_STRING,            ///< Query string window.
-	WC_CONFIRM_POPUP_QUERY,     ///< Popup with confirm question.
-	WC_SAVELOAD,                ///< Saveload window.
-	WC_LAND_INFO,               ///< Land info window.
-	WC_DROPDOWN_MENU,           ///< Drop down menu.
-	WC_OSK,                     ///< On Screen Keyboard.
-	WC_SET_DATE,                ///< Set date.
+	/**
+	 * Query string window; Window numbers: (TODO - CONFLICT)
+	 *   - 0 = #QueryStringWidgets
+	 *   - 0 = #QueryEditSignWidgets
+	 */
+	WC_QUERY_STRING,
+
+	/**
+	 * Popup with confirm question; Window numbers: (TODO - CONFLICT)
+	 *   - 0 = #BootstrapAskForDownloadWidgets
+	 *   - 0 = #QueryWidgets
+	 */
+	WC_CONFIRM_POPUP_QUERY,
+
+
+	/**
+	 * Saveload window; Window numbers:
+	 *   - 0 = #SaveLoadWidgets
+	 */
+	WC_SAVELOAD,
+
+	/**
+	 * Land info window; Window numbers:
+	 *   - 0 = #LandInfoWidgets
+	 */
+	WC_LAND_INFO,
+
+	/**
+	 * Drop down menu; Window numbers:
+	 *   - 0 = #DropdownMenuWidgets
+	 */
+	WC_DROPDOWN_MENU,
+
+	/**
+	 * On Screen Keyboard; Window numbers:
+	 *   - 0 = #OnScreenKeyboardWidgets
+	 */
+	WC_OSK,
+
+	/**
+	 * Set date; Window numbers:
+	 *   - #VehicleID = #SetDateWidgets
+	 */
+	WC_SET_DATE,
+
+
+	/**
+	 * AI settings; Window numbers:
+	 *   - 0 = #AISettingsWidgets
+	 */
+	WC_AI_SETTINGS,
+
+	/**
+	 * NewGRF parameters; Window numbers:
+	 *   - 0 = #NewGRFParametersWidgets
+	 */
+	WC_GRF_PARAMETERS,
+
+	/**
+	 * textfile; Window numbers:
+	 *   - 0 = #NewGRFTextfileWidgets
+	 */
+	WC_NEWGRF_TEXTFILE,
+
+
+	/**
+	 * Town authority; Window numbers:
+	 *   - #TownID = #TownAuthorityWidgets
+	 */
+	WC_TOWN_AUTHORITY,
+
+	/**
+	 * Vehicle details; Window numbers:
+	 *   - #VehicleID = #VehicleDetailsWidgets
+	 */
+	WC_VEHICLE_DETAILS,
 
-	WC_AI_SETTINGS,             ///< AI settings.
-	WC_GRF_PARAMETERS,          ///< NewGRF parameters.
-	WC_NEWGRF_TEXTFILE,         ///< NewGRF textfile.
+	/**
+	 * Vehicle refit; Window numbers:
+	 *   - #VehicleID = #VehicleRefitWidgets
+	 */
+	WC_VEHICLE_REFIT,
+
+	/**
+	 * Vehicle orders; Window numbers:
+	 *   - #VehicleID = #OrderWidgets
+	 */
+	WC_VEHICLE_ORDERS,
+
+	/**
+	 * Replace vehicle window; Window numbers:
+	 *   - #VehicleType = #ReplaceVehicleWidgets
+	 */
+	WC_REPLACE_VEHICLE,
+
+	/**
+	 * Vehicle timetable; Window numbers:
+	 *   - #VehicleID = #VehicleTimetableWidgets
+	 */
+	WC_VEHICLE_TIMETABLE,
+
+	/**
+	 * Company colour selection; Window numbers:
+	 *   - #CompanyID = #SelectCompanyLiveryWidgets
+	 */
+	WC_COMPANY_COLOUR,
+
+	/**
+	 * Alter company face window; Window numbers:
+	 *   - #CompanyID = #SelectCompanyManagerFaceWidgets
+	 */
+	WC_COMPANY_MANAGER_FACE,
 
-	WC_TOWN_AUTHORITY,          ///< Town authority.
-	WC_VEHICLE_DETAILS,         ///< Vehicle details.
-	WC_VEHICLE_REFIT,           ///< Vehicle refit.
-	WC_VEHICLE_ORDERS,          ///< Vehicle orders.
-	WC_REPLACE_VEHICLE,         ///< Replace vehicle window.
-	WC_VEHICLE_TIMETABLE,       ///< Vehicle timetable.
-	WC_COMPANY_COLOUR,          ///< Company colour selection.
-	WC_COMPANY_MANAGER_FACE,    ///< Alter company face window.
-	WC_SELECT_STATION,          ///< Select station (when joining stations).
+	/**
+	 * Select station (when joining stations); Window numbers:
+	 *   - 0 = #JoinStationWidgets
+	 */
+	WC_SELECT_STATION,
+
+	/**
+	 * News window; Window numbers:
+	 *   - 0 = #NewsWidgets
+	 */
+	WC_NEWS_WINDOW,
+
+	/**
+	 * Town directory; Window numbers:
+	 *   - 0 = #TownDirectoryWidgets
+	 */
+	WC_TOWN_DIRECTORY,
+
+	/**
+	 * Subsidies list; Window numbers:
+	 *   - 0 = #SubsidyListWidgets
+	 */
+	WC_SUBSIDIES_LIST,
+
+	/**
+	 * Industry directory; Window numbers:
+	 *   - 0 = #IndustryDirectoryWidgets
+	 */
+	WC_INDUSTRY_DIRECTORY,
+
+	/**
+	 * News history list; Window numbers:
+	 *   - 0 = #MessageHistoryWidgets
+	 */
+	WC_MESSAGE_HISTORY,
 
-	WC_NEWS_WINDOW,             ///< News window.
-	WC_TOWN_DIRECTORY,          ///< Town directory.
-	WC_SUBSIDIES_LIST,          ///< Subsidies list.
-	WC_INDUSTRY_DIRECTORY,      ///< Industry directory.
-	WC_MESSAGE_HISTORY,         ///< News history list.
-	WC_SIGN_LIST,               ///< Sign list.
-	WC_AI_LIST,                 ///< AI list.
+	/**
+	 * Sign list; Window numbers:
+	 *   - 0 = #SignListWidgets
+	 */
+	WC_SIGN_LIST,
+
+	/**
+	 * AI list; Window numbers:
+	 *   - 0 = #AIListWidgets
+	 */
+	WC_AI_LIST,
+
+
+	/**
+	 * Station list; Window numbers:
+	 *   - #CompanyID = #StationListWidgets
+	 */
+	WC_STATION_LIST,
+
+	/**
+	 * Trains list; Window numbers:
+	 *   - Packed value = #GroupListWidgets / #VehicleListWidgets
+	 */
+	WC_TRAINS_LIST,
+
+	/**
+	 * Road vehicle list; Window numbers:
+	 *   - Packed value = #GroupListWidgets / #VehicleListWidgets
+	 */
+	WC_ROADVEH_LIST,
+
+	/**
+	 * Ships list; Window numbers:
+	 *   - Packed value = #GroupListWidgets / #VehicleListWidgets
+	 */
+	WC_SHIPS_LIST,
 
-	WC_STATION_LIST,            ///< Station list.
-	WC_TRAINS_LIST,             ///< Trains list.
-	WC_ROADVEH_LIST,            ///< Road vehicle list.
-	WC_SHIPS_LIST,              ///< Ships list.
-	WC_AIRCRAFT_LIST,           ///< Aircraft list.
+	/**
+	 * Aircraft list; Window numbers:
+	 *   - Packed value = #GroupListWidgets / #VehicleListWidgets
+	 */
+	WC_AIRCRAFT_LIST,
+
+
+	/**
+	 * Town view; Window numbers:
+	 *   - #TownID = #TownViewWidgets
+	 */
+	WC_TOWN_VIEW,
+
+	/**
+	 * Vehicle view; Window numbers:
+	 *   - #VehicleID = #VehicleViewWidgets
+	 */
+	WC_VEHICLE_VIEW,
+
+	/**
+	 * Station view; Window numbers:
+	 *   - #StationID = #StationViewWidgets
+	 */
+	WC_STATION_VIEW,
+
+	/**
+	 * Depot view; Window numbers:
+	 *   - #TileIndex = #DepotWidgets
+	 */
+	WC_VEHICLE_DEPOT,
+
+	/**
+	 * Waypoint view; Window numbers:
+	 *   - #WaypointID = #WaypointWidgets
+	 */
+	WC_WAYPOINT_VIEW,
+
+	/**
+	 * Industry view; Window numbers:
+	 *   - #IndustryID = #IndustryViewWidgets
+	 */
+	WC_INDUSTRY_VIEW,
 
-	WC_TOWN_VIEW,               ///< Town view.
-	WC_VEHICLE_VIEW,            ///< Vehicle view.
-	WC_STATION_VIEW,            ///< Station view.
-	WC_VEHICLE_DEPOT,           ///< Depot view.
-	WC_WAYPOINT_VIEW,           ///< Waypoint view.
-	WC_INDUSTRY_VIEW,           ///< Industry view.
-	WC_COMPANY,                 ///< Company view.
+	/**
+	 * Company view; Window numbers:
+	 *   - #CompanyID = #CompanyWidgets
+	 */
+	WC_COMPANY,
+
+
+	/**
+	 * Build object; Window numbers:
+	 *   - 0 = #BuildObjectWidgets
+	 */
+	WC_BUILD_OBJECT,
+
+	/**
+	 * Build vehicle; Window numbers:
+	 *   - #VehicleType = #BuildVehicleWidgets
+	 *   - #TileIndex = #BuildVehicleWidgets
+	 */
+	WC_BUILD_VEHICLE,
+
+	/**
+	 * Build bridge; Window numbers:
+	 *   - #TransportType = #BuildBridgeSelectionWidgets
+	 */
+	WC_BUILD_BRIDGE,
+
+	/**
+	 * Build station; Window numbers:
+	 *   - #TRANSPORT_AIR = #AirportPickerWidgets
+	 *   - #TRANSPORT_WATER = #DockToolbarWidgets
+	 *   - #TRANSPORT_RAIL = #BuildRailStationWidgets
+	 */
+	WC_BUILD_STATION,
+
+	/**
+	 * Build bus station; Window numbers:
+	 *   - #TRANSPORT_ROAD = #BuildRoadStationWidgets
+	 */
+	WC_BUS_STATION,
+
+	/**
+	 * Build truck station; Window numbers:
+	 *   - #TRANSPORT_ROAD = #BuildRoadStationWidgets
+	 */
+	WC_TRUCK_STATION,
+
+	/**
+	 * Build depot; Window numbers: (TODO - CONFLICT)
+	 *   - #TRANSPORT_WATER = #BuildDockDepotWidgets
+	 *   - #TRANSPORT_RAIL = #BuildRailDepotWidgets
+	 *   - #TRANSPORT_RAIL = #BuildRailWaypointWidgets
+	 *   - #TRANSPORT_ROAD = #BuildRoadDepotWidgets
+	 */
+	WC_BUILD_DEPOT,
+
+	/**
+	 * Found a town; Window numbers:
+	 *   - 0 = #TownFoundingWidgets
+	 */
+	WC_FOUND_TOWN,
+
+	/**
+	 * Build industry; Window numbers:
+	 *   - 0 = #DynamicPlaceIndustriesWidgets
+	 */
+	WC_BUILD_INDUSTRY,
+
+
+	/**
+	 * Select game window; Window numbers:
+	 *   - 0 = #SelectGameIntroWidgets
+	 */
+	WC_SELECT_GAME,
 
-	WC_BUILD_OBJECT,            ///< Build object
-	WC_BUILD_VEHICLE,           ///< Build vehicle.
-	WC_BUILD_BRIDGE,            ///< Build bridge.
-	WC_BUILD_STATION,           ///< Build station.
-	WC_BUS_STATION,             ///< Build bus station.
-	WC_TRUCK_STATION,           ///< Build truck station.
-	WC_BUILD_DEPOT,             ///< Build depot.
-	WC_FOUND_TOWN,              ///< Found a town.
-	WC_BUILD_INDUSTRY,          ///< Build industry.
+	/**
+	 * Landscape generation (in Scenario Editor); Window numbers:
+	 *   - 0 = #TerraformToolbarWidgets
+	 *   - 0 = #EditorTerraformToolbarWidgets
+	 */
+	WC_SCEN_LAND_GEN,
+
+	/**
+	 * Generate landscape (newgame); Window numbers:
+	 *   - GLWM_SCENARIO = #CreateScenarioWidgets
+	 *   - #GenenerateLandscapeWindowMode = #GenerateLandscapeWidgets
+	 */
+	WC_GENERATE_LANDSCAPE,
+
+	/**
+	 * Progress report of landscape generation; Window numbers: (TODO - CONFLICT)
+	 *   - 0 = #GenerationProgressWidgets
+	 *   - 0 = #ScanProgressWidgets
+	 */
+	WC_MODAL_PROGRESS,
+
+
+	/**
+	 * Network window; Window numbers: (TODO - CONFLICT)
+	 *   - 0 = #NetworkGameWidgets
+	 *   - 0 = #NetworkLobbyWidgets
+	 *   - 1 = #NetworkContentListWidgets
+	 *   - 1 = #NetworkStartServerWidgets
+	 */
+	WC_NETWORK_WINDOW,
+
+	/**
+	 * Client list; Window numbers:
+	 *   - 0 = #ClientListWidgets
+	 */
+	WC_CLIENT_LIST,
 
-	WC_SELECT_GAME,             ///< Select game window.
-	WC_SCEN_LAND_GEN,           ///< Landscape generation (in Scenario Editor).
-	WC_GENERATE_LANDSCAPE,      ///< Generate landscape (newgame).
-	WC_MODAL_PROGRESS,          ///< Progress report of landscape generation.
+	/**
+	 * Popup for the client list; Window numbers:
+	 *   - #ClientID = #ClientListPopupWidgets
+	 */
+	WC_CLIENT_LIST_POPUP,
+
+	/**
+	 * Network status window; Window numbers: (TODO - CONFLICT)
+	 *   - 0 = #NetworkJoinStatusWidgets
+	 *   - 0 = #NetworkContentDownloadStatusWidgets
+	 */
+	WC_NETWORK_STATUS_WINDOW,
+
+	/**
+	 * Chatbox; Window numbers:
+	 *   - #DestType = #NetWorkChatWidgets
+	 */
+	WC_SEND_NETWORK_MSG,
 
-	WC_NETWORK_WINDOW,          ///< Network window.
-	WC_CLIENT_LIST,             ///< Client list.
-	WC_CLIENT_LIST_POPUP,       ///< Popup for the client list.
-	WC_NETWORK_STATUS_WINDOW,   ///< Network status window.
-	WC_SEND_NETWORK_MSG,        ///< Chatbox.
-	WC_COMPANY_PASSWORD_WINDOW, ///< Company password query.
+	/**
+	 * Company password query; Window numbers:
+	 *   - 0 = #NetworkCompanyPasswordWidgets
+	 */
+	WC_COMPANY_PASSWORD_WINDOW,
+
+
+	/**
+	 * Industry cargoes chain; Window numbers:
+	 *   - 0 = #IndustryCargoesWidgets
+	 */
+	WC_INDUSTRY_CARGOES,
+
+	/**
+	 * Legend for graphs; Window numbers:
+	 *   - 0 = #GraphLegendWidgets
+	 */
+	WC_GRAPH_LEGEND,
+
+	/**
+	 * Finances of a company; Window numbers:
+	 *   - #CompanyID = #CompanyWidgets
+	 */
+	WC_FINANCES,
 
-	WC_INDUSTRY_CARGOES,        ///< Industry cargoes chain.
-	WC_GRAPH_LEGEND,            ///< Legend for graphs.
-	WC_FINANCES,                ///< Finances of a company.
-	WC_INCOME_GRAPH,            ///< Income graph.
-	WC_OPERATING_PROFIT,        ///< Operating profit graph.
-	WC_DELIVERED_CARGO,         ///< Delivered cargo graph.
-	WC_PERFORMANCE_HISTORY,     ///< Performance history graph.
-	WC_COMPANY_VALUE,           ///< Company value graph.
-	WC_COMPANY_LEAGUE,          ///< Company league window.
-	WC_PAYMENT_RATES,           ///< Payment rates graph.
-	WC_PERFORMANCE_DETAIL,      ///< Performance detail window.
-	WC_COMPANY_INFRASTRUCTURE,  ///< Company infrastructure overview.
+	/**
+	 * Income graph; Window numbers:
+	 *   - 0 = #CompanyValueWidgets
+	 */
+	WC_INCOME_GRAPH,
+
+	/**
+	 * Operating profit graph; Window numbers:
+	 *   - 0 = #CompanyValueWidgets
+	 */
+	WC_OPERATING_PROFIT,
+
+	/**
+	 * Delivered cargo graph; Window numbers:
+	 *   - 0 = #CompanyValueWidgets
+	 */
+	WC_DELIVERED_CARGO,
+
+	/**
+	 * Performance history graph; Window numbers:
+	 *   - 0 = #PerformanceHistoryGraphWidgets
+	 */
+	WC_PERFORMANCE_HISTORY,
+
+	/**
+	 * Company value graph; Window numbers:
+	 *   - 0 = #CompanyValueWidgets
+	 */
+	WC_COMPANY_VALUE,
+
+	/**
+	 * Company league window; Window numbers:
+	 *   - 0 = #CompanyLeagueWidgets
+	 */
+	WC_COMPANY_LEAGUE,
 
-	WC_BUY_COMPANY,             ///< Buyout company (merger).
-	WC_ENGINE_PREVIEW,          ///< Engine preview window.
+	/**
+	 * Payment rates graph; Window numbers:
+	 *   - 0 = #CargoPaymentRatesWidgets
+	 */
+	WC_PAYMENT_RATES,
+
+	/**
+	 * Performance detail window; Window numbers:
+	 *   - 0 = #PerformanceRatingDetailsWidgets
+	 */
+	WC_PERFORMANCE_DETAIL,
+
+	/**
+	 * Company infrastructure overview; Window numbers:
+	 *   - #CompanyID = #CompanyInfrastructureWidgets
+	 */
+	WC_COMPANY_INFRASTRUCTURE,
+
+
+	/**
+	 * Buyout company (merger); Window numbers:
+	 *   - #CompanyID = #BuyCompanyWidgets
+	 */
+	WC_BUY_COMPANY,
+
+	/**
+	 * Engine preview window; Window numbers:
+	 *   - #EngineID = #EnginePreviewWidgets
+	 */
+	WC_ENGINE_PREVIEW,
+
+
+	/**
+	 * Music window; Window numbers:
+	 *   - 0 = #MusicWidgets
+	 */
+	WC_MUSIC_WINDOW,
 
-	WC_MUSIC_WINDOW,            ///< Music window.
-	WC_MUSIC_TRACK_SELECTION,   ///< Music track selection.
-	WC_GAME_OPTIONS,            ///< Game options window.
-	WC_CUSTOM_CURRENCY,         ///< Custom currency.
-	WC_CHEATS,                  ///< Cheat window.
-	WC_EXTRA_VIEW_PORT,         ///< Extra viewport.
+	/**
+	 * Music track selection; Window numbers:
+	 *   - 0 = MusicTrackSelectionWidgets
+	 */
+	WC_MUSIC_TRACK_SELECTION,
+
+	/**
+	 * Game options window; Window numbers: (TODO - CONFLICT)
+	 *   - 0 = #AIConfigWidgets
+	 *   - 0 = #AboutWidgets
+	 *   - 0 = #NewGRFStateWidgets
+	 *   - 0 = #MessageOptionWidgets
+	 *   - 0 = #GameOptionsWidgets
+	 *   - 0 = #GameDifficultyWidgets
+	 *   - 0 = #GameSettingsWidgets
+	 */
+	WC_GAME_OPTIONS,
+
+	/**
+	 * Custom currency; Window numbers:
+	 *   - 0 = #CustomCurrencyWidgets
+	 */
+	WC_CUSTOM_CURRENCY,
+
+	/**
+	 * Cheat window; Window numbers:
+	 *   - 0 = #CheatWidgets
+	 */
+	WC_CHEATS,
+
+	/**
+	 * Extra viewport; Window numbers:
+	 *   - Ascending value = #ExtraViewportWidgets
+	 */
+	WC_EXTRA_VIEW_PORT,
+
 
-	WC_CONSOLE,                 ///< Console.
-	WC_BOOTSTRAP,               ///< Bootstrap.
-	WC_HIGHSCORE,               ///< Highscore.
-	WC_ENDSCREEN,               ///< Endscreen.
+	/**
+	 * Console; Window numbers:
+	 *   - 0 = #ConsoleWidgets
+	 */
+	WC_CONSOLE,
+
+	/**
+	 * Bootstrap; Window numbers:
+	 *   - 0 = #BootstrapBackgroundWidgets
+	 */
+	WC_BOOTSTRAP,
+
+	/**
+	 * Highscore; Window numbers:
+	 *   - 0 = #HighscoreWidgets
+	 */
+	WC_HIGHSCORE,
 
-	WC_AI_DEBUG,                ///< AI debug window.
-	WC_NEWGRF_INSPECT,          ///< NewGRF inspect (debug).
-	WC_SPRITE_ALIGNER,          ///< Sprite aligner (debug).
+	/**
+	 * Endscreen; Window numbers:
+	 *   - 0 = #HighscoreWidgets
+	 */
+	WC_ENDSCREEN,
+
+
+	/**
+	 * AI debug window; Window numbers:
+	 *   - 0 = #AIDebugWidgets
+	 */
+	WC_AI_DEBUG,
 
-	WC_INVALID = 0xFFFF,        ///< Invalid window.
+	/**
+	 * NewGRF inspect (debug); Window numbers:
+	 *   - Packed value = #NewGRFInspectWidgets
+	 */
+	WC_NEWGRF_INSPECT,
+
+	/**
+	 * Sprite aligner (debug); Window numbers:
+	 *   - 0 = #SpriteAlignerWidgets
+	 */
+	WC_SPRITE_ALIGNER,
+
+	WC_INVALID = 0xFFFF, ///< Invalid window.
 };
 
 /**