OpenTTD Source: BaseVehicleListWindow Struct Reference

OpenTTD Source 15.0-RC2

Public Types | Public Member Functions | Data Fields | Static Public Attributes
BaseVehicleListWindow Struct Reference
Inheritance diagram for BaseVehicleListWindow:

## Public Types
enum | GroupBy : uint8_t { GB_NONE , GB_SHARED_ORDERS , GB_END }
enum | ActionDropdownItem : uint8_t { ADI_REPLACE , ADI_SERVICE , ADI_DEPOT , ADI_ADD_SHARED , ADI_REMOVE_ALL , ADI_CREATE_GROUP }
typedef GUIVehicleGroupList::SortFunction | VehicleGroupSortFunction
typedef GUIVehicleList::SortFunction | VehicleIndividualSortFunction
Public Types inherited from Window
using | IteratorToFront = WindowIterator< false >
| Iterate in Z order towards front.
using | IteratorToBack = WindowIterator< true >
| Iterate in Z order towards back.
using | Iterate = AllWindows< false >
| Iterate all windows in whatever order is easiest.
using | IterateFromBack = AllWindows< false >
| Iterate all windows in Z order from back to front.
using | IterateFromFront = AllWindows< true >
| Iterate all windows in Z order from front to back.

## Public Member Functions
| BaseVehicleListWindow (WindowDesc &desc, const VehicleListIdentifier &vli)
void | OnInit () override
| Notification that the nested widget tree gets initialized.
void | UpdateSortingFromGrouping ()
void | DrawVehicleListItems (VehicleID selected_vehicle, int line_height, const Rect &r) const
| Draw all the vehicle list items.
void | UpdateVehicleGroupBy (GroupBy group_by)
void | SortVehicleList ()
void | BuildVehicleList ()
void | SetCargoFilter (uint8_t index)
| Set cargo filter for the vehicle group list.
void | SetCargoFilterArray ()
| Populate the filter list and set the cargo filter criteria.
void | FilterVehicleList ()
| Filter the engine list against the currently selected cargo filter.
StringID | GetCargoFilterLabel (CargoType cargo_type) const
DropDownList | BuildCargoDropDownList (bool full) const
| Build drop down list for cargo filter selection.
Dimension | GetActionDropdownSize (bool show_autoreplace, bool show_group, bool show_create)
| Compute the size for the Action dropdown.
DropDownList | BuildActionDropdownList (bool show_autoreplace, bool show_group, bool show_create)
| Display the Action dropdown window.
std::span< const StringID > | GetVehicleSorterNames () const
std::span< VehicleGroupSortFunction *const > | GetVehicleSorterFuncs () const
Public Member Functions inherited from Window
| Window (WindowDesc &desc)
| Empty constructor, initialization has been moved to InitNested() called from the constructor of the derived class.
void * | operator new[] (size_t size)=delete
| Helper allocation function to disallow something.
template<class NWID >
const NWID * | GetWidget (WidgetID widnum) const
| Get the nested widget with number widnum from the nested widget tree.
template<class NWID >
NWID * | GetWidget (WidgetID widnum)
| Get the nested widget with number widnum from the nested widget tree.
const Scrollbar * | GetScrollbar (WidgetID widnum) const
| Return the Scrollbar to a widget index.
Scrollbar * | GetScrollbar (WidgetID widnum)
| Return the Scrollbar to a widget index.
const QueryString * | GetQueryString (WidgetID widnum) const
| Return the querystring associated to a editbox.
QueryString * | GetQueryString (WidgetID widnum)
| Return the querystring associated to a editbox.
void | UpdateQueryStringSize ()
| Update size of all QueryStrings of this window.
virtual const struct Textbuf * | GetFocusedTextbuf () const
| Get the current input text buffer.
virtual Point | GetCaretPosition () const
| Get the current caret position if an edit box has the focus.
virtual Rect | GetTextBoundingRect (size_t from, size_t to) const
| Get the bounding rectangle for a text range if an edit box has the focus.
virtual ptrdiff_t | GetTextCharacterAtPosition (const Point &pt) const
| Get the character that is rendered at a position by the focused edit box.
void | InitNested (WindowNumber number=0)
| Perform complete initialization of the Window with nested widgets, to allow use.
void | CreateNestedTree ()
| Perform the first part of the initialization of a nested widget tree.
void | FinishInitNested (WindowNumber window_number=0)
| Perform the second part of the initialization of a nested widget tree.
void | SetTimeout ()
| Set the timeout flag of the window and initiate the timer.
void | SetWhiteBorder ()
| Set the timeout flag of the window and initiate the timer.
void | DisableAllWidgetHighlight ()
| Disable the highlighted status of all widgets.
void | SetWidgetHighlight (WidgetID widget_index, TextColour highlighted_colour)
| Sets the highlighted status of a widget.
bool | IsWidgetHighlighted (WidgetID widget_index) const
| Gets the highlighted status of a widget.
void | SetWidgetDisabledState (WidgetID widget_index, bool disab_stat)
| Sets the enabled/disabled status of a widget.
void | DisableWidget (WidgetID widget_index)
| Sets a widget to disabled.
void | EnableWidget (WidgetID widget_index)
| Sets a widget to Enabled.
bool | IsWidgetDisabled (WidgetID widget_index) const
| Gets the enabled/disabled status of a widget.
bool | IsWidgetFocused (WidgetID widget_index) const
| Check if given widget is focused within this window.
bool | IsWidgetGloballyFocused (WidgetID widget_index) const
| Check if given widget has user input focus.
void | SetWidgetLoweredState (WidgetID widget_index, bool lowered_stat)
| Sets the lowered/raised status of a widget.
void | ToggleWidgetLoweredState (WidgetID widget_index)
| Invert the lowered/raised status of a widget.
void | LowerWidget (WidgetID widget_index)
| Marks a widget as lowered.
void | RaiseWidget (WidgetID widget_index)
| Marks a widget as raised.
void | RaiseWidgetWhenLowered (WidgetID widget_index)
| Marks a widget as raised and dirty (redraw), when it is marked as lowered.
bool | IsWidgetLowered (WidgetID widget_index) const
| Gets the lowered state of a widget.
void | UnfocusFocusedWidget ()
| Makes no widget on this window have focus.
bool | SetFocusedWidget (WidgetID widget_index)
| Set focus within this window to the given widget.
EventState | HandleEditBoxKey (WidgetID wid, char32_t key, uint16_t keycode)
| Process keypress for editbox widget.
virtual void | InsertTextString (WidgetID wid, std::string_view str, bool marked, std::optional< size_t > caret, std::optional< size_t > insert_location, std::optional< size_t > replacement_end)
| Insert a text string at the cursor position into the edit box widget.
void | HandleButtonClick (WidgetID widget)
| Do all things to make a button look clicked and mark it to be unclicked in a few ticks.
int | GetRowFromWidget (int clickpos, WidgetID widget, int padding, int line_height=-1) const
| Compute the row of a widget that a user clicked in.
void | RaiseButtons (bool autoraise=false)
| Raise the buttons of the window.
template<typename... Args>
void | SetWidgetsDisabledState (bool disab_stat, Args... widgets)
| Sets the enabled/disabled status of a list of widgets.
template<typename... Args>
void | SetWidgetsLoweredState (bool lowered_stat, Args... widgets)
| Sets the lowered/raised status of a list of widgets.
template<typename... Args>
void | RaiseWidgetsWhenLowered (Args... widgets)
| Raises the widgets and sets widgets dirty that are lowered.
void | SetWidgetDirty (WidgetID widget_index) const
| Invalidate a widget, i.e.
void | DrawWidgets () const
| Paint all widgets of a window.
void | DrawViewport () const
| Draw the viewport of this window.
void | DrawSortButtonState (WidgetID widget, SortButtonState state) const
| Draw a sort button's up or down arrow symbol.
Window * | FindChildWindow (WindowClass wc=WC_INVALID) const
| Find the Window whose parent pointer points to this window.
Window * | FindChildWindowById (WindowClass wc, WindowNumber number) const
| Find the Window whose parent pointer points to this window.
void | CloseChildWindows (WindowClass wc=WC_INVALID) const
| Close all children a window might have in a head-recursive manner.
void | CloseChildWindowById (WindowClass wc, WindowNumber number) const
| Close all children a window might have in a head-recursive manner.
virtual void | Close (int data=0)
| Hide the window and all its child windows, and mark them for a later deletion.
void | SetDirty () const
| Mark entire window as dirty (in need of re-paint)
void | ReInit (int rx=0, int ry=0, bool reposition=false)
| Re-initialize a window, and optionally change its size.
bool | IsShaded () const
| Is window shaded currently?
void | SetShaded (bool make_shaded)
| Set the shaded state of the window to make_shaded.
void | ScheduleResize ()
| Mark this window as resized and in need of OnResize() event.
void | ProcessScheduledResize ()
| Process scheduled OnResize() event.
void | InvalidateData (int data=0, bool gui_scope=true)
| Mark this window's data as invalid (in need of re-computing)
void | ProcessScheduledInvalidations ()
| Process all scheduled invalidations.
void | ProcessHighlightedInvalidations ()
| Process all invalidation of highlighted widgets.
virtual void | ApplyDefaults ()
| Read default values from WindowDesc configuration an apply them to the window.
virtual Point | OnInitialPosition (int16_t sm_width, int16_t sm_height, int window_number)
| Compute the initial position of the window.
virtual void | OnPaint ()
| The window must be repainted.
virtual void | DrawWidget (const Rect &r, WidgetID widget) const
| Draw the contents of a nested widget.
virtual void | UpdateWidgetSize (WidgetID widget, Dimension &size, const Dimension &padding, Dimension &fill, Dimension &resize)
| Update size and resize step of a widget in the window.
virtual std::string | GetWidgetString (WidgetID widget, StringID stringid) const
| Get the raw string for a widget.
virtual void | OnFocus ()
| The window has gained focus.
virtual void | OnFocusLost (bool closing)
| The window has lost focus.
virtual EventState | OnKeyPress (char32_t key, uint16_t keycode)
| A key has been pressed.
virtual EventState | OnHotkey (int hotkey)
| A hotkey has been pressed.
virtual EventState | OnCTRLStateChange ()
| The state of the control key has changed.
virtual void | OnClick (Point pt, WidgetID widget, int click_count)
| A click with the left mouse button has been made on the window.
virtual bool | OnRightClick (Point pt, WidgetID widget)
| A click with the right mouse button has been made on the window.
virtual void | OnHover (Point pt, WidgetID widget)
| The mouse is hovering over a widget in the window, perform an action for it.
virtual bool | OnTooltip (Point pt, WidgetID widget, TooltipCloseCondition close_cond)
| Event to display a custom tooltip.
virtual void | OnMouseDrag (Point pt, WidgetID widget)
| An 'object' is being dragged at the provided position, highlight the target if possible.
virtual void | OnDragDrop (Point pt, WidgetID widget)
| A dragged 'object' has been released.
virtual void | OnScroll (Point delta)
| Handle the request for (viewport) scrolling.
virtual void | OnScrollbarScroll (WidgetID widget)
| Notify window that a scrollbar position has been updated.
virtual void | OnMouseOver (Point pt, WidgetID widget)
| The mouse is currently moving over the window or has just moved outside of the window.
virtual void | OnMouseWheel (int wheel, WidgetID widget)
| The mouse wheel has been turned.
virtual void | OnMouseLoop ()
| Called for every mouse loop run, which is at least once per (game) tick.
virtual void | OnGameTick ()
| Called once per (game) tick.
virtual void | OnRealtimeTick (uint delta_ms)
| Called periodically.
virtual void | OnTimeout ()
| Called when this window's timeout has been reached.
virtual void | OnResize ()
| Called after the window got resized.
virtual void | OnDropdownSelect (WidgetID widget, int index, int click_result)
| A dropdown option associated to this window has been selected.
virtual void | OnDropdownClose (Point pt, WidgetID widget, int index, int click_result, bool instant_close)
| A dropdown window associated to this window has been closed.
virtual void | OnEditboxChanged (WidgetID widget)
| The text in an editbox has been edited.
virtual void | OnQueryTextFinished (std::optional< std::string > str)
| The query window opened from this window has closed.
virtual void | OnInvalidateData (int data=0, bool gui_scope=true)
| Some data on this window has become invalid.
virtual void | OnPlaceObject (Point pt, TileIndex tile)
| The user clicked some place on the map when a tile highlight mode has been set.
virtual bool | OnVehicleSelect (const struct Vehicle *v)
| The user clicked on a vehicle while HT_VEHICLE has been set.
virtual bool | OnVehicleSelect (VehicleList::const_iterator begin, VehicleList::const_iterator end)
| The user clicked on a vehicle while HT_VEHICLE has been set.
virtual void | OnPlaceObjectAbort ()
| The user cancelled a tile highlight mode that has been set.
virtual void | OnPlaceDrag (ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt)
| The user is dragging over the map when the tile highlight mode has been set.
virtual void | OnPlaceMouseUp (ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt, TileIndex start_tile, TileIndex end_tile)
| The user has dragged over the map when the tile highlight mode has been set.
virtual void | OnPlacePresize (Point pt, TileIndex tile)
| The user moves over the map when a tile highlight mode has been set when the special mouse mode has been set to 'PRESIZE' mode.
virtual bool | IsNewGRFInspectable () const
| Is the data related to this window NewGRF inspectable?
virtual void | ShowNewGRFInspectWindow () const
| Show the NewGRF inspection window.
template<>
const NWidgetBase * | GetWidget (WidgetID widnum) const
| Specialized case of Window::GetWidget for the nested widget base class.

## Data Fields
GroupBy | grouping {}
| How we want to group the list.
VehicleList | vehicles {}
| List of vehicles. This is the buffer for `vehgroups` to point into; if this is structurally modified, `vehgroups` must be rebuilt.
GUIVehicleGroupList | vehgroups {}
| List of (groups of) vehicles. This stores iterators of `vehicles`, and should be rebuilt if `vehicles` is structurally changed.
Listing * | sorting = nullptr
| Pointer to the vehicle type related sorting.
uint8_t | unitnumber_digits = 0
| The number of digits of the highest unit number.
Scrollbar * | vscroll = nullptr
VehicleListIdentifier | vli {}
| Identifier of the vehicle list we want to currently show.
VehicleID | vehicle_sel {}
| Selected vehicle.
CargoType | cargo_filter_criteria {}
| Selected cargo filter index.
uint | order_arrow_width = 0
| Width of the arrow in the small order list.
CargoTypes | used_cargoes {}
Data Fields inherited from Window
WindowDesc & | window_desc
| Window description.
WindowFlags | flags {}
| Window flags.
WindowClass | window_class {}
| Window class.
WindowNumber | window_number = 0
| Window number within the window class.
int | scale = 0
| Scale of this window – used to determine how to resize.
uint8_t | timeout_timer = 0
| Timer value of the WindowFlag::Timeout for flags.
uint8_t | white_border_timer = 0
| Timer value of the WindowFlag::WhiteBorder for flags.
int | left = 0
| x position of left edge of the window
int | top = 0
| y position of top edge of the window
int | width = 0
| width of the window (number of pixels to the right in x direction)
int | height = 0
| Height of the window (number of pixels down in y direction)
ResizeInfo | resize {}
| Resize information.
Owner | owner = INVALID_OWNER
| The owner of the content shown in this window. Company colour is acquired from this variable.
std::unique_ptr< ViewportData > | viewport
| Pointer to viewport data, if present.
const NWidgetCore * | nested_focus = nullptr
| Currently focused nested widget, or `nullptr` if no nested widget has focus.
std::map< WidgetID, QueryString * > | querystrings {}
| QueryString associated to WWT_EDITBOX widgets.
std::unique_ptr< NWidgetBase > | nested_root {}
| Root of the nested tree.
WidgetLookup | widget_lookup {}
| Indexed access to the nested widget tree. Do not access directly, use Window::GetWidget() instead.
NWidgetStacked * | shade_select = nullptr
| Selection widget (NWID_SELECTION) to use for shading the window. If `nullptr`, window cannot shade.
Dimension | unshaded_size {}
| Last known unshaded size (only valid while shaded).
WidgetID | mouse_capture_widget = INVALID_WIDGET
| ID of current mouse capture widget (e.g. dragged scrollbar). `INVALID_WIDGET` if no widget has mouse capture.
Window * | parent = nullptr
| Parent window.
WindowList::iterator | z_position {}

## Static Public Attributes
static const StringID | vehicle_depot_name []
static const std::initializer_list< const StringID > | vehicle_group_by_names
static const std::initializer_list< const StringID > | vehicle_group_none_sorter_names_calendar
static const std::initializer_list< const StringID > | vehicle_group_none_sorter_names_wallclock
static const std::initializer_list< const StringID > | vehicle_group_shared_orders_sorter_names_calendar
static const std::initializer_list< const StringID > | vehicle_group_shared_orders_sorter_names_wallclock
static const std::initializer_list< VehicleGroupSortFunction *const > | vehicle_group_none_sorter_funcs
static const std::initializer_list< VehicleGroupSortFunction *const > | vehicle_group_shared_orders_sorter_funcs

## Additional Inherited Members
Static Public Member Functions inherited from Window
static int | SortButtonWidth ()
| Get width of up/down arrow of sort button state.
static void | DeleteClosedWindows ()
| Delete all closed windows.
Protected Member Functions inherited from Window
void | InitializeData (WindowNumber window_number)
| Initializes the data (except the position and initial size) of a new Window.
void | InitializePositionSize (int x, int y, int min_width, int min_height)
| Set the position and smallest size of the window.
virtual void | FindWindowPlacementAndResize (int def_width, int def_height, bool allow_resize)
| Resize window towards the default size.
virtual | ~Window ()
| Remove window and all its child windows from the window stack.
Protected Attributes inherited from Window
std::vector< int > | scheduled_invalidation_data {}
| Data of scheduled OnInvalidateData() calls.
bool | scheduled_resize = false
| Set if window has been resized.

## Detailed Description

Definition at line 67 of file vehicle_gui_base.h.

## Member Typedef Documentation

## ◆ VehicleGroupSortFunction

typedef GUIVehicleGroupList::SortFunction BaseVehicleListWindow::VehicleGroupSortFunction

Definition at line 88 of file vehicle_gui_base.h.

## ◆ VehicleIndividualSortFunction

typedef GUIVehicleList::SortFunction BaseVehicleListWindow::VehicleIndividualSortFunction

Definition at line 89 of file vehicle_gui_base.h.

## Member Enumeration Documentation

## ◆ ActionDropdownItem

enum BaseVehicleListWindow::ActionDropdownItem : uint8_t

Definition at line 91 of file vehicle_gui_base.h.

## ◆ GroupBy

enum BaseVehicleListWindow::GroupBy : uint8_t

Definition at line 69 of file vehicle_gui_base.h.

## Constructor & Destructor Documentation

## ◆ BaseVehicleListWindow()

BaseVehicleListWindow::BaseVehicleListWindow | ( | WindowDesc & | desc,
|  | const VehicleListIdentifier & | vli
| ) |  |

Definition at line 166 of file vehicle_gui.cpp.

## Member Function Documentation

## ◆ BuildActionDropdownList()

DropDownList BaseVehicleListWindow::BuildActionDropdownList | ( | bool | show_autoreplace,
|  | bool | show_group,
|  | bool | show_create
| ) |  |

Display the Action dropdown window.

Parameters

  show_autoreplace | If true include the autoreplace item.
  show_group | If true include group-related stuff.
  show_create | If true include group-create item.

Returns
  Itemlist for dropdown

Definition at line 526 of file vehicle_gui.cpp.

References vli, and VehicleListIdentifier::vtype.

Referenced by VehicleGroupWindow::OnClick(), and VehicleListWindow::OnClick().

## ◆ BuildCargoDropDownList()

DropDownList BaseVehicleListWindow::BuildCargoDropDownList | ( | bool | full | ) | const

Build drop down list for cargo filter selection.

Parameters

  full | If true, build list with all cargo types, instead of only used cargo types.

Returns
  Drop down list for cargo filter.

Definition at line 498 of file vehicle_gui.cpp.

References _sorted_cargo_specs, CargoFilterCriteria::CF_ANY, CargoFilterCriteria::CF_FREIGHT, CargoFilterCriteria::CF_NONE, GetLargestCargoIconSize(), and HasBit().

Referenced by VehicleGroupWindow::OnClick(), VehicleListWindow::OnClick(), VehicleGroupWindow::UpdateWidgetSize(), and VehicleListWindow::UpdateWidgetSize().

## ◆ BuildVehicleList()

void BaseVehicleListWindow::BuildVehicleList | ( |  | ) |

Definition at line 219 of file vehicle_gui.cpp.

## ◆ DrawVehicleListItems()

void BaseVehicleListWindow::DrawVehicleListItems | ( | VehicleID | selected_vehicle,
|  | int | line_height,
|  | const Rect & | r
| ) |  | const

Draw all the vehicle list items.

Parameters

  selected_vehicle | The vehicle that is to be highlighted.
  line_height | Height of a single item line.
  r | Rectangle with edge positions of the matrix widget.

Definition at line 1757 of file vehicle_gui.cpp.

References _current_text_dir, _settings_client, Vehicle::age, Vehicle::cargo_cap, Vehicle::cargo_type, BaseConsist::cur_real_order_index, TimerGameConst< struct Calendar >::DAYS_IN_LEAP_YEAR, DEFAULT_GROUP, DrawSprite(), DrawString(), DrawVehicleImage(), DrawVehicleProfitButton(), EIT_IN_LIST, WidgetDimensions::framerect, FS_NORMAL, FS_SMALL, GetCharacterHeight(), GetSpriteSize(), GetString(), GetUnitNumberWidth(), Scrollbar::GetVisibleRangeIterators(), Vehicle::group_id, grouping, ClientSettings::gui, WidgetDimensions::hsep_normal, WidgetDimensions::hsep_wide, Rect::Indent(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem< Tpool >::index, Vehicle::IsChainInDepot(), Vehicle::max_age, BaseConsist::name, SpecializedVehicle< T, Type >::Next(), PathfinderLost, SA_LEFT, WidgetDimensions::scaled, ScaleGUITrad(), SetBit(), GUISettings::show_cargo_in_vehicle_lists, Rect::Shrink(), TD_RTL, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), Rect::Translate(), Vehicle::unitnumber, unitnumber_digits, TimerGameEconomy::UsingWallclockUnits(), VEH_SHIP, vehgroups, BaseConsist::vehicle_flags, GUIVehicleGroup::vehicles_begin, vli, VehicleListIdentifier::vtype, Rect::Width(), Rect::WithHeight(), and Rect::WithX().

Referenced by VehicleGroupWindow::DrawWidget(), and VehicleListWindow::DrawWidget().

## ◆ FilterVehicleList()

void BaseVehicleListWindow::FilterVehicleList | ( |  | ) |

Filter the engine list against the currently selected cargo filter.

Definition at line 441 of file vehicle_gui.cpp.

References cargo_filter_criteria, GUIList< T, P, F >::Filter(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_vehicle_pool >::Get(), vehgroups, vehicle_sel, and vehicles.

## ◆ GetActionDropdownSize()

Dimension BaseVehicleListWindow::GetActionDropdownSize | ( | bool | show_autoreplace,
|  | bool | show_group,
|  | bool | show_create
| ) |  |

Compute the size for the Action dropdown.

Parameters

  show_autoreplace | If true include the autoreplace item.
  show_group | If true include group-related stuff.
  show_create | If true include group-create item.

Returns
  Required size.

Definition at line 459 of file vehicle_gui.cpp.

References GetStringBoundingBox(), maxdim(), vli, and VehicleListIdentifier::vtype.

Referenced by VehicleGroupWindow::UpdateWidgetSize(), and VehicleListWindow::UpdateWidgetSize().

## ◆ GetCargoFilterLabel()

StringID BaseVehicleListWindow::GetCargoFilterLabel | ( | CargoType | cargo_type | ) | const

Definition at line 483 of file vehicle_gui.cpp.

## ◆ GetVehicleSorterFuncs()

std::span< VehicleGroupSortFunction *const > BaseVehicleListWindow::GetVehicleSorterFuncs | ( |  | ) | const
| inline

Definition at line 129 of file vehicle_gui_base.h.

## ◆ GetVehicleSorterNames()

std::span< const StringID > BaseVehicleListWindow::GetVehicleSorterNames | ( |  | ) | const

Definition at line 173 of file vehicle_gui.cpp.

## ◆ OnInit()

void BaseVehicleListWindow::OnInit | ( |  | ) |
| overridevirtual

Notification that the nested widget tree gets initialized.

The event can be used to perform general computations.

Note
  nested_root and/or widget_lookup (normally accessed via GetWidget()) may not exist during this call.

Reimplemented from Window.

Definition at line 477 of file vehicle_gui.cpp.

References FS_SMALL, GetStringBoundingBox(), order_arrow_width, SetCargoFilterArray(), and Window::width.

## ◆ SetCargoFilter()

void BaseVehicleListWindow::SetCargoFilter | ( | uint8_t | index | ) |

Set cargo filter for the vehicle group list.

Parameters

  cargo_type | The cargo to be set.

Definition at line 417 of file vehicle_gui.cpp.

References cargo_filter_criteria, CargoFilterCriteria::CF_ANY, GUIList< T, P, F >::ForceRebuild(), GUIList< T, P, F >::SetFilterState(), GUIList< T, P, F >::SetFilterType(), and vehgroups.

Referenced by VehicleGroupWindow::OnDropdownSelect(), and VehicleListWindow::OnDropdownSelect().

## ◆ SetCargoFilterArray()

void BaseVehicleListWindow::SetCargoFilterArray | ( |  | ) |

Populate the filter list and set the cargo filter criteria.

Definition at line 431 of file vehicle_gui.cpp.

References cargo_filter_criteria, CargoFilterCriteria::CF_ANY, GUIList< T, P, F >::SetFilterFuncs(), GUIList< T, P, F >::SetFilterState(), and vehgroups.

Referenced by OnInit().

## ◆ SortVehicleList()

void BaseVehicleListWindow::SortVehicleList | ( |  | ) |

Definition at line 556 of file vehicle_gui.cpp.

## ◆ UpdateSortingFromGrouping()

void BaseVehicleListWindow::UpdateSortingFromGrouping | ( |  | ) |

Definition at line 1861 of file vehicle_gui.cpp.

## ◆ UpdateVehicleGroupBy()

void BaseVehicleListWindow::UpdateVehicleGroupBy | ( | GroupBy | group_by | ) |

Definition at line 1879 of file vehicle_gui.cpp.

## Field Documentation

## ◆ cargo_filter_criteria

CargoType BaseVehicleListWindow::cargo_filter_criteria {}

Selected cargo filter index.

Definition at line 84 of file vehicle_gui_base.h.

Referenced by FilterVehicleList(), VehicleGroupWindow::GetWidgetString(), VehicleListWindow::GetWidgetString(), VehicleGroupWindow::OnClick(), VehicleListWindow::OnClick(), SetCargoFilter(), and SetCargoFilterArray().

## ◆ grouping

GroupBy BaseVehicleListWindow::grouping {}

How we want to group the list.

Definition at line 76 of file vehicle_gui_base.h.

Referenced by DrawVehicleListItems(), VehicleGroupWindow::DrawWidget(), VehicleListWindow::GetWidgetString(), VehicleGroupWindow::OnClick(), VehicleListWindow::OnClick(), and VehicleGroupWindow::OnPaint().

## ◆ order_arrow_width

uint BaseVehicleListWindow::order_arrow_width = 0

Width of the arrow in the small order list.

Definition at line 85 of file vehicle_gui_base.h.

Referenced by OnInit().

## ◆ sorting

Listing* BaseVehicleListWindow::sorting = nullptr

Pointer to the vehicle type related sorting.

Definition at line 79 of file vehicle_gui_base.h.

## ◆ unitnumber_digits

uint8_t BaseVehicleListWindow::unitnumber_digits = 0

The number of digits of the highest unit number.

Definition at line 80 of file vehicle_gui_base.h.

Referenced by DrawVehicleListItems().

## ◆ used_cargoes

CargoTypes BaseVehicleListWindow::used_cargoes {}

Definition at line 86 of file vehicle_gui_base.h.

## ◆ vehgroups

GUIVehicleGroupList BaseVehicleListWindow::vehgroups {}

List of (groups of) vehicles. This stores iterators of `vehicles`, and should be rebuilt if `vehicles` is structurally changed.

Definition at line 78 of file vehicle_gui_base.h.

Referenced by DrawVehicleListItems(), VehicleGroupWindow::DrawWidget(), VehicleListWindow::DrawWidget(), FilterVehicleList(), VehicleListWindow::GetWidgetString(), VehicleGroupWindow::OnClick(), VehicleListWindow::OnClick(), VehicleGroupWindow::OnDropdownSelect(), VehicleListWindow::OnDropdownSelect(), VehicleListWindow::OnGameTick(), VehicleGroupWindow::OnInvalidateData(), VehicleListWindow::OnInvalidateData(), VehicleGroupWindow::OnPaint(), VehicleGroupWindow::SelectGroup(), SetCargoFilter(), and SetCargoFilterArray().

## ◆ vehicle_depot_name

const StringID BaseVehicleListWindow::vehicle_depot_name
| static

Initial value:
= {
STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT,
STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT,
STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT,
STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR
}

Definition at line 159 of file vehicle_gui_base.h.

## ◆ vehicle_group_by_names

const std::initializer_list< const StringID > BaseVehicleListWindow::vehicle_group_by_names
| static

Initial value:
= {
STR_GROUP_BY_NONE,
STR_GROUP_BY_SHARED_ORDERS,
}

Definition at line 154 of file vehicle_gui_base.h.

## ◆ vehicle_group_none_sorter_funcs

const std::initializer_list< BaseVehicleListWindow::VehicleGroupSortFunction *const > BaseVehicleListWindow::vehicle_group_none_sorter_funcs
| static

Initial value:
= {
&VehicleIndividualToGroupSorterWrapper<VehicleNumberSorter>,
&VehicleIndividualToGroupSorterWrapper<VehicleNameSorter>,
&VehicleIndividualToGroupSorterWrapper<VehicleAgeSorter>,
&VehicleIndividualToGroupSorterWrapper<VehicleProfitThisYearSorter>,
&VehicleIndividualToGroupSorterWrapper<VehicleProfitLastYearSorter>,
&VehicleIndividualToGroupSorterWrapper<VehicleCargoSorter>,
&VehicleIndividualToGroupSorterWrapper<VehicleReliabilitySorter>,
&VehicleIndividualToGroupSorterWrapper<VehicleMaxSpeedSorter>,
&VehicleIndividualToGroupSorterWrapper<VehicleModelSorter>,
&VehicleIndividualToGroupSorterWrapper<VehicleValueSorter>,
&VehicleIndividualToGroupSorterWrapper<VehicleLengthSorter>,
&VehicleIndividualToGroupSorterWrapper<VehicleTimeToLiveSorter>,
&VehicleIndividualToGroupSorterWrapper<VehicleTimetableDelaySorter>,
}

Definition at line 82 of file vehicle_gui_base.h.

## ◆ vehicle_group_none_sorter_names_calendar

const std::initializer_list< const StringID > BaseVehicleListWindow::vehicle_group_none_sorter_names_calendar
| static

Initial value:
= {
STR_SORT_BY_NUMBER,
STR_SORT_BY_NAME,
STR_SORT_BY_AGE,
STR_SORT_BY_PROFIT_THIS_YEAR,
STR_SORT_BY_PROFIT_LAST_YEAR,
STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE,
STR_SORT_BY_RELIABILITY,
STR_SORT_BY_MAX_SPEED,
STR_SORT_BY_MODEL,
STR_SORT_BY_VALUE,
STR_SORT_BY_LENGTH,
STR_SORT_BY_LIFE_TIME,
STR_SORT_BY_TIMETABLE_DELAY,
}

Definition at line 98 of file vehicle_gui_base.h.

## ◆ vehicle_group_none_sorter_names_wallclock

const std::initializer_list< const StringID > BaseVehicleListWindow::vehicle_group_none_sorter_names_wallclock
| static

Initial value:
= {
STR_SORT_BY_NUMBER,
STR_SORT_BY_NAME,
STR_SORT_BY_AGE,
STR_SORT_BY_PROFIT_THIS_PERIOD,
STR_SORT_BY_PROFIT_LAST_PERIOD,
STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE,
STR_SORT_BY_RELIABILITY,
STR_SORT_BY_MAX_SPEED,
STR_SORT_BY_MODEL,
STR_SORT_BY_VALUE,
STR_SORT_BY_LENGTH,
STR_SORT_BY_LIFE_TIME,
STR_SORT_BY_TIMETABLE_DELAY,
}

Definition at line 114 of file vehicle_gui_base.h.

## ◆ vehicle_group_shared_orders_sorter_funcs

const std::initializer_list< BaseVehicleListWindow::VehicleGroupSortFunction *const > BaseVehicleListWindow::vehicle_group_shared_orders_sorter_funcs
| static

Initial value:
= {
&VehicleGroupLengthSorter,
&VehicleGroupTotalProfitThisYearSorter,
&VehicleGroupTotalProfitLastYearSorter,
&VehicleGroupAverageProfitThisYearSorter,
&VehicleGroupAverageProfitLastYearSorter,
}

Definition at line 130 of file vehicle_gui_base.h.

## ◆ vehicle_group_shared_orders_sorter_names_calendar

const std::initializer_list< const StringID > BaseVehicleListWindow::vehicle_group_shared_orders_sorter_names_calendar
| static

Initial value:
= {
STR_SORT_BY_NUM_VEHICLES,
STR_SORT_BY_TOTAL_PROFIT_THIS_YEAR,
STR_SORT_BY_TOTAL_PROFIT_LAST_YEAR,
STR_SORT_BY_AVERAGE_PROFIT_THIS_YEAR,
STR_SORT_BY_AVERAGE_PROFIT_LAST_YEAR,
}

Definition at line 138 of file vehicle_gui_base.h.

## ◆ vehicle_group_shared_orders_sorter_names_wallclock

const std::initializer_list< const StringID > BaseVehicleListWindow::vehicle_group_shared_orders_sorter_names_wallclock
| static

Initial value:
= {
STR_SORT_BY_NUM_VEHICLES,
STR_SORT_BY_TOTAL_PROFIT_THIS_PERIOD,
STR_SORT_BY_TOTAL_PROFIT_LAST_PERIOD,
STR_SORT_BY_AVERAGE_PROFIT_THIS_PERIOD,
STR_SORT_BY_AVERAGE_PROFIT_LAST_PERIOD,
}

Definition at line 146 of file vehicle_gui_base.h.

## ◆ vehicle_sel

VehicleID BaseVehicleListWindow::vehicle_sel {}

Selected vehicle.

Definition at line 83 of file vehicle_gui_base.h.

Referenced by VehicleGroupWindow::DrawWidget(), FilterVehicleList(), VehicleGroupWindow::OnClick(), and VehicleGroupWindow::OnMouseDrag().

## ◆ vehicles

VehicleList BaseVehicleListWindow::vehicles {}

List of vehicles. This is the buffer for `vehgroups` to point into; if this is structurally modified, `vehgroups` must be rebuilt.

Definition at line 77 of file vehicle_gui_base.h.

Referenced by VehicleGroupWindow::DrawWidget(), FilterVehicleList(), VehicleListWindow::GetWidgetString(), VehicleListWindow::OnClick(), VehicleGroupWindow::OnDropdownSelect(), VehicleListWindow::OnDropdownSelect(), VehicleGroupWindow::OnPaint(), and VehicleListWindow::OnPaint().

## ◆ vli

VehicleListIdentifier BaseVehicleListWindow::vli {}

Identifier of the vehicle list we want to currently show.

Definition at line 82 of file vehicle_gui_base.h.

Referenced by BuildActionDropdownList(), VehicleGroupWindow::BuildGroupList(), VehicleGroupWindow::ComputeGroupInfoSize(), VehicleGroupWindow::DrawGroupInfo(), DrawVehicleListItems(), GetActionDropdownSize(), VehicleGroupWindow::GetGroupNameString(), VehicleGroupWindow::GetGroupProfitSpriteID(), VehicleGroupWindow::OnClick(), and VehicleListWindow::OnClick().

## ◆ vscroll

Scrollbar* BaseVehicleListWindow::vscroll = nullptr

Definition at line 81 of file vehicle_gui_base.h.

The documentation for this struct was generated from the following files:

- src/vehicle_gui_base.h
- src/vehicle_gui.cpp