Add button to toggle train purchase window dual pane mode
This commit is contained in:
@@ -61,6 +61,9 @@ static constexpr NWidgetPart _nested_build_vehicle_widgets[] = {
|
|||||||
NWidget(NWID_HORIZONTAL),
|
NWidget(NWID_HORIZONTAL),
|
||||||
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
|
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
|
||||||
NWidget(WWT_CAPTION, COLOUR_GREY, WID_BV_CAPTION), SetDataTip(STR_JUST_STRING, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), SetTextStyle(TC_WHITE),
|
NWidget(WWT_CAPTION, COLOUR_GREY, WID_BV_CAPTION), SetDataTip(STR_JUST_STRING, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), SetTextStyle(TC_WHITE),
|
||||||
|
NWidget(NWID_SELECTION, INVALID_COLOUR, WID_BV_TOGGLE_DUAL_PANE_SEL),
|
||||||
|
NWidget(WWT_IMGBTN, COLOUR_GREY, WID_BV_TOGGLE_DUAL_PANE), SetDataTip(SPR_LARGE_SMALL_WINDOW, STR_BUY_VEHICLE_TRAIN_TOGGLE_DUAL_PANE_TOOLTIP),
|
||||||
|
EndContainer(),
|
||||||
NWidget(WWT_SHADEBOX, COLOUR_GREY),
|
NWidget(WWT_SHADEBOX, COLOUR_GREY),
|
||||||
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
|
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
|
||||||
NWidget(WWT_STICKYBOX, COLOUR_GREY),
|
NWidget(WWT_STICKYBOX, COLOUR_GREY),
|
||||||
@@ -101,6 +104,7 @@ static constexpr NWidgetPart _nested_build_vehicle_widgets_train_advanced[] = {
|
|||||||
NWidget(NWID_HORIZONTAL),
|
NWidget(NWID_HORIZONTAL),
|
||||||
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
|
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
|
||||||
NWidget(WWT_CAPTION, COLOUR_GREY, WID_BV_CAPTION), SetDataTip(STR_JUST_STRING, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), SetTextStyle(TC_WHITE),
|
NWidget(WWT_CAPTION, COLOUR_GREY, WID_BV_CAPTION), SetDataTip(STR_JUST_STRING, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), SetTextStyle(TC_WHITE),
|
||||||
|
NWidget(WWT_IMGBTN, COLOUR_GREY, WID_BV_TOGGLE_DUAL_PANE), SetDataTip(SPR_LARGE_SMALL_WINDOW, STR_BUY_VEHICLE_TRAIN_TOGGLE_DUAL_PANE_TOOLTIP),
|
||||||
NWidget(WWT_SHADEBOX, COLOUR_GREY),
|
NWidget(WWT_SHADEBOX, COLOUR_GREY),
|
||||||
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
|
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
|
||||||
NWidget(WWT_STICKYBOX, COLOUR_GREY),
|
NWidget(WWT_STICKYBOX, COLOUR_GREY),
|
||||||
@@ -1393,6 +1397,7 @@ enum BuildVehicleHotkeys {
|
|||||||
|
|
||||||
struct BuildVehicleWindowBase : Window {
|
struct BuildVehicleWindowBase : Window {
|
||||||
VehicleType vehicle_type; ///< Type of vehicles shown in the window.
|
VehicleType vehicle_type; ///< Type of vehicles shown in the window.
|
||||||
|
TileIndex tile; ///< Original tile.
|
||||||
bool virtual_train_mode; ///< Are we building a virtual train?
|
bool virtual_train_mode; ///< Are we building a virtual train?
|
||||||
Train **virtual_train_out; ///< Virtual train ptr
|
Train **virtual_train_out; ///< Virtual train ptr
|
||||||
bool listview_mode; ///< If set, only display the available vehicles and do not show a 'build' button.
|
bool listview_mode; ///< If set, only display the available vehicles and do not show a 'build' button.
|
||||||
@@ -1400,6 +1405,7 @@ struct BuildVehicleWindowBase : Window {
|
|||||||
BuildVehicleWindowBase(WindowDesc *desc, TileIndex tile, VehicleType type, Train **virtual_train_out) : Window(desc)
|
BuildVehicleWindowBase(WindowDesc *desc, TileIndex tile, VehicleType type, Train **virtual_train_out) : Window(desc)
|
||||||
{
|
{
|
||||||
this->vehicle_type = type;
|
this->vehicle_type = type;
|
||||||
|
this->tile = tile;
|
||||||
this->window_number = tile == INVALID_TILE ? (int)type : tile;
|
this->window_number = tile == INVALID_TILE ? (int)type : tile;
|
||||||
this->virtual_train_out = virtual_train_out;
|
this->virtual_train_out = virtual_train_out;
|
||||||
this->virtual_train_mode = (virtual_train_out != nullptr);
|
this->virtual_train_mode = (virtual_train_out != nullptr);
|
||||||
@@ -1505,6 +1511,18 @@ struct BuildVehicleWindowBase : Window {
|
|||||||
te = {};
|
te = {};
|
||||||
te.FillDefaultCapacities(e);
|
te.FillDefaultCapacities(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ChangeDualPaneMode(bool new_value)
|
||||||
|
{
|
||||||
|
_settings_client.gui.dual_pane_train_purchase_window = new_value;
|
||||||
|
SetWindowDirty(WC_GAME_OPTIONS, WN_GAME_OPTIONS_GAME_SETTINGS);
|
||||||
|
|
||||||
|
if (this->virtual_train_out != nullptr) {
|
||||||
|
ShowTemplateTrainBuildVehicleWindow(this->virtual_train_out);
|
||||||
|
} else {
|
||||||
|
ShowBuildVehicleWindow(this->tile, this->vehicle_type);
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1625,6 +1643,8 @@ struct BuildVehicleWindow : BuildVehicleWindowBase {
|
|||||||
|
|
||||||
this->details_height = ((this->vehicle_type == VEH_TRAIN) ? 10 : 9);
|
this->details_height = ((this->vehicle_type == VEH_TRAIN) ? 10 : 9);
|
||||||
|
|
||||||
|
this->GetWidget<NWidgetStacked>(WID_BV_TOGGLE_DUAL_PANE_SEL)->SetDisplayedPlane((this->vehicle_type == VEH_TRAIN) ? 0 : SZSP_NONE);
|
||||||
|
|
||||||
this->FinishInitNested(this->window_number);
|
this->FinishInitNested(this->window_number);
|
||||||
|
|
||||||
this->querystrings[WID_BV_FILTER] = &this->vehicle_editbox;
|
this->querystrings[WID_BV_FILTER] = &this->vehicle_editbox;
|
||||||
@@ -2054,6 +2074,11 @@ struct BuildVehicleWindow : BuildVehicleWindowBase {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case WID_BV_TOGGLE_DUAL_PANE: {
|
||||||
|
this->ChangeDualPaneMode(true);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2788,6 +2813,10 @@ struct BuildVehicleWindowTrainAdvanced final : BuildVehicleWindowBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
|
case WID_BV_TOGGLE_DUAL_PANE: {
|
||||||
|
this->ChangeDualPaneMode(false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
/* Locomotives */
|
/* Locomotives */
|
||||||
|
|
||||||
|
@@ -1574,6 +1574,7 @@ STR_BUY_VEHICLE_TRAIN_RENAME_LOCOMOTIVE_BUTTON :{BLACK}Rename L
|
|||||||
STR_BUY_VEHICLE_TRAIN_RENAME_WAGON_BUTTON :{BLACK}Rename Wagon
|
STR_BUY_VEHICLE_TRAIN_RENAME_WAGON_BUTTON :{BLACK}Rename Wagon
|
||||||
STR_BUY_VEHICLE_TRAIN_RENAME_LOCOMOTIVE_TOOLTIP :{BLACK}Rename locomotive or power car
|
STR_BUY_VEHICLE_TRAIN_RENAME_LOCOMOTIVE_TOOLTIP :{BLACK}Rename locomotive or power car
|
||||||
STR_BUY_VEHICLE_TRAIN_RENAME_WAGON_TOOLTIP :{BLACK}Rename wagon
|
STR_BUY_VEHICLE_TRAIN_RENAME_WAGON_TOOLTIP :{BLACK}Rename wagon
|
||||||
|
STR_BUY_VEHICLE_TRAIN_TOGGLE_DUAL_PANE_TOOLTIP :{BLACK}Toggle separate locomotives and wagons
|
||||||
|
|
||||||
STR_QUERY_RENAME_TRAIN_TYPE_LOCOMOTIVE_CAPTION :{WHITE}Rename locomotive type
|
STR_QUERY_RENAME_TRAIN_TYPE_LOCOMOTIVE_CAPTION :{WHITE}Rename locomotive type
|
||||||
STR_QUERY_RENAME_TRAIN_TYPE_WAGON_CAPTION :{WHITE}Rename wagon type
|
STR_QUERY_RENAME_TRAIN_TYPE_WAGON_CAPTION :{WHITE}Rename wagon type
|
||||||
|
@@ -105,8 +105,6 @@ static WindowDesc _template_create_window_desc(__FILE__, __LINE__,
|
|||||||
std::begin(_widgets), std::end(_widgets)
|
std::begin(_widgets), std::end(_widgets)
|
||||||
);
|
);
|
||||||
|
|
||||||
void ShowTemplateTrainBuildVehicleWindow(Train **virtual_train);
|
|
||||||
|
|
||||||
static void TrainDepotMoveVehicle(const Vehicle *wagon, VehicleID sel, const Vehicle *head)
|
static void TrainDepotMoveVehicle(const Vehicle *wagon, VehicleID sel, const Vehicle *head)
|
||||||
{
|
{
|
||||||
const Vehicle *v = Vehicle::Get(sel);
|
const Vehicle *v = Vehicle::Get(sel);
|
||||||
|
@@ -57,6 +57,7 @@ void DrawShipImage(const Vehicle *v, const Rect &r, VehicleID selection, EngineI
|
|||||||
void DrawAircraftImage(const Vehicle *v, const Rect &r, VehicleID selection, EngineImageType image_type);
|
void DrawAircraftImage(const Vehicle *v, const Rect &r, VehicleID selection, EngineImageType image_type);
|
||||||
|
|
||||||
void ShowBuildVehicleWindow(TileIndex tile, VehicleType type);
|
void ShowBuildVehicleWindow(TileIndex tile, VehicleType type);
|
||||||
|
void ShowTemplateTrainBuildVehicleWindow(Train **virtual_train);
|
||||||
|
|
||||||
uint ShowRefitOptionsList(int left, int right, int y, EngineID engine);
|
uint ShowRefitOptionsList(int left, int right, int y, EngineID engine);
|
||||||
StringID GetCargoSubtypeText(const Vehicle *v);
|
StringID GetCargoSubtypeText(const Vehicle *v);
|
||||||
|
@@ -25,6 +25,8 @@ enum BuildVehicleWidgets : WidgetID {
|
|||||||
WID_BV_SHOW_HIDE, ///< Button to hide or show the selected engine.
|
WID_BV_SHOW_HIDE, ///< Button to hide or show the selected engine.
|
||||||
WID_BV_BUILD_SEL, ///< Build button.
|
WID_BV_BUILD_SEL, ///< Build button.
|
||||||
WID_BV_RENAME, ///< Rename button.
|
WID_BV_RENAME, ///< Rename button.
|
||||||
|
WID_BV_TOGGLE_DUAL_PANE, ///< Toggle dual pane windows.
|
||||||
|
WID_BV_TOGGLE_DUAL_PANE_SEL, ///< Selection for WID_BV_TOGGLE_DUAL_PANE.
|
||||||
|
|
||||||
WID_BV_CAPTION_LOCO, ///< Caption of locomotive half of the window.
|
WID_BV_CAPTION_LOCO, ///< Caption of locomotive half of the window.
|
||||||
WID_BV_SORT_ASCENDING_DESCENDING_LOCO, ///< Sort direction.
|
WID_BV_SORT_ASCENDING_DESCENDING_LOCO, ///< Sort direction.
|
||||||
|
Reference in New Issue
Block a user