Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_WidgetListEntrySelectionList.c
Go to the documentation of this file.
1
6{
7 [Attribute()]
9
10 [Attribute()]
12
13 [Attribute()]
14 protected string m_ElementType;
15
16 [Attribute()]
17 protected ref array<ref SCR_WidgetListEntry> m_aEntries;
18
19 protected ref SCR_ModularButtonComponent m_AddingButton;
20
23
24 //-------------------------------------------------------------------------------------------
26 override void CreateWidget(Widget parent)
27 {
28 // Create widget
29 m_EntryRoot = GetGame().GetWorkspace().CreateWidgets(m_sEntryLayout, parent);
30
31 // Show
32 m_EntryRoot.SetVisible(m_bShow);
33 if (!m_bShow)
34 return;
35
38 }
39
40 //-------------------------------------------------------------------------------------------
41 override protected void SetupHandlers()
42 {
43 if (!m_sAddingElementPath.IsEmpty())
44 {
45 Widget addingButton = GetGame().GetWorkspace().CreateWidgets(m_sAddingElementPath, m_EntryRoot);
46 m_AddingButton = SCR_ModularButtonComponent.Cast(addingButton.FindHandler(SCR_ModularButtonComponent));
47
49 m_AddingButton.m_OnClicked.Insert(OnClickAddingButton);
50 }
51 }
52
53 //-------------------------------------------------------------------------------------------
55 protected void FindElements(array<string> elementNames)
56 {
58
60 SCR_ConfigListEntry configEntry;
62
63 foreach (string name : elementNames)
64 {
65 Widget w = m_EntryRoot.FindAnyWidget(name);
66 if (!w)
67 continue;
68
69 typename type = m_ElementType.ToType();
70
71 component = w.FindHandler(type);
72 if (!component)
73 continue;
74
75 configEntry = presets.FindEntryByComponentType(type);
76 if (!configEntry)
77 continue;
78
79 entry = configEntry.GetWidgetListEntry();
80 if (!entry)
81 continue;
82
83 m_aEntries.Insert(entry);
84 }
85 }
86
87 //-------------------------------------------------------------------------------------------
88 void AddElement(notnull SCR_WidgetListEntry entry)
89 {
90 array<string> values = GetElementValues();
91
93 m_OnAddElement.Invoke(entry.m_EntryRoot);
94 }
95
96 //-------------------------------------------------------------------------------------------
97 void RemoveElementByName(string propertyName)
98 {
99 SCR_WidgetListEntry entryToRemove;
100
101 foreach (SCR_WidgetListEntry entry : m_aEntries)
102 {
103 if (entry.GetPropertyName() != propertyName)
104 continue;
105
106 entryToRemove = entry;
107 break;
108 }
109
110 if (!entryToRemove)
111 return;
112
113 Widget entryWidget = entryToRemove.GetEntryRoot();
114 Widget widgetParent = entryWidget.GetParent();
115 widgetParent.RemoveChild(entryWidget);
116
117 m_aEntries.RemoveItem(entryToRemove);
118 }
119
120 //-------------------------------------------------------------------------------------------
122 {
123 SCR_WidgetListEntry entryToRemove;
124
125 foreach (SCR_WidgetListEntry entry : m_aEntries)
126 {
127 if (entry.GetEntryRoot() != widget)
128 continue;
129
130 entryToRemove = entry;
131 break;
132 }
133
134 if (!entryToRemove)
135 return;
136
137 Widget entryWidget = entryToRemove.GetEntryRoot();
138 Widget widgetParent = entryWidget.GetParent();
139 widgetParent.RemoveChild(entryWidget);
140
141 m_aEntries.RemoveItem(entryToRemove);
142 }
143
144 //-------------------------------------------------------------------------------------------
145 void GetEntries(out array<SCR_WidgetListEntry> entries)
146 {
147 entries = {};
148 foreach (SCR_WidgetListEntry entry : m_aEntries)
149 {
150 entries.Insert(entry);
151 }
152 }
153
154 //-------------------------------------------------------------------------------------------
155 array<string> GetElementValues()
156 {
157 array<string> values = {};
158
159 foreach (SCR_WidgetListEntry entry : m_aEntries)
160 {
161 string val = entry.ValueAsString();
162 values.Insert(val);
163 }
164
165 return values;
166 }
167
168 //-------------------------------------------------------------------------------------------
169 protected void OnClickAddingButton()
170 {
172
174 m_OnClickAddingButton.Invoke();
175 }
176
177 //-------------------------------------------------------------------------------------------
185
186 //-------------------------------------------------------------------------------------------
194
195 //-------------------------------------------------------------------------------------------
197 {
198 return m_Element;
199 }
200}
ArmaReforgerScripted GetGame()
Definition game.c:1398
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
EDamageType type
ScriptInvokerBase< ScriptInvokerVoidMethod > ScriptInvokerVoid
ScriptInvokerBase< ScriptInvokerWidgetMethod > ScriptInvokerWidget
SCR_ConfigListEntry FindEntryByComponentType(typename componentType)
Configurable class for widget.
Widget GetEntryRoot()
static SCR_ConfigListEntries GetEntriesDefinitions(ResourceName presetsResourceName)
ResourceName m_sEntryLayout
void SetInteractive(bool interactive)
Can value be interacted - set handler enabled.
Widget m_EntryRoot
bool m_bInteractive
const ResourceName ENTRY_DEFINITIONS
bool m_bShow
SCR_WidgetListEntry GetElement()
override void CreateWidget(Widget parent)
Removed setting up of m_ChangeableComponent as it's not used for this case.
void FindElements(array< string > elementNames)
Search for elements with given names.
void SetupHandlers()
void RemoveElementByName(string propertyName)
ScriptInvokerWidget GetOnAddElement()
void AddElement(notnull SCR_WidgetListEntry entry)
ResourceName m_sAddingElementPath
ref ScriptInvokerWidget m_OnAddElement
array< string > GetElementValues()
void OnClickAddingButton()
string m_ElementType
void GetEntries(out array< SCR_WidgetListEntry > entries)
ref ScriptInvokerVoid m_OnClickAddingButton
ref SCR_ModularButtonComponent m_AddingButton
ScriptInvokerVoid GetOnAddingButtonElement()
ref array< ref SCR_WidgetListEntry > m_aEntries
void RemoveElementByWidget(Widget widget)
ref SCR_WidgetListEntry m_Element
SCR_FieldOfViewSettings Attribute