(svn r15820) -Codechange: Some windows using nested widgets
This commit is contained in:
@@ -137,12 +137,23 @@ static const Widget _air_toolbar_widgets[] = {
|
||||
{ WIDGETS_END},
|
||||
};
|
||||
|
||||
static const NWidgetPart _nested_air_toolbar_widgets[] = {
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN, 0),
|
||||
NWidget(WWT_CAPTION, COLOUR_DARK_GREEN, 1), SetMinimalSize(41, 14), SetDataTip(STR_A000_AIRPORTS, STR_018C_WINDOW_TITLE_DRAG_THIS),
|
||||
NWidget(WWT_STICKYBOX, COLOUR_DARK_GREEN, 2),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, 3), SetMinimalSize(42, 22), SetDataTip(SPR_IMG_AIRPORT, STR_A01E_BUILD_AIRPORT),
|
||||
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, 4), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_DYNAMITE, STR_018D_DEMOLISH_BUILDINGS_ETC),
|
||||
EndContainer(),
|
||||
};
|
||||
|
||||
static const WindowDesc _air_toolbar_desc(
|
||||
WDP_ALIGN_TBR, 22, 64, 36, 64, 36,
|
||||
WC_BUILD_TOOLBAR, WC_NONE,
|
||||
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON | WDF_CONSTRUCTION,
|
||||
_air_toolbar_widgets
|
||||
_air_toolbar_widgets, _nested_air_toolbar_widgets, lengthof(_nested_air_toolbar_widgets)
|
||||
);
|
||||
|
||||
void ShowBuildAirToolbar()
|
||||
@@ -153,42 +164,41 @@ void ShowBuildAirToolbar()
|
||||
AllocateWindowDescFront<BuildAirToolbarWindow>(&_air_toolbar_desc, TRANSPORT_AIR);
|
||||
}
|
||||
|
||||
/** Airport widgets in the airport picker window. */
|
||||
enum AirportPickerWidgets {
|
||||
BAW_CLOSEBOX,
|
||||
BAW_CAPTION,
|
||||
/* Panels and labels. */
|
||||
BAW_SMALL_AIRPORTS_PANEL,
|
||||
BAW_SMALL_AIRPORTS_LABEL,
|
||||
BAW_LARGE_AIRPORTS_PANEL,
|
||||
BAW_LARGE_AIRPORTS_LABEL,
|
||||
BAW_HUB_AIRPORTS_PANEL,
|
||||
BAW_HUB_AIRPORTS_LABEL,
|
||||
BAW_HELIPORTS_PANEL,
|
||||
BAW_HELIPORTS_LABEL,
|
||||
BAW_BOTTOMPANEL,
|
||||
/* Airport selection buttons. */
|
||||
BAW_SMALL_AIRPORT,
|
||||
BAW_CITY_AIRPORT,
|
||||
BAW_HELIPORT,
|
||||
BAW_METRO_AIRPORT,
|
||||
BAW_INTERNATIONAL_AIRPORT,
|
||||
BAW_COMMUTER_AIRPORT,
|
||||
BAW_HELIDEPOT,
|
||||
BAW_INTERCONTINENTAL_AIRPORT,
|
||||
BAW_HELISTATION,
|
||||
/* Coverage. */
|
||||
BAW_BTN_DONTHILIGHT,
|
||||
BAW_BTN_DOHILIGHT,
|
||||
BAW_COVERAGE_LABEL,
|
||||
|
||||
BAW_LAST_AIRPORT = BAW_HELISTATION,
|
||||
BAW_AIRPORT_COUNT = BAW_LAST_AIRPORT - BAW_SMALL_AIRPORT + 1,
|
||||
};
|
||||
|
||||
class AirportPickerWindow : public PickerWindowBase {
|
||||
|
||||
enum {
|
||||
BAW_CLOSEBOX,
|
||||
BAW_CAPTION,
|
||||
/* Panels and labels. */
|
||||
BAW_SMALL_AIRPORTS_PANEL,
|
||||
BAW_SMALL_AIRPORTS_LABEL,
|
||||
BAW_LARGE_AIRPORTS_PANEL,
|
||||
BAW_LARGE_AIRPORTS_LABEL,
|
||||
BAW_HUB_AIRPORTS_PANEL,
|
||||
BAW_HUB_AIRPORTS_LABEL,
|
||||
BAW_HELIPORTS_PANEL,
|
||||
BAW_HELIPORTS_LABEL,
|
||||
BAW_BOTTOMPANEL,
|
||||
/* Airport selection buttons. */
|
||||
BAW_SMALL_AIRPORT,
|
||||
BAW_CITY_AIRPORT,
|
||||
BAW_HELIPORT,
|
||||
BAW_METRO_AIRPORT,
|
||||
BAW_INTERNATIONAL_AIRPORT,
|
||||
BAW_COMMUTER_AIRPORT,
|
||||
BAW_HELIDEPOT,
|
||||
BAW_INTERCONTINENTAL_AIRPORT,
|
||||
BAW_HELISTATION,
|
||||
/* Coverage. */
|
||||
BAW_BTN_DONTHILIGHT,
|
||||
BAW_BTN_DOHILIGHT,
|
||||
BAW_COVERAGE_LABEL,
|
||||
|
||||
BAW_LAST_AIRPORT = BAW_HELISTATION,
|
||||
BAW_AIRPORT_COUNT = BAW_LAST_AIRPORT - BAW_SMALL_AIRPORT + 1,
|
||||
};
|
||||
|
||||
public:
|
||||
|
||||
AirportPickerWindow(const WindowDesc *desc, Window *parent) : PickerWindowBase(desc, parent)
|
||||
{
|
||||
this->SetWidgetLoweredState(BAW_BTN_DONTHILIGHT, !_settings_client.gui.station_show_coverage);
|
||||
@@ -314,11 +324,91 @@ static const Widget _build_airport_picker_widgets[] = {
|
||||
{ WIDGETS_END},
|
||||
};
|
||||
|
||||
static const NWidgetPart _nested_build_airport_widgets[] = {
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN, BAW_CLOSEBOX),
|
||||
NWidget(WWT_CAPTION, COLOUR_DARK_GREEN, BAW_CAPTION), SetMinimalSize(137, 14), SetDataTip(STR_3001_AIRPORT_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS),
|
||||
EndContainer(),
|
||||
/* Small airports. */
|
||||
NWidget(WWT_PANEL, COLOUR_DARK_GREEN, BAW_SMALL_AIRPORTS_PANEL),
|
||||
NWidget(WWT_LABEL, COLOUR_DARK_GREEN, BAW_SMALL_AIRPORTS_LABEL), SetMinimalSize(148, 14), SetDataTip(STR_SMALL_AIRPORTS, STR_NULL),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(1, 0),
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_GREY, BAW_SMALL_AIRPORT), SetMinimalSize(144, 12),
|
||||
SetDataTip(STR_SMALL_AIRPORT, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_GREY, BAW_COMMUTER_AIRPORT), SetMinimalSize(144, 12),
|
||||
SetDataTip(STR_COMMUTER_AIRPORT, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(0, 1),
|
||||
EndContainer(),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(1, 0),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
/* Large airports. */
|
||||
NWidget(WWT_PANEL, COLOUR_DARK_GREEN, BAW_LARGE_AIRPORTS_PANEL),
|
||||
NWidget(WWT_LABEL, COLOUR_DARK_GREEN, BAW_LARGE_AIRPORTS_LABEL), SetMinimalSize(148, 14), SetDataTip(STR_LARGE_AIRPORTS, STR_NULL),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(1, 0),
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_GREY, BAW_CITY_AIRPORT), SetMinimalSize(144, 12),
|
||||
SetDataTip(STR_CITY_AIRPORT, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_GREY, BAW_METRO_AIRPORT), SetMinimalSize(144, 12),
|
||||
SetDataTip(STR_METRO_AIRPORT, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(0, 1),
|
||||
EndContainer(),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(1, 0),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
/* Hub airports. */
|
||||
NWidget(WWT_PANEL, COLOUR_DARK_GREEN, BAW_HUB_AIRPORTS_PANEL),
|
||||
NWidget(WWT_LABEL, COLOUR_DARK_GREEN, BAW_HUB_AIRPORTS_LABEL), SetMinimalSize(148, 14), SetDataTip(STR_HUB_AIRPORTS, STR_NULL),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(2, 0),
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_GREY, BAW_INTERNATIONAL_AIRPORT), SetMinimalSize(144, 12),
|
||||
SetDataTip(STR_INTERNATIONAL_AIRPORT, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_GREY, BAW_INTERCONTINENTAL_AIRPORT), SetMinimalSize(144, 12),
|
||||
SetDataTip(STR_INTERCONTINENTAL_AIRPORT, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(0, 1),
|
||||
EndContainer(),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(2, 0),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
/* Heliports. */
|
||||
NWidget(WWT_PANEL, COLOUR_DARK_GREEN, BAW_HELIPORTS_PANEL),
|
||||
NWidget(WWT_LABEL, COLOUR_DARK_GREEN, BAW_HELIPORTS_LABEL), SetMinimalSize(148, 14), SetDataTip(STR_HELIPORTS, STR_NULL),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(2, 0),
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_GREY, BAW_HELIPORT), SetMinimalSize(144, 12),
|
||||
SetDataTip(STR_HELIPORT, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_GREY, BAW_HELISTATION), SetMinimalSize(144, 12),
|
||||
SetDataTip(STR_HELISTATION, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_GREY, BAW_HELIDEPOT), SetMinimalSize(144, 12),
|
||||
SetDataTip(STR_HELIDEPOT, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(0, 1),
|
||||
EndContainer(),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(2, 0),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
/* Bottom panel. */
|
||||
NWidget(WWT_PANEL, COLOUR_DARK_GREEN, BAW_BOTTOMPANEL),
|
||||
NWidget(WWT_LABEL, COLOUR_DARK_GREEN, BAW_COVERAGE_LABEL), SetMinimalSize(148, 14), SetDataTip(STR_3066_COVERAGE_AREA_HIGHLIGHT, STR_NULL),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(14, 0),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_GREY, BAW_BTN_DONTHILIGHT), SetMinimalSize(60, 12), SetDataTip(STR_02DB_OFF, STR_3065_DON_T_HIGHLIGHT_COVERAGE),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_GREY, BAW_BTN_DOHILIGHT), SetMinimalSize(60, 12), SetDataTip(STR_02DA_ON, STR_3064_HIGHLIGHT_COVERAGE_AREA),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(14, 0),
|
||||
EndContainer(),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(0, 37),
|
||||
EndContainer(),
|
||||
};
|
||||
|
||||
static const WindowDesc _build_airport_desc(
|
||||
WDP_AUTO, WDP_AUTO, 148, 245, 148, 245,
|
||||
WC_BUILD_STATION, WC_BUILD_TOOLBAR,
|
||||
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_CONSTRUCTION,
|
||||
_build_airport_picker_widgets
|
||||
_build_airport_picker_widgets, _nested_build_airport_widgets, lengthof(_nested_build_airport_widgets)
|
||||
);
|
||||
|
||||
static void ShowBuildAirportPicker(Window *parent)
|
||||
|
Reference in New Issue
Block a user