OpenTTD Source
20241108-master-g80f628063a
|
GUI for the group window. More...
#include "stdafx.h"
#include "textbuf_gui.h"
#include "command_func.h"
#include "vehicle_gui.h"
#include "vehicle_base.h"
#include "string_func.h"
#include "strings_func.h"
#include "window_func.h"
#include "vehicle_func.h"
#include "autoreplace_gui.h"
#include "company_func.h"
#include "dropdown_func.h"
#include "tilehighlight_func.h"
#include "vehicle_gui_base.h"
#include "core/geometry_func.hpp"
#include "core/container_func.hpp"
#include "company_base.h"
#include "company_gui.h"
#include "gui.h"
#include "group_cmd.h"
#include "group_gui.h"
#include "vehicle_cmd.h"
#include "gfx_func.h"
#include "widgets/group_widget.h"
#include "table/sprites.h"
#include "safeguards.h"
Go to the source code of this file.
Data Structures | |
class | VehicleGroupWindow |
Functions | |
static void | GuiGroupListAddChildren (GUIGroupList &dst, const GUIGroupList &src, bool fold, GroupID parent=INVALID_GROUP, uint8_t indent=0) |
Add children to GUI group list to build a hierarchical tree. More... | |
void | BuildGuiGroupList (GUIGroupList &dst, bool fold, Owner owner, VehicleType veh_type) |
Build GUI group list, a sorted hierarchical list of groups for owner and vehicle type. More... | |
void | ShowCompanyGroup (CompanyID company, VehicleType vehicle_type, GroupID group, bool need_existing_window) |
Show the group window for the given company and vehicle type. More... | |
void | ShowCompanyGroupForVehicle (const Vehicle *v) |
Show the group window for the given vehicle. More... | |
static VehicleGroupWindow * | FindVehicleGroupWindow (VehicleType vt, Owner owner) |
Finds a group list window determined by vehicle type and owner. More... | |
static void | CcCreateGroup (GroupID gid, VehicleType veh_type) |
Opens a 'Rename group' window for newly created group. More... | |
void | CcCreateGroup (Commands, const CommandCost &result, GroupID new_group, VehicleType vt, GroupID) |
Opens a 'Rename group' window for newly created group. More... | |
void | CcAddVehicleNewGroup (Commands, const CommandCost &result, GroupID new_group, GroupID, VehicleID, bool, const VehicleListIdentifier &) |
Open rename window after adding a vehicle to a new group via drag and drop. More... | |
void | DeleteGroupHighlightOfVehicle (const Vehicle *v) |
Removes the highlight of a vehicle in a group window. More... | |
Variables | |
static constexpr NWidgetPart | _nested_group_widgets [] |
static WindowDesc | _other_group_desc (WDP_AUTO, "list_groups", 460, 246, WC_INVALID, WC_NONE, 0, _nested_group_widgets) |
static WindowDesc | _train_group_desc (WDP_AUTO, "list_groups_train", 525, 246, WC_TRAINS_LIST, WC_NONE, 0, _nested_group_widgets) |
GUI for the group window.
Definition in file group_gui.cpp.
void BuildGuiGroupList | ( | GUIGroupList & | dst, |
bool | fold, | ||
Owner | owner, | ||
VehicleType | veh_type | ||
) |
Build GUI group list, a sorted hierarchical list of groups for owner and vehicle type.
dst | Destination list, owned by the caller. |
fold | Whether to handle group folding/hiding. |
owner | Owner of groups. |
veh_type | Vehicle type of groups. |
Definition at line 156 of file group_gui.cpp.
References GUIList< T, P, F >::ForceResort(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::Iterate(), and GUIList< T, P, F >::Sort().
Referenced by VehicleGroupWindow::BuildGroupList().
void CcAddVehicleNewGroup | ( | Commands | cmd, |
const CommandCost & | result, | ||
GroupID | new_group, | ||
GroupID | , | ||
VehicleID | veh_id, | ||
bool | , | ||
const VehicleListIdentifier & | |||
) |
Open rename window after adding a vehicle to a new group via drag and drop.
result | Did command succeed? |
new_group | ID of the created group. |
Definition at line 1240 of file group_gui.cpp.
void CcCreateGroup | ( | Commands | cmd, |
const CommandCost & | result, | ||
GroupID | new_group, | ||
VehicleType | vt, | ||
GroupID | parent_group | ||
) |
Opens a 'Rename group' window for newly created group.
result | Did command succeed? |
new_group | ID of the created group. |
vt | Vehicle type. |
Definition at line 1227 of file group_gui.cpp.
|
static |
Opens a 'Rename group' window for newly created group.
veh_type | Vehicle type. |
Definition at line 1214 of file group_gui.cpp.
References _current_company, and FindVehicleGroupWindow().
void DeleteGroupHighlightOfVehicle | ( | const Vehicle * | v | ) |
Removes the highlight of a vehicle in a group window.
*v | Vehicle to remove all highlights from |
Definition at line 1252 of file group_gui.cpp.
References _special_mouse_mode, FindVehicleGroupWindow(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Vehicle::owner, BaseVehicle::type, VehicleGroupWindow::UnselectVehicle(), and WSM_DRAGDROP.
|
inlinestatic |
Finds a group list window determined by vehicle type and owner.
vt | vehicle type |
owner | owner of groups |
Definition at line 1205 of file group_gui.cpp.
References FindWindowById(), and GetWindowClassForVehicleType().
Referenced by CcCreateGroup(), and DeleteGroupHighlightOfVehicle().
|
static |
Add children to GUI group list to build a hierarchical tree.
dst | Destination list. |
src | Source list. |
fold | Whether to handle group folding/hiding. |
parent | Current tree parent (set by self with recursion). |
indent | Current tree indentation level (set by self with recursion). |
Definition at line 121 of file group_gui.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::Get().
void ShowCompanyGroup | ( | CompanyID | company, |
VehicleType | vehicle_type, | ||
GroupID | group, | ||
bool | need_existing_window | ||
) |
Show the group window for the given company and vehicle type.
company | The company to show the window for. |
vehicle_type | The type of vehicle to show it for. |
group | The group to be selected. Defaults to INVALID_GROUP. |
need_existing_window | Whether the existing window is needed. Defaults to false. |
Definition at line 1175 of file group_gui.cpp.
Referenced by ShowCompanyGroupForVehicle().
void ShowCompanyGroupForVehicle | ( | const Vehicle * | v | ) |
Show the group window for the given vehicle.
v | The vehicle to show the window for. |
Definition at line 1194 of file group_gui.cpp.
References Vehicle::group_id, Vehicle::owner, ShowCompanyGroup(), and BaseVehicle::type.