OpenTTD Source
12.0-beta2
|
Go to the documentation of this file.
10 #ifndef VEHICLE_GUI_BASE_H
11 #define VEHICLE_GUI_BASE_H
34 std::ptrdiff_t NumVehicles()
const
36 return std::distance(this->vehicles_begin, this->vehicles_end);
39 const Vehicle *GetSingleVehicle()
const
41 assert(this->NumVehicles() == 1);
42 return this->vehicles_begin[0];
45 Money GetDisplayProfitThisYear()
const
47 return std::accumulate(this->vehicles_begin, this->vehicles_end, (
Money)0, [](
Money acc,
const Vehicle *v) {
52 Money GetDisplayProfitLastYear()
const
54 return std::accumulate(this->vehicles_begin, this->vehicles_end, (
Money)0, [](
Money acc,
const Vehicle *v) {
59 Date GetOldestVehicleAge()
const
61 const Vehicle *oldest = *std::max_element(this->vehicles_begin, this->vehicles_end, [](
const Vehicle *v_a,
const Vehicle *v_b) {
62 return v_a->
age < v_b->
age;
91 enum ActionDropdownItem {
99 static const StringID vehicle_depot_name[];
100 static const StringID vehicle_group_by_names[];
101 static const StringID vehicle_group_none_sorter_names[];
102 static const StringID vehicle_group_shared_orders_sorter_names[];
103 static VehicleGroupSortFunction *
const vehicle_group_none_sorter_funcs[];
104 static VehicleGroupSortFunction *
const vehicle_group_shared_orders_sorter_funcs[];
110 void UpdateSortingFromGrouping();
113 void UpdateVehicleGroupBy(GroupBy group_by);
114 void SortVehicleList();
115 void BuildVehicleList();
119 const StringID *GetVehicleSorterNames()
121 switch (this->grouping) {
123 return vehicle_group_none_sorter_names;
124 case GB_SHARED_ORDERS:
125 return vehicle_group_shared_orders_sorter_names;
131 VehicleGroupSortFunction *
const *GetVehicleSorterFuncs()
133 switch (this->grouping) {
135 return vehicle_group_none_sorter_funcs;
136 case GB_SHARED_ORDERS:
137 return vehicle_group_shared_orders_sorter_funcs;
153 extern BaseVehicleListWindow::GroupBy _grouping[VLT_END][
VEH_COMPANY_END];
154 extern Sorting _sorting[BaseVehicleListWindow::GB_END];
Dimension GetActionDropdownSize(bool show_autoreplace, bool show_group)
Compute the size for the Action dropdown.
std::vector< const Vehicle * > VehicleList
A list of vehicles.
Dimensions (a width and height) of a rectangle in 2D.
GroupBy grouping
How we want to group the list.
The information about a vehicle list.
uint order_arrow_width
Width of the arrow in the small order list.
List template of 'things' T to sort in a GUI.
std::vector< std::unique_ptr< const DropDownListItem > > DropDownList
A drop down list is a collection of drop down list items.
uint GetVehicleListHeight(VehicleType type, uint divisor=1)
Get the height of a vehicle in the vehicle list GUIs.
Listing * sorting
Pointer to the vehicle type related sorting.
VehicleList::const_iterator vehicles_begin
Pointer to beginning element of this vehicle group.
int32 WindowNumber
Number to differentiate different windows of the same class.
void OnInit() override
Notification that the nested widget tree gets initialized.
High level window description.
VehicleListIdentifier vli
Identifier of the vehicle list we want to currently show.
DropDownList BuildActionDropdownList(bool show_autoreplace, bool show_group)
Display the Action dropdown window.
Money GetDisplayProfitThisYear() const
Gets the profit vehicle had this year.
Data structure describing how to show the list (what sort direction and criteria).
@ VEH_COMPANY_END
Last company-ownable type.
bool SortFunction(const GUIVehicleGroup &, const GUIVehicleGroup &)
Signature of sort function.
int32 Date
The type to store our dates in.
VehicleType
Available vehicle types.
void DrawVehicleListItems(VehicleID selected_vehicle, int line_height, const Rect &r) const
Draw all the vehicle list items.
uint32 StringID
Numeric value that represents a string, independent of the selected language.
GUIVehicleGroupList vehgroups
List of (groups of) vehicles. This stores iterators of vehicles, and should be rebuilt if vehicles is...
uint32 VehicleID
The type all our vehicle IDs have.
VehicleList vehicles
List of vehicles. This is the buffer for vehgroups to point into; if this is structurally modified,...
byte unitnumber_digits
The number of digits of the highest unit number.
Data structure for an opened window.
Specification of a rectangle with absolute coordinates of all edges.
Money GetDisplayProfitLastYear() const
Gets the profit vehicle had last year.
VehicleList::const_iterator vehicles_end
Pointer to past-the-end element of this vehicle group.