DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
LayoutHolder.c
См. документацию.
2{
5 protected Widget m_ParentWidget;
7 protected string m_LayoutName;
8
9 protected bool m_IsActive;
10 protected bool m_ImmedUpdate;
11 protected bool m_TooltipOwner;
12
14
17
18 // Override this and set m_ImmedUpdate to true if you need the widget to update on construction
19 // Had to be done this way since adding it to the constructor parameters would break mods..
21 {
22 m_ImmedUpdate = false;
23 }
24
25 void OnSelectAction(ItemBase item, int actionId)
26 {
27 #ifdef DIAG_DEVELOPER
29 m_player.GetActionManager().OnInstantAction(ActionDebug,new Param2<ItemBase,int>(item,actionId));
30 #endif
31 }
32
33 void OnSelectActionEx(EntityAI item, int actionId)
34 {
35 #ifdef DIAG_DEVELOPER
37 m_player.GetActionManager().OnInstantAction(ActionDebug,new Param2<EntityAI,int>(item,actionId));
38 #endif
39 }
40
42 {
45 m_am_entity1 = item;
46 m_am_entity2 = null;
47 ContextMenu cmenu = ContextMenu.Cast(GetGame().GetUIManager().GetMenu().GetContextMenu());
48
49 cmenu.Hide();
50 cmenu.Clear();
51
52 if (m_am_entity1 == null)
53 return;
54
55 TSelectableActionInfoArrayEx customActions = new TSelectableActionInfoArrayEx();
56 ItemBase itemBase = ItemBase.Cast(item);
57 itemBase.GetDebugActions(customActions);
58
59 if (ItemBase.GetDebugActionsMask() & DebugActionType.PLAYER_AGENTS)
60 {
61 m_player.GetDebugActions(customActions);
62 }
63
64 int actionsCount = customActions.Count();
65 for (int i = 0; i < customActions.Count(); i++)
66 {
67 TSelectableActionInfoWithColor actionInfo = TSelectableActionInfoWithColor.Cast(customActions.Get(i));
68 if (actionInfo)
69 {
70 int actionId = actionInfo.param2;
71 int textColor = actionInfo.param4;
72 string actionText = actionInfo.param3;
73
74 if (actionId == EActions.SEPARATOR)
75 cmenu.AddEx(actionText, textColor, this, "", null);
76 else
77 cmenu.AddEx(actionText, textColor, this, "OnSelectActionEx", new Param3<EntityAI, int, int>(itemBase, actionId, textColor));
78 }
79 }
80
81 int actionMenuPosX, actionMenuPosY;
82 GetMousePos(actionMenuPosX, actionMenuPosY);
83 actionMenuPosX -= 5;
84 actionMenuPosY -= 5;
85 cmenu.Show(actionMenuPosX, actionMenuPosY);
86 }
87
88
90 {
91 m_Parent = parent;
92
96
97 m_TooltipOwner = false;
98
99 if ( m_LayoutName != "" )
100 {
102 m_MainWidget.Show( true, false );
103 }
104
106
107 if ( m_ParentWidget )
108 {
109 m_ParentWidget.Show( true, false );
110 if ( m_MainWidget )
111 {
112 m_ParentWidget.AddChild( m_MainWidget, false );
113 }
114 }
115
116 if ( m_ImmedUpdate )
117 {
118 if ( m_MainWidget )
119 m_MainWidget.Update();
120 }
121 }
122
124 {
126 delete m_RootWidget;
127 }
128
130 {
131 if ( m_Parent )
132 {
133 ref LayoutHolder container = m_Parent.GetRoot();
134 return container;
135 }
136 else
137 {
138 return this;
139 }
140 }
141
143 {
144 if ( m_Parent )
145 m_ParentWidget = m_Parent.GetMainWidget();
146 }
147
149 {
150 return m_Parent;
151 }
152
153 void SetActive(bool active)
154 {
155 m_IsActive = active;
156 }
157
160
161 bool IsActive()
162 {
163 return m_IsActive;
164 }
165
167 {
168 return m_MainWidget;
169 }
170
172 {
173 return m_RootWidget;
174 }
175
177 {
178 return true;
179 }
180
182 {
183 if (m_RootWidget)
184 {
185 return m_RootWidget.IsVisible();
186 }
187 return false;
188 }
189
190 void OnShow()
191 {
192 m_RootWidget.Show( true );
193 if ( m_ParentWidget )
194 m_ParentWidget.Show( true );
195 }
196
197 void OnHide()
198 {
199 m_RootWidget.Show( false );
200 }
201
202 void Refresh()
203 {
204 m_RootWidget.Update();
205 }
206
208 {
209 InventoryMenu menu = InventoryMenu.Cast( GetGame().GetUIManager().FindMenu(MENU_INVENTORY) );
210 InspectMenuNew inspect_menu = InspectMenuNew.Cast( menu.EnterScriptedMenu(MENU_INSPECT) );
211 if ( inspect_menu )
212 {
213 GetGame().GetMission().GetHud().ShowHudUI( false );
215 inspect_menu.SetItem( item );
216 }
217 }
218
220 {}
221
222 void PrepareOwnedTooltip(EntityAI item/*, Widget w*/, int x = 0, int y = 0)
223 {
225 m_TooltipOwner = true;
226 }
227
228 void PrepareOwnedSlotsTooltip(Widget w, string name, string desc, int x = 0, int y = 0)
229 {
232 m_TooltipOwner = true;
233 }
234
236 {
237 if (m_TooltipOwner)
238 {
240 m_TooltipOwner = false;
241 }
242 }
243
245 {
246 if (m_TooltipOwner)
247 {
249 m_TooltipOwner = false;
250 }
251 }
252}
Param4< int, int, string, int > TSelectableActionInfoWithColor
Определения EntityAI.c:97
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
EActions
Определения EActions.c:2
Icon x
Icon y
override ContextMenu GetContextMenu()
Определения InventoryMenu.c:80
void InventoryMenu()
Определения InventoryMenu.c:20
PlayerBase GetPlayer()
Определения ModifierBase.c:51
DebugActionType
Определения PluginDiagMenu.c:7
DayZPlayer m_player
Определения RandomGeneratorSyncManager.c:16
proto native WorkspaceWidget GetWorkspace()
proto native Mission GetMission()
Определения Building.c:6
void ShowHudUI(bool show)
void ShowQuickbarUI(bool show)
Определения ItemBase.c:15
override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
Определения PowerGenerator.c:412
Определения InventoryItem.c:731
void HideTooltipSlot()
Определения ItemManager.c:407
void HideTooltip()
Определения ItemManager.c:398
void PrepareTooltip(EntityAI item, int x=0, int y=0)
Определения ItemManager.c:522
void PrepareSlotsTooltip(string name, string desc, int x=0, int y=0)
position is currentlycalculated from the owning 'm_TooltipSourceWidget' directly
Определения ItemManager.c:585
void SetTooltipWidget(Widget w)
Определения ItemManager.c:674
static ItemManager GetInstance()
Определения ItemManager.c:282
Определения ItemManager.c:2
override void SetLayoutName()
Определения Container.c:1196
Определения Container.c:2
Hud GetHud()
Определения gameplay.c:721
Определения PPEConstants.c:68
Определения EntityAI.c:95
Определения PlayerBaseClient.c:2
void SetParentWidget()
Определения LayoutHolder.c:142
void ShowActionMenu(InventoryItem item)
Определения LayoutHolder.c:41
Widget m_RootWidget
Определения LayoutHolder.c:4
bool IsActive()
Определения LayoutHolder.c:161
LayoutHolder m_Parent
Определения LayoutHolder.c:6
void PrepareOwnedSlotsTooltip(Widget w, string name, string desc, int x=0, int y=0)
Определения LayoutHolder.c:228
LayoutHolder GetParent()
Определения LayoutHolder.c:148
void SetImmedUpdate()
Определения LayoutHolder.c:20
void PrepareOwnedTooltip(EntityAI item, int x=0, int y=0)
Определения LayoutHolder.c:222
EntityAI m_am_entity2
Определения LayoutHolder.c:13
void OnSelectAction(ItemBase item, int actionId)
Определения LayoutHolder.c:25
Widget m_ParentWidget
Определения UiHintPanel.c:29
string m_LayoutName
Определения LayoutHolder.c:7
void HideOwnedTooltip()
Определения LayoutHolder.c:235
void OnHide()
Определения LayoutHolder.c:197
void LayoutHolder(LayoutHolder parent)
Определения LayoutHolder.c:89
bool IsDisplayable()
Определения LayoutHolder.c:176
Widget GetRootWidget()
Определения LayoutHolder.c:171
void InspectItem(EntityAI item)
Определения LayoutHolder.c:207
void Refresh()
Определения LayoutHolder.c:202
LayoutHolder GetRoot()
Определения LayoutHolder.c:129
void OnSelectActionEx(EntityAI item, int actionId)
Определения LayoutHolder.c:33
void HideOwnedSlotsTooltip()
Определения LayoutHolder.c:244
void SetActive(bool active)
Определения LayoutHolder.c:153
Widget m_MainWidget
Определения LayoutHolder.c:3
bool IsVisible()
Определения LayoutHolder.c:181
bool m_IsActive
Определения LayoutHolder.c:9
Widget GetMainWidget()
Определения LayoutHolder.c:166
bool m_TooltipOwner
Определения LayoutHolder.c:11
bool m_ImmedUpdate
Определения LayoutHolder.c:10
EntityAI m_am_entity1
Определения LayoutHolder.c:13
void ~LayoutHolder()
Определения LayoutHolder.c:123
void ContextMenu()
Определения ContextMenu.c:15
void UpdateSelectionIcons()
Определения LayoutHolder.c:219
void OnShow()
Определения LayoutHolder.c:190
map: item x vector(index, width, height)
Определения EnWidgets.c:651
Определения EnWidgets.c:190
proto native CGame GetGame()
const int MENU_INSPECT
Определения constants.c:179
const int MENU_INVENTORY
Определения constants.c:180
proto void GetMousePos(out int x, out int y)
proto native external Widget CreateWidgets(string layout, Widget parentWidget=NULL, bool immedUpdate=true)
Create widgets from *.layout file.