Dayz Explorer  1.24.157551 (v105080)
Dayz Code Explorer by Zeroy
uiscriptedmenu.c
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------
3 {
4  proto native UIMenuPanel GetSubMenu();
5  proto native UIMenuPanel GetParentMenu();
6  proto native UIMenuPanel GetVisibleMenu();
7  proto native void SetSubMenu(UIMenuPanel submenu);
8  proto native void SetParentMenu(UIMenuPanel parent);
9  proto native bool CanClose();
10  proto native bool CanCloseOnEscape();
12  proto native UIScriptedMenu EnterScriptedMenu(int id);
13 
14  proto native void DestroySubmenu();
15  proto native bool IsAnyMenuVisible();
16  proto native bool IsVisible();
17 
18 #ifdef FEATURE_CURSOR
19  proto native bool IsCreatedHidden();
21 #endif
22 
25  void OnVisibilityChanged(bool isVisible)
26  {
27  }
28 
30  proto native void Close();
31 
32  bool UseMouse() {
33  #ifdef PLATFORM_CONSOLE
34  return GetGame().GetInput().IsEnabledMouseAndKeyboardEvenOnServer();
35  #else
36  return true;
37  #endif
38  }
39 
40  bool UseKeyboard() {
41  #ifdef PLATFORM_CONSOLE
42  return GetGame().GetInput().IsEnabledMouseAndKeyboardEvenOnServer();
43  #else
44  return true;
45  #endif
46  }
47 
48  bool UseGamepad() {
49  return true;
50  }
51 
53  int GetID() {
54  return MENU_UNKNOWN;
55  }
56 
58  void Refresh()
59  {
60  }
61 };
62 
63 //-----------------------------------------------------------------------------
65 class UIScriptedMenu extends UIMenuPanel
66 {
67  int m_id;
68  Widget layoutRoot;
69  private Widget m_AnimAlphaWidget;
70  private bool m_AnimAlphaIsIncreasing;
71  private float m_AnimAlphaValue;
72 
73  Widget GetLayoutRoot()
74  {
75  return layoutRoot;
76  }
77 
78  void LockControls()
79  {
80 #ifdef FEATURE_CURSOR
81  if (IsCreatedHidden())
82  return;
83 #endif
84 
85  if (UseMouse())
86  {
87  GetGame().GetInput().ChangeGameFocus(1, INPUT_DEVICE_MOUSE);
88  GetGame().GetUIManager().ShowUICursor(true);
89  }
90 
91  if (UseKeyboard())
92  {
93  GetGame().GetInput().ChangeGameFocus(1, INPUT_DEVICE_KEYBOARD);
94  }
95 
96  if (UseGamepad())
97  {
98  GetGame().GetInput().ChangeGameFocus(1, INPUT_DEVICE_GAMEPAD);
99  }
100  }
101 
102  void UnlockControls()
103  {
104 #ifdef FEATURE_CURSOR
105  if (IsCreatedHidden())
106  return;
107 #endif
108 
109  if (UseMouse())
110  {
111  GetGame().GetInput().ChangeGameFocus(-1, INPUT_DEVICE_MOUSE);
112  }
113 
114  if (GetParentMenu() && GetParentMenu().UseMouse())
115  {
116  GetGame().GetUIManager().ShowUICursor(true);
117  }
118  else
119  {
120  GetGame().GetUIManager().ShowUICursor(false);
121  }
122 
123  if(UseKeyboard())
124  {
125  GetGame().GetInput().ChangeGameFocus(-1, INPUT_DEVICE_KEYBOARD);
126  }
127 
128  if(UseGamepad())
129  {
130  GetGame().GetInput().ChangeGameFocus(-1, INPUT_DEVICE_GAMEPAD);
131  }
132  }
133 
134  void UIScriptedMenu()
135  {
136  m_id = MENU_UNKNOWN;
137  }
138 
139  void ~UIScriptedMenu()
140  {
141  }
142 
144  void SetID(int id) {
145  m_id = id;
146  }
147 
149  override int GetID() {
150  return m_id;
151  }
152 
153  void SetWidgetAnimAlpha( Widget widget )
154  {
155  m_AnimAlphaValue = 0.3;
156  m_AnimAlphaWidget = widget;
157  }
158 
159  //create widgets here and return layout root Widget
160  //widgets will be destroyed automatically by c++ side
161  Widget Init()
162  {
163  return NULL;
164  }
165 
166  void Cleanup()
167  {
168  }
169 
170  //after show
171  void OnShow()
172  {
173  LockControls();
174  }
175 
176  //after hide
177  void OnHide()
178  {
179  UnlockControls();
180  }
181 
183  void Update(float timeslice)
184  {
185  #ifdef PLATFORM_CONSOLE
186  if ( m_AnimAlphaWidget )
187  {
188  float anim_speed = 1.2;
189  float anim_value_max = 1.0;
190  float anim_value_min = 0.3;
191  if ( m_AnimAlphaIsIncreasing )
192  {
193  m_AnimAlphaValue += anim_speed * timeslice;
194 
195  if ( m_AnimAlphaValue >= anim_value_max )
196  {
197  m_AnimAlphaValue = anim_value_max;
198  m_AnimAlphaIsIncreasing = false;
199  }
200  }
201  else
202  {
203  m_AnimAlphaValue -= anim_speed * timeslice;
204 
205  if ( m_AnimAlphaValue <= anim_value_min )
206  {
207  m_AnimAlphaValue = anim_value_min;
208  m_AnimAlphaIsIncreasing = true;
209  }
210  }
211 
212 
213  m_AnimAlphaWidget.SetAlpha( m_AnimAlphaValue );
214  }
215  #endif
216  }
217 
218  // Moved to parent
220  //void Refresh()
221  //{
222  //}
223 
224  proto native void SetFadingPanels(Widget panel0, Widget panel1, Widget panel2, Widget panel3, Widget panel4);
225 
226  bool OnClick(Widget w, int x, int y, int button)
227  {
228  if ( UIScriptedWindow.GetActiveWindows() )
229  {
230  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
231  {
232  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnClick( w, x, y, button ) )
233  {
234  return true;
235  }
236  }
237  }
238 
239  return false;
240  }
241  bool OnModalResult(Widget w, int x, int y, int code, int result)
242  {
243  if ( UIScriptedWindow.GetActiveWindows() )
244  {
245  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
246  {
247  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnModalResult( w, x, y, code, result ) )
248  {
249  return true;
250  }
251  }
252  }
253 
254  return false;
255  }
256  bool OnDoubleClick(Widget w, int x, int y, int button)
257  {
258  if ( UIScriptedWindow.GetActiveWindows() )
259  {
260  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
261  {
262  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnDoubleClick( w, x, y, button ) )
263  {
264  return true;
265  }
266  }
267  }
268 
269  return false;
270  }
271  bool OnSelect(Widget w, int x, int y)
272  {
273  if ( UIScriptedWindow.GetActiveWindows() )
274  {
275  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
276  {
277  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnSelect( w, x, y ) )
278  {
279  return true;
280  }
281  }
282  }
283 
284  return false;
285  }
286  bool OnItemSelected(Widget w, int x, int y, int row, int column, int oldRow, int oldColumn)
287  {
288  if ( UIScriptedWindow.GetActiveWindows() )
289  {
290  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
291  {
292  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnItemSelected( w, x, y, row, column, oldRow, oldColumn ) )
293  {
294  return true;
295  }
296  }
297  }
298 
299  return false;
300  }
301  bool OnFocus(Widget w, int x, int y)
302  {
303  if ( UIScriptedWindow.GetActiveWindows() )
304  {
305  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
306  {
307  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnFocus( w, x, y ) )
308  {
309  return true;
310  }
311  }
312  }
313 
314  return false;
315  }
316  bool OnFocusLost(Widget w, int x, int y)
317  {
318  if ( UIScriptedWindow.GetActiveWindows() )
319  {
320  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
321  {
322  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnFocusLost( w, x, y ) )
323  {
324  return true;
325  }
326  }
327  }
328 
329  return false;
330  }
331  bool OnMouseEnter(Widget w, int x, int y)
332  {
333  if ( UIScriptedWindow.GetActiveWindows() )
334  {
335  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
336  {
337  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnMouseEnter( w, x, y ) )
338  {
339  return true;
340  }
341  }
342  }
343 
344  return false;
345  }
346  bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
347  {
348  if ( UIScriptedWindow.GetActiveWindows() )
349  {
350  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
351  {
352  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnMouseLeave( w, enterW, x, y ) )
353  {
354  return true;
355  }
356  }
357  }
358 
359  return false;
360  }
361  bool OnMouseButtonDown(Widget w, int x, int y, int button)
362  {
363  if ( UIScriptedWindow.GetActiveWindows() )
364  {
365  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
366  {
367  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnMouseButtonDown( w, x, y, button ) )
368  {
369  return true;
370  }
371  }
372  }
373 
374  return false;
375  }
376  bool OnMouseButtonUp(Widget w, int x, int y, int button)
377  {
378  if ( UIScriptedWindow.GetActiveWindows() )
379  {
380  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
381  {
382  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnMouseButtonUp( w, x, y, button ) )
383  {
384  return true;
385  }
386  }
387  }
388 
389  return false;
390  }
391  bool OnMouseWheel(Widget w, int x, int y, int wheel)
392  {
393  if ( UIScriptedWindow.GetActiveWindows() )
394  {
395  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
396  {
397  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnMouseWheel( w, x, y, wheel ) )
398  {
399  return true;
400  }
401  }
402  }
403 
404  return false;
405  }
406  bool OnController(Widget w, int control, int value)
407  {
408  if ( UIScriptedWindow.GetActiveWindows() )
409  {
410  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
411  {
412  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnController( w, control, value ) )
413  {
414  return true;
415  }
416  }
417  }
418 
419  return false;
420  }
421  bool OnKeyDown(Widget w, int x, int y, int key)
422  {
423  if ( UIScriptedWindow.GetActiveWindows() )
424  {
425  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
426  {
427  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnKeyDown( w, x, y, key ) )
428  {
429  return true;
430  }
431  }
432  }
433 
434  return false;
435  }
436  bool OnKeyUp(Widget w, int x, int y, int key)
437  {
438  if ( UIScriptedWindow.GetActiveWindows() )
439  {
440  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
441  {
442  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnKeyUp( w, x, y, key ) )
443  {
444  return true;
445  }
446  }
447  }
448 
449  return false;
450  }
451  bool OnKeyPress(Widget w, int x, int y, int key)
452  {
453  if ( UIScriptedWindow.GetActiveWindows() )
454  {
455  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
456  {
457  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnKeyPress( w, x, y, key ) )
458  {
459  return true;
460  }
461  }
462  }
463 
464  return false;
465  }
466  bool OnChange(Widget w, int x, int y, bool finished)
467  {
468  if ( UIScriptedWindow.GetActiveWindows() )
469  {
470  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
471  {
472  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnChange( w, x, y, finished ) )
473  {
474  return true;
475  }
476  }
477  }
478 
479  return false;
480  }
481  bool OnDrag(Widget w, int x, int y)
482  {
483  if ( UIScriptedWindow.GetActiveWindows() )
484  {
485  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
486  {
487  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnDrag( w, x, y ) )
488  {
489  return true;
490  }
491  }
492  }
493 
494  return false;
495  }
496  bool OnDragging(Widget w, int x, int y, Widget reciever)
497  {
498  if ( UIScriptedWindow.GetActiveWindows() )
499  {
500  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
501  {
502  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnDragging( w, x, y, reciever ) )
503  {
504  return true;
505  }
506  }
507  }
508 
509  return false;
510  }
511  bool OnDraggingOver(Widget w, int x, int y, Widget reciever)
512  {
513  if ( UIScriptedWindow.GetActiveWindows() )
514  {
515  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
516  {
517  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnDraggingOver( w, x, y, reciever ) )
518  {
519  return true;
520  }
521  }
522  }
523 
524  return false;
525  }
526  bool OnDrop(Widget w, int x, int y, Widget reciever)
527  {
528  if ( UIScriptedWindow.GetActiveWindows() )
529  {
530  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
531  {
532  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnDrop( w, x, y, reciever ) )
533  {
534  return true;
535  }
536  }
537  }
538 
539  return false;
540  }
541  bool OnDropReceived(Widget w, int x, int y, Widget reciever)
542  {
543  if ( UIScriptedWindow.GetActiveWindows() )
544  {
545  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
546  {
547  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnDropReceived( w, x, y, reciever ) )
548  {
549  return true;
550  }
551  }
552  }
553 
554  return false;
555  }
556 
557  bool OnEvent(EventType eventType, Widget target, int parameter0, int parameter1)
558  {
559  if ( UIScriptedWindow.GetActiveWindows() )
560  {
561  for ( int i = 0; i < UIScriptedWindow.GetActiveWindows().Count(); i++ )
562  {
563  if ( UIScriptedWindow.GetActiveWindows().GetElement( i ).OnEvent( eventType, target, parameter0, parameter1 ) )
564  {
565  return true;
566  }
567  }
568  }
569 
570  return false;
571  }
572 
574  {
575  return null;
576  }
577 
578  bool OnXboxEvent(int xboxEvent)
579  {
580  return true;
581  }
582 
583  void OnRPC(ParamsReadContext ctx){}
584  void OnRPCEx(int rpc_type, ParamsReadContext ctx){}
585 
586  void InitNoteWrite(EntityAI paper, EntityAI pen, string text = "") {}
587  void InitNoteRead(string text = "") {}
588  void InitMapItem(EntityAI item) {}
589  void LoadMapMarkers() {}
590 };
INPUT_DEVICE_GAMEPAD
const int INPUT_DEVICE_GAMEPAD
Definition: constants.c:28
GetGame
proto native CGame GetGame()
UIScriptedMenu
Definition: dayzgame.c:63
y
Icon y
Managed
TODO doc.
Definition: enscript.c:117
SetID
protected void SetID(int id)
Set the ID registered in SEffectManager.
Definition: effect.c:525
GetContextMenu
override ContextMenu GetContextMenu()
Definition: inventorymenu.c:80
Serializer
Serialization general interface. Serializer API works with:
Definition: serializer.c:55
OnRPC
void OnRPC(ParamsReadContext ctx)
Definition: displaystatus.c:216
OnEvent
override void OnEvent(EventType eventTypeId, Param params)
Handles VON-related events.
Definition: connecterrorscriptmodule.c:35
EventType
TypeID EventType
Definition: enwidgets.c:55
UIMenuPanel
Part of main menu hierarchy to create custom menus from script.
Definition: uiscriptedmenu.c:2
GetID
int GetID()
Get the ID registered in SEffectManager.
Definition: effect.c:534
UIScriptedWindow
Definition: uiscriptedwindow.c:1
INPUT_DEVICE_MOUSE
const int INPUT_DEVICE_MOUSE
Definition: constants.c:24
x
Icon x
Cleanup
void Cleanup()
Definition: ppemanager.c:70
Widget
Definition: enwidgets.c:189
MENU_UNKNOWN
const int MENU_UNKNOWN
Definition: constants.c:163
INPUT_DEVICE_KEYBOARD
const int INPUT_DEVICE_KEYBOARD
Definition: constants.c:23
EntityAI
Definition: building.c:5
ScriptedWidgetEventHandler
map: item x vector(index, width, height)
Definition: enwidgets.c:650
Count
@ Count
Definition: randomgeneratorsyncmanager.c:7