OpenTTD Source 20241224-master-gf74b0cf984
|
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. | |
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. | |
void | ShowCompanyGroup (CompanyID company, VehicleType vehicle_type, GroupID group, bool need_existing_window) |
Show the group window for the given company and vehicle type. | |
void | ShowCompanyGroupForVehicle (const Vehicle *v) |
Show the group window for the given vehicle. | |
static VehicleGroupWindow * | FindVehicleGroupWindow (VehicleType vt, Owner owner) |
Finds a group list window determined by vehicle type and owner. | |
static void | CcCreateGroup (GroupID gid, VehicleType veh_type) |
Opens a 'Rename group' window for newly created group. | |
void | CcCreateGroup (Commands, const CommandCost &result, GroupID new_group, VehicleType vt, GroupID) |
Opens a 'Rename group' window for newly created group. | |
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. | |
void | DeleteGroupHighlightOfVehicle (const Vehicle *v) |
Removes the highlight of a vehicle in a group window. | |
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(), GetString(), GuiGroupListAddChildren(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, INVALID_GROUP, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::Iterate(), Group::number, SetDParam(), GUIList< T, P, F >::Sort(), and StrNaturalCompare().
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.
References CcCreateGroup(), CommandCost::Failed(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::Get(), and Group::vehicle_type.
Referenced by VehicleGroupWindow::OnDropdownSelect(), and VehicleListWindow::OnDropdownSelect().
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.
References CcCreateGroup(), CommandCost::Failed(), and VEH_AIRCRAFT.
|
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().
Referenced by CcAddVehicleNewGroup(), CcCreateGroup(), and VehicleGroupWindow::OnClick().
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.
Referenced by Vehicle::PreDestructor().
|
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 AssignBit(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::Get(), and GuiGroupListAddChildren().
Referenced by BuildGuiGroupList(), and GuiGroupListAddChildren().
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.
References WindowDesc::cls, GetWindowClassForVehicleType(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), VehicleListIdentifier::Pack(), VehicleGroupWindow::SelectGroup(), and VEH_TRAIN.
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.
Referenced by NewsWindow::OnClick(), VehicleListWindow::OnClick(), and VehicleViewWindow::OnClick().
|
staticconstexpr |
Definition at line 40 of file group_gui.cpp.