Dayz Explorer 1.29.162510
Loading...
Searching...
No Matches
enwidgets.c
Go to the documentation of this file.
5
6#ifdef DOXYGEN
11
13 TextWidgetTypeID,
15 MultilineTextWidgetTypeID,
17 MultilineEditBoxWidgetTypeID,
19 RichTextWidgetTypeID,
21 RenderTargetWidgetTypeID,
23 ImageWidgetTypeID,
25 ConsoleWidgetTypeID,
27 VideoWidgetTypeID,
29 RTTextureWidgetTypeID,
31 FrameWidgetTypeID,
33 EmbededWidgetTypeID,
34 ButtonWidgetTypeID,
35 CheckBoxWidgetTypeID,
36 WindowWidgetTypeID,
37 ComboBoxWidgetTypeID,
38 SimpleProgressBarWidgetTypeID,
39 ProgressBarWidgetTypeID,
40 SliderWidgetTypeID,
41 BaseListboxWidgetTypeID,
42 TextListboxWidgetTypeID,
43 GenericListboxWidgetTypeID,
44 EditBoxWidgetTypeID,
45 PasswordEditBoxWidgetTypeID,
46 WorkspaceWidgetTypeID,
47 GridSpacerWidgetTypeID,
48 WrapSpacerWidgetTypeID,
49 ScrollWidgetTypeID,
51#else
53#endif
54
56
58{
59 SOURCEALPHA, //< takes alpha from texture * alpha from color. If not set, considers texture as non-transparent and transparency is set only by color
60 BLEND, //< texture is blended with a surface base on alpha
61 ADDITIVE, //< texture is added to a surface based on alpha
62 VISIBLE, //<Widget is visible - ShowWidget(w, true)
63 NOWRAP, //< Do not do texture wrapping
64 CENTER, //< Centers TextWidgetTypeID
65 VCENTER, //< Centers TextWidgetTypeID verticaly
68 EXACTPOS, //< Uses physical resolution (g_iWidth, h_iHeight)
69 HEXACTSIZE, //< Uses physical resolution (g_iWidth)
70 VEXACTSIZE, //< Uses physical resolution (h_iHeight)
71 EXACTSIZE, //< Uses physical resolution
72 NOFILTER, //< no texture filtering (no blur)
73 RALIGN, //< Right alignment TextWidgetTypeID
74 STRETCH, //< Stretch texture to a full size
75 FLIPU, //< Flips texture in U axis
76 FLIPV, //< Flips texture in V axis
77 CUSTOMUV, //< ignores STRETCH/FLIPU/FLIPV and take custom UV set by SetWidgetUV()
85};
86
87//------------------------------------------
89{
90 WA_LEFT = 0,
91 WA_RIGHT = 1,
92 WA_CENTER = 2,
93 WA_TOP = 0,
94 WA_BOTTOM = 1,
95}
96
97//------------------------------------------
99/*enum LinebreakOverrideMode
100{
101 LINEBREAK_DEFAULT,
102 LINEBREAK_WESTERN,
103 LINEBREAK_ASIAN
104};*/
105
106//------------------------------------------
107class Widget: Managed
108{
109 proto void ~Widget();
110 proto private void Widget();
111
112 proto static string TranslateString(string stringId);
113
115 proto static void SetLV(float lv);
117 proto static void SetTextLV(float lv);
119 proto static void SetObjectLighting(float lighting);
120
121 proto native owned string GetName();
122 proto native void SetName(string name);
123 proto native owned string GetTypeName();
124 proto native WidgetType GetTypeID();
125 proto native void Show(bool show, bool immedUpdate = true);
126 proto native void Enable(bool enable);
127 proto native int GetFlags();
128 proto native int SetFlags(int flags, bool immedUpdate = true);
129 proto native int GetSort();
130 proto native void SetSort(int sort, bool immedUpdate = true);
131 proto native int ClearFlags(int flags, bool immedUpdate = true);
132 proto native bool IsControlClass();
133 proto native owned string GetStyleName();
134 proto void GetUserData(out Class data);
135 proto native void SetUserData(Class data);
136 proto native int GetUserID();
137 proto native void SetUserID(int id);
138 proto native bool IsVisible();
139 proto native bool IsVisibleHierarchy();
140 proto native void SetPos(float x, float y, bool immedUpdate = true);
141 proto native void SetSize(float w, float h, bool immedUpdate = true);
142 proto native void SetScreenPos(float x, float y, bool immedUpdate = true);
143 proto native void SetScreenSize(float w, float h, bool immedUpdate = true);
144 proto native void SetColor(int color);
145 proto native int GetColor();
146 proto native void SetRotation(float roll, float pitch, float yaw, bool immedUpdate = true);
148 proto native vector GetRotation();
149 proto native void SetAlpha(float alpha);
150 proto native float GetAlpha();
151 proto void GetPos(out float x, out float y);
152 proto void GetSize(out float width, out float height);
153 proto void GetScreenPos(out float x, out float y);
154 proto void GetScreenSize(out float width, out float height);
155
156 proto native void SetTransform(vector mat[4], bool immedUpdate = true);
157
158 proto native Widget GetParent();
159 proto native Widget GetChildren();
160 proto native Widget GetSibling();
161 proto native void AddChild(Widget child, bool immedUpdate = true);
162 proto native void RemoveChild(Widget child);
163
164 proto native volatile void Update();
165
166 proto void GetScript(out Class data);
167
168 proto native Widget FindWidget(string pathname); //find Widget by path. e.g FindWidget("widget1.widget2.widget3.mywidget")
169 proto native Widget FindAnyWidget(string pathname); //find Widget by name e.g. FindWidget("widget1")
170 proto native Widget FindAnyWidgetById(int user_id); //find Widget by userID
171
172 proto native void SetHandler(ScriptedWidgetEventHandler eventHandler);
173 proto native void Unlink(); //destroys widget and all its children
174};
175
176class WorkspaceWidget: Widget
177{
179 proto native external Widget CreateWidget(WidgetType type, int left, int top, int width, int height, WidgetFlags flags, int color, int sort, Widget parentWidget = NULL);
181 proto native external Widget CreateWidgets(string layout, Widget parentWidget = NULL, bool immedUpdate = true);
182};
183
184proto native Widget GetWidgetUnderCursor();
185proto native Widget CancelWidgetDragging();
186proto native Widget GetDragWidget();
187proto native void ReportMouse(int mousex, int mousey, Widget rootWidget);
188
189class TextWidget extends Widget
190{
191 proto native void SetTextSpacing(int horiz, int vert);
193 proto native void SetTextExactSize(int size);
194 proto native void SetTextOffset(int left, int top);
195 proto native void SetText(string text, bool immedUpdate = true);
196 proto native void SetOutline(int outlineSize, int argb = 0xFF000000);
197 proto native int GetOutlineSize();
198 proto native int GetOutlineColor();
199 proto native void SetShadow(int shadowSize, int shadowARGB = 0xFF000000, float shadowOpacity = 1, float shadowOffsetX = 0, float shadowOffsetY = 0);
200 proto native int GetShadowSize();
201 proto native int GetShadowColor();
202 proto native float GetShadowOpacity();
203 proto void GetShadowOffset(out float sx, out float sy);
204 proto native void SetItalic(bool italic);
205 proto native bool GetItalic();
206 proto native void SetBold(bool bold);
207 proto native bool GetBold();
208
210 proto void GetTextSize(out int sx, out int sy);
211 proto void SetTextFormat(string text, void param1 = NULL, void param2 = NULL, void param3 = NULL, void param4 = NULL, void param5 = NULL, void param6 = NULL, void param7 = NULL, void param8 = NULL, void param9 = NULL);
212
214 proto native float GetTextProportion();
216 proto native void SetTextProportion(float val);
217};
218
219class MultilineTextWidget extends TextWidget
220{
221 proto native float SetLineBreakingOverride(int mode);
222};
223
224class RichTextWidget extends TextWidget
225{
226 proto native float GetContentHeight();
227 proto native float GetContentOffset();
228 proto native void SetContentOffset(float offset, bool snapToLine = false);
229 proto native void ElideText(int line, float maxWidth, string str);
230 proto native int GetNumLines();
231 proto native void SetLinesVisibility(int lineFrom, int lineTo, bool visible);
232 proto native float GetLineWidth(int line);
233 proto native float SetLineBreakingOverride(int mode);
234};
235
236class RenderTargetWidget extends Widget
237{
239 proto native void SetRefresh(int period, int offset);
240 proto native void SetResolutionScale(float xscale, float ycale);
241};
242
243class RTTextureWidget extends Widget
244{
245};
246
247class ImageWidget extends Widget
248{
257 proto native bool LoadImageFile(int num, string name, bool noCache = false);
258 proto native void SetImageTexture(int image, RTTextureWidget texture);
260 proto void GetImageSize(int image, out int sx, out int sy);
261
267 proto native bool SetImage(int num);
269 proto native int GetImage();
275 proto native void SetUV(float uv[4][2]);
276
282 proto native bool LoadMaskTexture(string resource);
283
290 proto native float GetMaskProgress();
291
296 proto native void SetMaskProgress(float value);
297
304 proto native float GetMaskTransitionWidth();
305
310 proto native void SetMaskTransitionWidth(float value);
311};
312
313class MultilineEditBoxWidget extends TextWidget
314{
315 proto native int GetLinesCount();
316 proto native int GetCarriageLine();
317 proto native int GetCarriagePos();
318 proto void GetText(out string text);
319 proto native void SetLine(int line, string text);
320 proto void GetLine(int line, out string text);
321};
322
323class UIWidget extends Widget
324{
325 proto native void SetTextColor(int color);
326 proto native void SetTextOutline(int outlineSize, int argb = 0xFF000000);
327 proto native int GetTextOutlineSize();
328 proto native int GetTextOutlineColor();
329 proto native void SetTextShadow(int shadowSize, int shadowARGB = 0xFF000000, float shadowOpacity = 1.0, float shadowOffsetX = 0.0, float shadowOffsetY = 0.0);
330 proto native int GetTextShadowSize();
331 proto native int GetTextShadowColor();
332 proto native float GetTextShadowOpacity();
333 proto native float GetTextShadowOffsetX();
334 proto native float GetTextShadowOffsetY();
335 proto native void SetTextItalic(bool italic);
336 proto native bool GetTextItalic();
337 proto native void SetTextBold(bool bold);
338 proto native bool GetTextBold();
339};
340
341class CanvasWidget extends Widget
342{
343 proto native void DrawLine(float x1, float y1, float x2, float y2, float width, int color);
344 proto native void Clear();
345};
346
347class EditBoxWidget extends UIWidget
348{
349 proto string GetText();
350 proto native void SetText(string str);
351};
352
353class PasswordEditBoxWidget extends EditBoxWidget
354{
355 proto native void SetHideText(bool hide);
356};
357
358class SliderWidget extends UIWidget
359{
360 proto native void SetMinMax(float minimum, float maximum);
361 proto native float GetMin();
362 proto native float GetMax();
363 proto native float GetCurrent();
364 proto native void SetCurrent(float curr);
365 proto native float GetStep();
366 proto native void SetStep(float step);
367};
368
369class SimpleProgressBarWidget extends UIWidget
370{
371 proto native float GetMin();
372 proto native float GetMax();
373 proto native float GetCurrent();
374 proto native void SetCurrent(float curr);
375};
376
377class ProgressBarWidget extends SimpleProgressBarWidget
378{
379};
380
381class ButtonWidget extends UIWidget
382{
383 proto native bool GetState();
384
385 proto native bool SetState(bool state);
386
387 proto native void SetText(string text);
388
389 proto void GetText(out string text);
390
391 proto native void SetTextOffset(float xoffset, float yoffset);
395 proto native void SetTextHorizontalAlignment(int align);
399 proto native void SetTextVerticalAlignment(int align);
400
402 proto native float GetTextProportion();
404 proto native void SetTextProportion(float val);
405};
406
407class XComboBoxWidget extends UIWidget
408{
409 proto native int AddItem(string item);
410 proto native void ClearAll();
411 proto native void SetItem(int item, string value);
412 proto native void RemoveItem(int item);
413 proto native int GetNumItems();
414 proto native int SetCurrentItem(int n);
415 proto native int GetCurrentItem();
416};
417
418class CheckBoxWidget extends UIWidget
419{
420 proto native void SetText(string str);
421 proto native bool IsChecked();
422 proto native void SetChecked(bool checked);
423};
424
425class BaseListboxWidget extends UIWidget
426{
427 proto native void ClearItems();
428 proto native int GetNumItems();
429 proto native void SelectRow(int row);
430 proto native int GetSelectedRow();
431 proto native void RemoveRow(int row);
432 proto native void EnsureVisible(int row);
433};
434
435class SimpleListboxWidget extends BaseListboxWidget
436{
437};
438
439class TextListboxWidget extends SimpleListboxWidget
440{
442 proto native int AddItem(string text, Class userData, int column, int row = -1);
443 proto native void SetItem(int position, string text, Class userData, int column);
454 proto bool GetItemText(int row, int column, out string text);
455 proto void GetItemData(int row, int column, out Class data);
456
457 proto native void SetItemColor(int row, int column, int color );
458};
459
460class SpacerBaseWidget extends UIWidget
461{
462 proto native void AddChildAfter(Widget child,Widget after, bool immedUpdate = true);
463}
464
465class SpacerWidget extends SpacerBaseWidget
466{
467 proto native WidgetAlignment GetContentAlignmentH();
468 proto native void SetContentAlignmentH(WidgetAlignment alignment);
469 proto native WidgetAlignment GetContentAlignmentV();
470 proto native void SetContentAlignmentV(WidgetAlignment alignment);
471}
472
473class GridSpacerWidget extends SpacerWidget
474{
475}
476
477class WrapSpacerWidget extends SpacerWidget
478{
479}
480
481class ScrollWidget extends SpacerBaseWidget
482{
483 proto native float GetScrollbarWidth();
484 proto native bool IsScrollbarVisible(); //reflects native C++ side scrollbar state
485
486 proto native float GetContentWidth();
487 proto native float GetContentHeight();
488
489 proto native float GetHScrollPos();
490 proto native float GetHScrollPos01();
491 proto native bool HScrollStep(int steps);
492 proto native void HScrollToPos(float pos);
493 proto native void HScrollToPos01(float pos01);
494 proto native void HScrollToWidget(Widget child);
495
496 proto native float GetVScrollPos();
497 proto native float GetVScrollPos01();
498 proto native bool VScrollStep(int steps);
499 proto native void VScrollToPos(float pos);
500 proto native void VScrollToPos01(float pos01);
501 proto native void VScrollToWidget(Widget child);
502};
503
505enum VideoCommand
506{
507 PLAY,
508 STOP,
509 REWIND,
510 POSITION,
511 REPEAT,
512 ISPLAYING,
513 KILL
514};
515
516enum VideoState
517{
519 NONE,
521 PLAYING,
523 PAUSED,
525 STOPPED,
527 FINISHED,
528};
529
530enum VideoCallback
531{
532 ON_PLAY,
533 ON_PAUSE,
534 ON_STOP,
535 ON_END,
536 ON_LOAD,
537 ON_SEEK,
538 ON_BUFFERING_START,
539 ON_BUFFERING_END,
540 ON_ERROR,
541};
542
543class VideoWidget extends Widget
544{
547 proto native bool Load(string name, bool looping = false, int startTime = 0);
549 proto native void Unload();
550
553 proto native bool Play();
556 proto native bool Pause();
559 proto native bool Stop();
560
563 proto native bool SetTime(int time, bool preload);
565 proto native int GetTime();
567 proto native int GetTotalTime();
568
570 proto native void SetLooping(bool looping);
572 proto native bool IsLooping();
573
575 proto native bool IsPlaying();
577 proto native VideoState GetState();
578
585 proto native void DisableSubtitles(bool disable);
587 proto native bool IsSubtitlesDisabled();
588
590 proto void SetCallback(VideoCallback cb, func fn);
591
593 int Play(VideoCommand cmd)
594 {
595 // Yes, some things here do not do what the name implies
596 // And it returns 0 whether successful or not
597 // But this is what the old functionality looked like
598 // So for true backwards compat, it will be left like this
599 switch (cmd)
600 {
601 case VideoCommand.PLAY:
602 Play();
603 break;
604 case VideoCommand.STOP:
605 Pause();
606 break;
607 case VideoCommand.REWIND:
608 SetTime(0, true);
609 break;
610 case VideoCommand.POSITION:
611 return GetTime();
612 case VideoCommand.REPEAT:
613 SetLooping(true);
614 break;
615 case VideoCommand.ISPLAYING:
616 return IsPlaying();
617 case VideoCommand.KILL:
618 Unload();
619 break;
620 default:
621 return 0;
622 }
623
624 return 0;
625 }
626
628 bool LoadVideo(string name, int soundScene)
629 {
630 return Load(name);
631 }
632};
633
637proto native void SetGUIWidget(IEntity ent, int index, RTTextureWidget w);
638
639enum ControlID
640{
641 CID_NONE = 0,
642 CID_SELECT = 1,//select/use focused
643 CID_BACK,
644 CID_LEFT, //navigation
645 CID_RIGHT,
646 CID_UP,
647 CID_DOWN,
648 CID_MENU, //get to main menu
649 CID_DRAG, //probably needed only for consoles
650 CID_TABLEFT,
651 CID_TABRIGHT,
652 CID_RADIALMENU,
653 CID_COUNT
654};
655
656class ScriptedWidgetEventHandler: Managed
657{
658 bool OnClick(Widget w, int x, int y, int button);
659 bool OnModalResult(Widget w, int x, int y, int code, int result);
660 bool OnDoubleClick(Widget w, int x, int y, int button);
661 bool OnSelect(Widget w, int x, int y);
662 bool OnItemSelected(Widget w, int x, int y, int row, int column, int oldRow, int oldColumn);
663 bool OnFocus(Widget w, int x, int y);
664 bool OnFocusLost(Widget w, int x, int y);
665 bool OnMouseEnter(Widget w, int x, int y);
666 bool OnMouseLeave(Widget w, Widget enterW, int x, int y);
667 bool OnMouseWheel(Widget w, int x, int y, int wheel);
668 bool OnMouseButtonDown(Widget w, int x, int y, int button);
669 bool OnMouseButtonUp(Widget w, int x, int y, int button);
671 bool OnController(Widget w, int control, int value);
672 bool OnKeyDown(Widget w, int x, int y, int key);
673 bool OnKeyUp(Widget w, int x, int y, int key);
674 bool OnKeyPress(Widget w, int x, int y, int key);
675 bool OnChange(Widget w, int x, int y, bool finished);
676 bool OnDrag(Widget w, int x, int y);
677 bool OnDragging(Widget w, int x, int y, Widget reciever);
678 bool OnDraggingOver(Widget w, int x, int y, Widget reciever);
679 bool OnDrop(Widget w, int x, int y, Widget reciever);
680 bool OnDropReceived(Widget w, int x, int y, Widget reciever);
681 bool OnResize(Widget w, int x, int y);
682 bool OnChildAdd(Widget w, Widget child);
683 bool OnChildRemove(Widget w, Widget child);
684 bool OnUpdate(Widget w);
685 bool OnEvent(EventType eventType, Widget target, int parameter0, int parameter1);
686};
687
688//Common Widget API
689proto native void SetCursorWidget(Widget cursor);
691proto native void ShowCursorWidget(bool show);
692proto native bool LoadWidgetImageSet(string filename);
693proto native void LoadWidgetStyles(string filename);
694// sets active window (widget which owns some control inputs like buttons, listboxes etc.). Necessary for controlling the focus by keyboard/joypad. In case when setFocus is set to true, it sets focus on a first child Widget, which may receive the focus (is not disabled, set as NoFocus etc.)
695proto native bool SetActiveWindow(Widget w, bool resetFocus);
696
697// sets focus (necessary when using keyboard/joyped) to a particular widget. Widget must have some inputs like button, listbox, checkbox, combobox etc.
698proto native void SetFocus(Widget w);
699
700proto native void SetModal(Widget w);
701
702proto native Widget GetFocus();
703
704//RenderTargetWidgetTypeID
705proto native void SetWidgetWorld(RenderTargetWidget w, IEntity wrldEntity, int camera);
706
707
708#ifdef PS3
712 proto native bool IsCircleToCrossSwapped();
713#endif
714
715proto native bool ReloadTexture(string path);
716
717
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
TODO doc.
Definition enscript.c:118
proto native vector GetPos()
void Show()
Definition dayzgame.c:163
bool IsPlaying()
Returns true when the Effect is playing, false otherwise.
Definition effect.c:197
proto native float GetMin()
proto native float GetMax()
@ CENTER
proto native void SetColor(int color)
proto native void SetFlags(ShapeFlags flags)
@ VISIBLE
Definition endebug.c:136
@ ADDITIVE
Definition endebug.c:137
int[] TypeID
script representation for C++ RTTI types
Definition enscript.c:127
proto void GetScreenSize(out int x, out int y)
@ REPEAT
should efector repeate after time up? Bool R/W
Definition envisual.c:179
@ STRETCH
Float R/W.
Definition envisual.c:134
@ NONE
body is not in simulation, nor in collision world
proto string GetName()
Suite class name getter. Strictly for UI porposes!
Definition syncedvalue.c:50
proto void Play()
proto Managed GetUserData()
void Stop()
Stops all elements this effect consists of.
Definition effect.c:183
void Pause()
Pause Timer, internal counter is not restarted, so timer can continue later. Can be unpaused via Cont...
Definition tools.c:239
void OnUpdate()
Definition tools.c:349
Object GetParent()
Get parent of the Effect.
Definition effect.c:422
WidgetFlags
Definition enwidgets.c:58
TypeID WidgetType
Definition enwidgets.c:52
WA_BOTTOM
Definition enwidgets.c:4
proto native void AddChildAfter(Widget child, Widget after, bool immedUpdate=true)
WA_LEFT
Definition enwidgets.c:0
void Update()
Definition radialmenu.c:518
TypeID EventType
Definition enwidgets.c:55
WA_TOP
Definition enwidgets.c:3
WA_CENTER
Definition enwidgets.c:2
WidgetAlignment
Definition enwidgets.c:89
WA_RIGHT
Definition enwidgets.c:1
@ FLIPU
Definition enwidgets.c:75
@ CLIPCHILDREN
Definition enwidgets.c:81
@ EXACTSIZE
Definition enwidgets.c:71
@ CUSTOMUV
Definition enwidgets.c:77
@ RALIGN
Definition enwidgets.c:73
@ EXACTPOS
Definition enwidgets.c:68
@ FLIPV
Definition enwidgets.c:76
@ BLEND
Definition enwidgets.c:60
@ DRAGGABLE
Definition enwidgets.c:84
@ HEXACTSIZE
Definition enwidgets.c:69
@ IGNOREPOINTER
Definition enwidgets.c:78
@ NOFOCUS
Definition enwidgets.c:80
@ HEXACTPOS
Definition enwidgets.c:66
@ VCENTER
Definition enwidgets.c:65
@ VEXACTSIZE
Definition enwidgets.c:70
@ NOCLEAR
Definition enwidgets.c:83
@ SOURCEALPHA
Definition enwidgets.c:59
@ VEXACTPOS
Definition enwidgets.c:67
@ RENDER_ALWAYS
Definition enwidgets.c:82
@ NOFILTER
Definition enwidgets.c:72
@ DISABLED
Definition enwidgets.c:79
@ NOWRAP
Definition enwidgets.c:63
Icon x
Icon y
WarningMenuBase UIScriptedMenu GetText()
proto native void Load(string noise_name)
void SetTime(float time)
DEPRECATED.
float GetTime()
int GetSize()
void SetItem(EntityAI item)
void Clear(bool clearFile=false)
void SetState(bool state)
bool GetState()
returns one of STATE_...