Dayz Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Loading...
Searching...
No Matches
leftarea.c
Go to the documentation of this file.
2{
3 protected Widget m_UpIcon;
4 protected Widget m_DownIcon;
9 protected ScrollWidget m_SlotsScrollWidget;
10 protected ScrollWidget m_ScrollWidget;
11 protected ref SizeToChild m_ContentResize;
12 protected bool m_ShouldChangeSize = true;
13 protected bool m_IsProcessing = false; // Prevents refreshing every time a child is added while it is still processing
14
15 void LeftArea(LayoutHolder parent )
16 {
17 m_MainWidget.Show(true, false);
18
19 m_ContentParent = m_MainWidget.FindAnyWidget("ContentParent");
21
22 #ifndef PLATFORM_CONSOLE
23 m_SlotsHeader = m_MainWidget.FindAnyWidget("SlotsHeader");
24 m_SlotsContent = m_MainWidget.FindAnyWidget("SlotsContent");
25 m_SlotsScrollWidget = ScrollWidget.Cast(m_MainWidget.FindAnyWidget("ScrollerSlotsContent"));
26 #endif
27
28 m_ScrollWidget = ScrollWidget.Cast(m_MainWidget.FindAnyWidget("Scroller"));
29 m_MainWidget = m_MainWidget.FindAnyWidget("Content");
30
31 m_UpIcon = m_RootWidget.FindAnyWidget("Up");
32 m_DownIcon = m_RootWidget.FindAnyWidget("Down");
33
34 m_VicinityContainer = new VicinityContainer(this, false);
35 m_Body.Insert(m_VicinityContainer);
36 m_ActiveIndex = 0;
37
38 WidgetEventHandler.GetInstance().RegisterOnChildAdd(m_MainWidget, this, "OnChildAdd");
39 WidgetEventHandler.GetInstance().RegisterOnChildRemove(m_MainWidget, this, "OnChildRemove");
40 RecomputeOpenedContainers();
41 }
42
43 override void UnfocusGrid()
44 {
45 Container active_container;
46 for ( int i = 0; i < m_OpenedContainers.Count(); i++ )
47 {
48 active_container = Container.Cast( m_OpenedContainers.Get( i ) );
49 active_container.UnfocusGrid();
50 }
51 }
52
53 override bool IsActive()
54 {
55 if( m_OpenedContainers.Count() <= m_ActiveIndex )
56 {
57 m_ActiveIndex = 0;
58 }
59 Container active_container = Container.Cast( m_OpenedContainers.Get( m_ActiveIndex ) );
60 return active_container.IsActive( );
61 }
62
63 override void SetActive( bool active )
64 {
65 super.SetActive( active );
66
68 }
69
70 override ScrollWidget GetScrollWidget()
71 {
72 return m_ScrollWidget;
73 }
74
75 override void UpdateSelectionIcons()
76 {
77 #ifdef PLATFORM_CONSOLE
78 ScrollToActiveContainer();
79 #endif
80 m_UpIcon.Show( m_IsActive );
81 m_DownIcon.Show( m_IsActive );
82 if( m_IsActive )
83 {
84 float x, y;
85 m_UpIcon.GetScreenSize( x, y );
86
87 float top_y = GetCurrentContainerTopY();
88 m_UpIcon.SetPos( 0, Math.Clamp( top_y, 0, 99999 ) );
89
90 #ifndef PLATFORM_CONSOLE
91 float x2, y2;
92 m_DownIcon.GetScreenSize( x2, y2 );
93 float bottom_y = GetCurrentContainerBottomY() - y2;
94
95 float diff = bottom_y - ( top_y + y );
96 if( diff < 0 )
97 {
98 top_y += diff / 2;
99 bottom_y -= diff / 2;
100 }
101 m_DownIcon.SetPos( 0, bottom_y );
102 #endif
103 }
104 }
105
107 {
108 float x, y, cont_screen_pos;
109 m_MainWidget.GetScreenPos( x, y );
110 if ( m_OpenedContainers.IsValidIndex( m_ActiveIndex ) )
111 cont_screen_pos = Container.Cast( m_OpenedContainers.Get( m_ActiveIndex ) ).GetFocusedContainerYScreenPos();
112
113 return cont_screen_pos - y;
114 }
115
117 {
118 float x, y, cont_screen_pos, cont_screen_height;
119 m_MainWidget.GetScreenPos( x, y );
120
121 if ( m_OpenedContainers.IsValidIndex( m_ActiveIndex ) )
122 {
123 cont_screen_pos = Container.Cast( m_OpenedContainers.Get( m_ActiveIndex ) ).GetFocusedContainerYScreenPos();
124 cont_screen_height = Container.Cast( m_OpenedContainers.Get( m_ActiveIndex ) ).GetFocusedContainerHeight();
125 }
126
127 return cont_screen_pos - y + cont_screen_height;
128 }
129
131 {
132 super.SetSameLevelNextActive();
133 Refresh();
134 }
135
137 {
138 super.SetSameLevelPreviousActive();
139 Refresh();
140 }
141
143 {
144 Container c = GetFocusedContainer();
145 if (c)
146 {
147 c.ExpandCollapseContainer();
148 }
149
150 Refresh();
151 }
152
153 void OnLeftPanelDropReceived( Widget w, int x, int y, Widget receiver )
154 {
155 m_VicinityContainer.OnLeftPanelDropReceived( w, x, y, receiver );
156 }
157
158 override void DraggingOverHeader( Widget w, int x, int y, Widget receiver )
159 {
160 m_VicinityContainer.DraggingOverHeader( w, x, y, receiver );
161 }
162
163 override void SetLayoutName()
164 {
165 #ifdef PLATFORM_CONSOLE
166 m_LayoutName = WidgetLayoutName.LeftAreaXbox;
167 #else
168 switch ( InventoryMenu.GetWidthType() )
169 {
170 case ScreenWidthType.NARROW:
171 {
172 m_LayoutName = WidgetLayoutName.LeftAreaNarrow;
173 break;
174 }
175 case ScreenWidthType.MEDIUM:
176 {
177 m_LayoutName = WidgetLayoutName.LeftAreaMedium;
178 break;
179 }
180 case ScreenWidthType.WIDE:
181 {
182 m_LayoutName = WidgetLayoutName.LeftAreaWide;
183 break;
184 }
185 }
186 #endif
187 }
188
190 {
191 EntityAI item = GetFocusedContainer().GetFocusedItem();
192 return item;
193 }
194
199
200 override void SetParentWidget()
201 {
202 m_ParentWidget = m_Parent.GetMainWidget().FindAnyWidget( "LeftPanel" );
203 }
204
205 override void OnShow()
206 {
207 super.OnShow();
208 Refresh();
209 }
210
211 override void Refresh()
212 {
213 super.Refresh();
214
215 m_MainWidget.Update();
216 m_RootWidget.Update();
217 #ifndef PLATFORM_CONSOLE
218 m_SlotsScrollWidget.Update();
219 #endif
220 m_ScrollWidget.Update();
221
223 m_ShouldChangeSize = true;
224 }
225
226 override void UpdateInterval()
227 {
228 m_IsProcessing = true;
229 super.UpdateInterval();
230 m_IsProcessing = false;
231
232 float x, y;
233 float x2, y2;
234 m_ContentParent.GetScreenSize( x, y );
235 m_MainWidget.GetScreenSize( x2, y2 );
236 if ( y2 != y )
237 m_ShouldChangeSize = true;
238 bool changed_size;
239 //if ( m_ShouldChangeSize )
240 m_ContentResize.ResizeParentToChild( changed_size );
241 if ( changed_size || m_ShouldChangeSize )
242 {
243 m_MainWidget.Update();
244 m_RootWidget.Update();
245 #ifndef PLATFORM_CONSOLE
246 m_SlotsScrollWidget.Update();
247 #endif
248 m_ScrollWidget.Update();
249 m_ShouldChangeSize = false;
250 }
251 CheckScrollbarVisibility();
252 }
253
254 override bool OnChildRemove( Widget w, Widget child )
255 {
256 if (!m_IsProcessing)
257 Refresh();
258 return true;
259 }
260
261 override bool OnChildAdd( Widget w, Widget child )
262 {
263 if (!m_IsProcessing)
264 Refresh();
265 return true;
266 }
267
268 #ifndef PLATFORM_CONSOLE
269 override ScrollWidget GetSlotsScrollWidget()
270 {
271 return m_SlotsScrollWidget;
272 }
273
275 {
276 return m_SlotsHeader;
277 }
278
280 {
281 return m_SlotsContent;
282 }
283 #endif
284}
Widget m_ParentWidget
Entity m_Parent
override float GetFocusedContainerYScreenPos(bool contents=false)
override float GetFocusedContainerHeight(bool contents=false)
override void UnfocusGrid()
Definition leftarea.c:43
override bool OnChildAdd(Widget w, Widget child)
Definition leftarea.c:261
void LeftArea(LayoutHolder parent)
Definition leftarea.c:15
override void Refresh()
Definition leftarea.c:211
ref SizeToChild m_ContentResize
Definition leftarea.c:11
override void UpdateSelectionIcons()
Definition leftarea.c:75
override void UpdateInterval()
Definition leftarea.c:226
override void OnShow()
Definition leftarea.c:205
Widget m_SlotsHeader
Definition leftarea.c:7
Widget GetSlotsArea()
Definition leftarea.c:279
bool m_ShouldChangeSize
Definition leftarea.c:12
void OnLeftPanelDropReceived(Widget w, int x, int y, Widget receiver)
Definition leftarea.c:153
override bool IsActive()
Definition leftarea.c:53
float GetCurrentContainerTopY()
Definition leftarea.c:106
override bool OnChildRemove(Widget w, Widget child)
Definition leftarea.c:254
override void SetActive(bool active)
Definition leftarea.c:63
override ScrollWidget GetScrollWidget()
Definition leftarea.c:70
override ScrollWidget GetSlotsScrollWidget()
Definition leftarea.c:269
Widget m_ContentParent
Definition leftarea.c:5
Widget GetSlotsHeader()
Definition leftarea.c:274
Widget m_UpIcon
Definition leftarea.c:3
float GetCurrentContainerBottomY()
Definition leftarea.c:116
override void ExpandCollapseContainer()
Definition leftarea.c:142
override void DraggingOverHeader(Widget w, int x, int y, Widget receiver)
Definition leftarea.c:158
VicinityContainer GetVicinityContainer()
Definition leftarea.c:195
override void SetParentWidget()
Definition leftarea.c:200
ScrollWidget m_SlotsScrollWidget
Definition leftarea.c:9
ScrollWidget m_ScrollWidget
Definition leftarea.c:10
ref VicinityContainer m_VicinityContainer
Definition leftarea.c:6
bool m_IsProcessing
Definition leftarea.c:13
override void SetSameLevelPreviousActive()
Definition leftarea.c:136
override void SetLayoutName()
Definition leftarea.c:163
override EntityAI GetFocusedItem()
Definition leftarea.c:189
Widget m_DownIcon
Definition leftarea.c:4
Widget m_SlotsContent
Definition leftarea.c:8
override void SetSameLevelNextActive()
Definition leftarea.c:130
Definition enmath.c:7
static WidgetEventHandler GetInstance()
void RegisterOnChildRemove(Widget w, Managed eventHandler, string functionName)
void RegisterOnChildAdd(Widget w, Managed eventHandler, string functionName)
const string LeftAreaMedium
const string LeftAreaWide
const string LeftAreaXbox
const string LeftAreaNarrow
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
Icon x
Icon y
ScreenWidthType
void InventoryMenu()
bool m_IsActive
ref Widget m_RootWidget[MAX_SIMULTANIOUS_PLAYERS]