OpenTTD Source
1.11.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;
90 enum ActionDropdownItem {
98 static const StringID vehicle_depot_name[];
99 static const StringID vehicle_group_by_names[];
100 static const StringID vehicle_group_none_sorter_names[];
101 static const StringID vehicle_group_shared_orders_sorter_names[];
102 static VehicleGroupSortFunction *
const vehicle_group_none_sorter_funcs[];
103 static VehicleGroupSortFunction *
const vehicle_group_shared_orders_sorter_funcs[];
107 void UpdateSortingFromGrouping();
110 void UpdateVehicleGroupBy(GroupBy group_by);
111 void SortVehicleList();
112 void BuildVehicleList();
116 const StringID *GetVehicleSorterNames()
118 switch (this->grouping) {
120 return vehicle_group_none_sorter_names;
121 case GB_SHARED_ORDERS:
122 return vehicle_group_shared_orders_sorter_names;
128 VehicleGroupSortFunction *
const *GetVehicleSorterFuncs()
130 switch (this->grouping) {
132 return vehicle_group_none_sorter_funcs;
133 case GB_SHARED_ORDERS:
134 return vehicle_group_shared_orders_sorter_funcs;
150 extern BaseVehicleListWindow::GroupBy _grouping[VLT_END][
VEH_COMPANY_END];
151 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.
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.
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.