diff options
author | Bernard Teo <btzy1996@hotmail.com> | 2021-05-31 17:02:21 +0800 |
---|---|---|
committer | Patric Stout <github@truebrain.nl> | 2021-09-18 11:17:49 +0200 |
commit | 20717ededfe6cc370f9c35cff5b8d732105975f7 (patch) | |
tree | 15d728555207dd46afddae8c74b4a6dd625138d2 /src | |
parent | 6a6dbbaad2007f5a3b4b57c6b0ff44a899fb0ff8 (diff) | |
download | openttd-20717ededfe6cc370f9c35cff5b8d732105975f7.tar.xz |
Feature: Button to open order window from VL_SHARED_ORDERS window
Diffstat (limited to 'src')
-rw-r--r-- | src/lang/english.txt | 4 | ||||
-rw-r--r-- | src/vehicle_gui.cpp | 28 | ||||
-rw-r--r-- | src/widgets/vehicle_widget.h | 5 |
3 files changed, 33 insertions, 4 deletions
diff --git a/src/lang/english.txt b/src/lang/english.txt index 6162906a9..f9f10e94f 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -325,6 +325,10 @@ STR_SORT_BY_AVERAGE_PROFIT_THIS_YEAR :Average profit STR_GROUP_BY_NONE :None STR_GROUP_BY_SHARED_ORDERS :Shared orders +# Order button in shared orders vehicle list +STR_GOTO_ORDER_VIEW :{BLACK}Orders +STR_GOTO_ORDER_VIEW_TOOLTIP :{BLACK}Open the order view + # Tooltips for the main toolbar ###length 31 STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Pause game diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index c3ae09490..c43347ca8 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -1367,7 +1367,13 @@ void ChangeVehicleViewWindow(VehicleID from_index, VehicleID to_index) static const NWidgetPart _nested_vehicle_list[] = { NWidget(NWID_HORIZONTAL), NWidget(WWT_CLOSEBOX, COLOUR_GREY), - NWidget(WWT_CAPTION, COLOUR_GREY, WID_VL_CAPTION), + NWidget(NWID_SELECTION, INVALID_COLOUR, WID_VL_CAPTION_SELECTION), + NWidget(WWT_CAPTION, COLOUR_GREY, WID_VL_CAPTION), + NWidget(NWID_HORIZONTAL), + NWidget(WWT_CAPTION, COLOUR_GREY, WID_VL_CAPTION_SHARED_ORDERS), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_VL_ORDER_VIEW), SetMinimalSize(61, 14), SetDataTip(STR_GOTO_ORDER_VIEW, STR_GOTO_ORDER_VIEW_TOOLTIP), + EndContainer(), + EndContainer(), NWidget(WWT_SHADEBOX, COLOUR_GREY), NWidget(WWT_DEFSIZEBOX, COLOUR_GREY), NWidget(WWT_STICKYBOX, COLOUR_GREY), @@ -1642,6 +1648,12 @@ private: BP_HIDE_BUTTONS, ///< Show the empty panel. }; + /** Enumeration of planes of the title row at the top. */ + enum CaptionPlanes { + BP_NORMAL, ///< Show shared orders caption and buttons. + BP_SHARED_ORDERS, ///< Show the normal caption. + }; + public: VehicleListWindow(WindowDesc *desc, WindowNumber window_number) : BaseVehicleListWindow(desc, window_number) { @@ -1655,14 +1667,17 @@ public: /* Set up the window widgets */ this->GetWidget<NWidgetCore>(WID_VL_LIST)->tool_tip = STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP + this->vli.vtype; + NWidgetStacked *nwi = this->GetWidget<NWidgetStacked>(WID_VL_CAPTION_SELECTION); if (this->vli.type == VL_SHARED_ORDERS) { - this->GetWidget<NWidgetCore>(WID_VL_CAPTION)->widget_data = STR_VEHICLE_LIST_SHARED_ORDERS_LIST_CAPTION; + this->GetWidget<NWidgetCore>(WID_VL_CAPTION_SHARED_ORDERS)->widget_data = STR_VEHICLE_LIST_SHARED_ORDERS_LIST_CAPTION; /* If we are in the shared orders window, then disable the group-by dropdown menu. * Remove this when the group-by dropdown menu has another option apart from grouping by shared orders. */ this->SetWidgetDisabledState(WID_VL_GROUP_ORDER, true); this->SetWidgetDisabledState(WID_VL_GROUP_BY_PULLDOWN, true); + nwi->SetDisplayedPlane(BP_SHARED_ORDERS); } else { this->GetWidget<NWidgetCore>(WID_VL_CAPTION)->widget_data = STR_VEHICLE_LIST_TRAIN_CAPTION + this->vli.vtype; + nwi->SetDisplayedPlane(BP_NORMAL); } this->FinishInitNested(window_number); @@ -1718,7 +1733,8 @@ public: SetDParam(0, STR_VEHICLE_LIST_AVAILABLE_TRAINS + this->vli.vtype); break; - case WID_VL_CAPTION: { + case WID_VL_CAPTION: + case WID_VL_CAPTION_SHARED_ORDERS: { switch (this->vli.type) { case VL_SHARED_ORDERS: // Shared Orders if (this->vehicles.size() == 0) { @@ -1806,6 +1822,12 @@ public: void OnClick(Point pt, int widget, int click_count) override { switch (widget) { + case WID_VL_ORDER_VIEW: // Open the shared orders window + assert(this->vli.type == VL_SHARED_ORDERS); + assert(!this->vehicles.empty()); + ShowOrdersWindow(this->vehicles[0]); + break; + case WID_VL_SORT_ORDER: // Flip sorting method ascending/descending this->vehgroups.ToggleSortOrder(); this->SetDirty(); diff --git a/src/widgets/vehicle_widget.h b/src/widgets/vehicle_widget.h index 698a32bcf..954e72f70 100644 --- a/src/widgets/vehicle_widget.h +++ b/src/widgets/vehicle_widget.h @@ -61,7 +61,10 @@ enum VehicleDetailsWidgets { /** Widgets of the #VehicleListWindow class. */ enum VehicleListWidgets { - WID_VL_CAPTION, ///< Caption of window. + WID_VL_CAPTION, ///< Caption of window (for non shared orders windows). + WID_VL_CAPTION_SHARED_ORDERS, ///< Caption of window (for shared orders windows). + WID_VL_CAPTION_SELECTION, ///< Selection for caption. + WID_VL_ORDER_VIEW, ///< Button to open order window (for shared orders windows). WID_VL_GROUP_ORDER, ///< Group order. WID_VL_GROUP_BY_PULLDOWN, ///< Group by dropdown list. WID_VL_SORT_ORDER, ///< Sort order. |