Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_AddonsPresetSubMenuComponent.c
Go to the documentation of this file.
1
6
7
class
SCR_AddonsPresetsSubMenuComponent
:
SCR_SubMenuBase
8
{
9
protected
ref
SCR_AddonsPresetSubMenuWidgets
m_Widgets
=
new
SCR_AddonsPresetSubMenuWidgets
();
10
11
protected
ref array<ref SCR_WorkshopAddonPreset>
m_aPresets
= {};
12
protected
int
m_iToFocusPreset
;
13
protected
ref array<SCR_AddonLinePresetComponent>
m_aPresetLines
= {};
14
15
protected
ref SCR_WorkshopAddonPreset
m_InteractivePreset
;
16
17
// New temptorary preset
18
protected
SCR_ListBoxElementComponent
m_CreatedElement
;
19
protected
SCR_WorkshopAddonPreset
m_CreatedPreset
;
20
21
// Navigation buttons
22
protected
SCR_InputButtonComponent
m_NavLoad
;
23
protected
SCR_InputButtonComponent
m_NavOverride
;
24
protected
SCR_InputButtonComponent
m_NavDelete
;
25
protected
SCR_InputButtonComponent
m_NavRename
;
26
27
//------------------------------------------------------------------------------------------------
28
override
void
OnMenuFocusGained
()
29
{
30
super.OnMenuFocusGained();
31
HandleFocus
();
32
}
33
34
//------------------------------------------------------------------------------------------------
35
override
void
HandlerAttached
(
Widget
w)
36
{
37
super.HandlerAttached(w);
38
m_Widgets
.Init(w);
39
40
// Setup create new button
41
m_Widgets
.m_ButonNewPresetComponent.m_OnClicked.Insert(
CreateNewPreset
);
42
m_Widgets
.m_ButonNewPresetComponent.m_OnFocus.Insert(
OnNewPresetFocus
);
43
m_Widgets
.m_ButonNewPresetComponent.m_OnFocusLost.Insert(
OnNewPresetFocusLost
);
44
}
45
46
//------------------------------------------------------------------------------------------------
47
override
void
HandlerDeattached
(
Widget
w)
48
{
49
super.HandlerDeattached(w);
50
GetGame
().SaveUserSettings();
51
}
52
53
//------------------------------------------------------------------------------------------------
54
override
void
OnTabShow
()
55
{
56
super.OnTabShow();
57
UpdatePresetListbox
();
58
59
if
(!
GetGame
().InPlayMode())
60
return
;
61
62
SCR_AddonManager
.
GetInstance
().
GetPresetStorage
().
GetEventOnUsedPresetChanged
().Insert(
OnUsedPresetChanged
);
63
64
//--- Ensures that there is always a focused element
65
GetGame
().GetWorkspace().SetFocusedWidget(
m_Widgets
.m_ButonNewPreset);
66
}
67
68
//------------------------------------------------------------------------------------------------
69
override
void
OnTabCreate
(
Widget
menuRoot,
ResourceName
buttonsLayout,
int
index
)
70
{
71
super.OnTabCreate(menuRoot, buttonsLayout,
index
);
72
m_NavLoad
=
CreateNavigationButton
(
"MenuSelect"
,
"#AR-PauseMenu_Load"
,
true
);
73
m_NavLoad
.m_OnActivated.Insert(
OnLoadButton
);
74
m_NavRename
=
CreateNavigationButton
(
"MenuRename"
,
"#AR-MainMenu_Rename"
,
true
);
75
m_NavRename
.m_OnActivated.Insert(
OnRenameButton
);
76
m_NavDelete
=
CreateNavigationButton
(
"MenuDelete"
,
"#AR-Workshop_ButtonDelete"
,
true
);
77
m_NavDelete
.m_OnActivated.Insert(
OnDeleteButton
);
78
m_NavOverride
=
CreateNavigationButton
(
"MenuSave"
,
"#AR-PauseMenu_Save"
,
true
);
79
m_NavOverride
.m_OnActivated.Insert(
OnOverrideButton
);
80
}
81
82
//------------------------------------------------------------------------------------------------
83
// Display list
84
//------------------------------------------------------------------------------------------------
85
//------------------------------------------------------------------------------------------------
87
protected
void
UpdatePresetListbox
()
88
{
89
if
(!
m_Widgets
|| !
m_Widgets
.m_ScrollPresetsComponent)
90
return
;
91
92
SCR_ListBoxComponent
lb =
m_Widgets
.m_ScrollPresetsComponent;
93
if
(!lb)
94
return
;
95
96
// Remove all items
97
while
(lb.
GetItemCount
() > 0)
98
lb.
RemoveItem
(0);
99
100
m_aPresetLines
.Clear();
101
102
// Read data
103
if
(!
GetGame
().InPlayMode())
104
return
;
105
106
SCR_WorkshopAddonManagerPresetStorage
presetStorage =
SCR_AddonManager
.
GetInstance
().
GetPresetStorage
();
107
m_aPresets
= presetStorage.
GetAllPresets
();
108
109
// Add items
110
for
(
int
i =
m_aPresets
.Count() - 1; i >= 0; i--)
111
{
112
SCR_WorkshopAddonPreset preset =
m_aPresets
[i];
113
114
SCR_WorkshopAddonPresetListItemData
data
=
new
SCR_WorkshopAddonPresetListItemData
(preset.GetName());
115
int
id
= lb.
AddItem
(preset.GetName(),
data
);
116
117
// Items actions
118
Widget
wLine = lb.
GetElementComponent
(
id
).GetRootWidget();
119
if
(!wLine)
120
continue
;
121
122
SCR_AddonLinePresetComponent
line =
SCR_AddonLinePresetComponent
.Cast(wLine.FindHandler(
SCR_AddonLinePresetComponent
));
123
if
(!line)
124
continue
;
125
126
line.
SetPreset
(preset);
127
line.
UpdateWidgets
();
128
129
line.
GetEventOnNameChanged
().Insert(
RenamePreset
);
130
line.
GetEventOnNameEditStart
().Insert(
OnNameEditStart
);
131
line.
GetEventOnLoad
().Insert(
LoadPreset
);
132
line.
GetEventOnOverride
().Insert(
OverridePreset
);
133
line.
GetEventOnDelete
().Insert(
DeletePreset
);
134
line.
GetEventOnFocus
().Insert(
OnLineFocus
);
135
line.
GetEventOnButtonClick
().Insert(
OnLineButtonClick
);
136
137
line.
ShowWarning
(!
HasAllPresetAddons
(line));
138
139
m_aPresetLines
.Insert(line);
140
}
141
142
GetGame
().GetCallqueue().Call(
OnUsedPresetChanged
,
SCR_AddonManager
.
GetInstance
().
GetPresetStorage
().
GetUsedPreset
(),
""
);
143
144
HandleFocus
();
145
}
146
147
//------------------------------------------------------------------------------------------------
149
protected
bool
HasAllPresetAddons
(
SCR_AddonLinePresetComponent
line)
150
{
151
SCR_WorkshopAddonPreset preset = line.
GetPreset
();
152
if
(!preset)
153
return
false
;
154
155
array<ref SCR_WorkshopAddonPresetAddonMeta> addons = preset.GetAddons();
156
157
foreach
(
SCR_WorkshopAddonPresetAddonMeta
meta : addons)
158
{
159
string
guid = meta.GetGuid();
160
SCR_WorkshopItem
item =
SCR_AddonManager
.
GetInstance
().
GetItemsMap
().Get(guid);
161
162
if
(!item || !item.
GetOffline
())
163
return
false
;
164
}
165
166
return
true
;
167
}
168
169
//------------------------------------------------------------------------------------------------
171
protected
bool
CanCreatePreset
(SCR_WorkshopAddonPreset preset)
172
{
173
if
(!preset)
174
new
SCR_WorkshopErrorDialog
(
"#AR-Workshop_EmptyAddonPresetMsg"
);
175
176
return
preset;
177
}
178
179
//------------------------------------------------------------------------------------------------
181
protected
bool
IsPresetAddonsListEmpty
(SCR_WorkshopAddonPreset preset)
182
{
183
if
(!preset.GetAddons().IsEmpty())
184
return
true
;
185
186
new
SCR_WorkshopErrorDialog
(
"#AR-Workshop_EmptyAddonPresetMsg"
);
187
return
false
;
188
}
189
190
//------------------------------------------------------------------------------------------------
192
protected
bool
IsAddonsListEmpty
(array<ref SCR_WorkshopItem> items)
193
{
194
if
(!items.IsEmpty())
195
return
true
;
196
197
new
SCR_WorkshopErrorDialog
(
"#AR-Workshop_EmptyAddonPresetMsg"
);
198
return
false
;
199
}
200
201
//------------------------------------------------------------------------------------------------
203
protected
bool
IsNameValid
(
string
name)
204
{
205
if
(name.IsEmpty())
206
{
207
new
SCR_WorkshopErrorDialog
(
"#AR-Workshop_EmptyNameAddonPresetMsg"
);
208
return
false
;
209
}
210
211
if
(!
SCR_StringHelper
.
IsEmptyOrWhiteSpace
(name))
212
return
true
;
213
214
new
SCR_WorkshopErrorDialog
(
"#AR-Workshop_EmptyNameAddonPresetMsg"
);
215
return
false
;
216
}
217
218
//------------------------------------------------------------------------------------------------
219
protected
void
OnUsedPresetChanged
(
string
name)
220
{
221
foreach
(
SCR_AddonLinePresetComponent
preset :
m_aPresetLines
)
222
{
223
preset.SetSelected(preset.GetName() == name);
224
}
225
}
226
227
//------------------------------------------------------------------------------------------------
229
protected
bool
IsNameUnique
(SCR_WorkshopAddonPreset preset,
string
name)
230
{
231
if
(
SCR_AddonManager
.
GetInstance
().
GetPresetStorage
().
PresetExists
(name))
232
{
233
SCR_WorkshopPresetConfirmDialog
dlg =
SCR_WorkshopPresetConfirmDialog
.CreateOverridePresetDialog(preset);
234
dlg.m_OnConfirm.Insert(
Callback_OnConfirmOverride
);
235
return
false
;
236
}
237
238
return
true
;
239
}
240
241
//------------------------------------------------------------------------------------------------
242
// Preset actions
243
//------------------------------------------------------------------------------------------------
244
//------------------------------------------------------------------------------------------------
246
protected
void
CreateNewPreset
()
247
{
248
int
addonsCount =
SCR_AddonManager
.
GetInstance
().
CountOfEnabledAddons
();
249
250
if
(addonsCount == 0)
251
{
252
SCR_WorkshopAddonPreset empty = null;
253
if
(!
CanCreatePreset
(empty))
254
return
;
255
}
256
257
SCR_ListBoxComponent
lb =
m_Widgets
.m_ScrollPresetsComponent;
258
if
(!lb)
259
return
;
260
261
int
id
= lb.
AddItem
(
""
);
262
m_CreatedElement
= lb.
GetElementComponent
(
id
);
263
264
// Setup line
265
Widget
wLine = lb.
GetElementComponent
(
id
).GetRootWidget();
266
if
(!wLine)
267
return
;
268
269
wLine.SetZOrder(-1);
270
m_InteractivePreset
= null;
271
272
SCR_AddonLinePresetComponent
line =
SCR_AddonLinePresetComponent
.Cast(wLine.FindHandler(
SCR_AddonLinePresetComponent
));
273
if
(!line)
274
return
;
275
276
// Display data
277
line.
ShowModCount
(addonsCount);
278
line.
ShowWarning
(
false
);
279
280
// Setup edit action
281
line.
ShowDefaultName
();
282
line.
StartEditName
();
283
284
SetupLineCreationState
(line);
285
}
286
287
//------------------------------------------------------------------------------------------------
288
protected
void
Callback_OnNameNewPreset
(
SCR_AddonLinePresetComponent
line,
string
name)
289
{
290
ClearLineCreationState
(line);
291
292
SCR_WorkshopAddonPreset preset =
SCR_AddonManager
.
GetInstance
().
CreatePresetFromEnabledAddons
(name);
293
294
// Check states
295
if
(!
CanCreatePreset
(preset) || !
IsPresetAddonsListEmpty
(preset) || !
IsNameValid
(name) || !
IsNameUnique
(preset, name))
296
return
;
297
298
// All fine, save this preset, add item to listbox
299
SCR_AddonManager
.
GetInstance
().
GetPresetStorage
().
SavePreset
(preset);
300
UpdatePresetListbox
();
301
302
m_Widgets
.m_ScrollPresetsComponent.SetFocusOnFirstItem();
303
}
304
305
//------------------------------------------------------------------------------------------------
306
protected
void
Callback_OnNewPresetFocusLost
(
SCR_AddonLinePresetComponent
line)
307
{
308
UpdatePresetListbox
();
309
ClearLineCreationState
(line);
310
}
311
312
//------------------------------------------------------------------------------------------------
313
protected
void
SetupLineCreationState
(
SCR_AddonLinePresetComponent
line)
314
{
315
m_Widgets
.m_ButonNewPresetComponent.SetEnabled(
false
);
316
SetExistingLinesEnabled
(
false
);
317
318
line.
GetEventOnNameChanged
().Insert(
Callback_OnNameNewPreset
);
319
line.
GetEventOnFocusLost
().Insert(
Callback_OnNameNewPreset
);
320
line.
GetEventOnNameEditLeave
().Insert(
Callback_OnNewPresetFocusLost
);
321
}
322
323
//------------------------------------------------------------------------------------------------
324
protected
void
ClearLineCreationState
(
SCR_AddonLinePresetComponent
line)
325
{
326
m_Widgets
.m_ButonNewPresetComponent.SetEnabled(
true
);
327
SetExistingLinesEnabled
(
true
);
328
329
line.
GetEventOnNameChanged
().Remove(
Callback_OnNameNewPreset
);
330
line.
GetEventOnFocusLost
().Remove(
Callback_OnNameNewPreset
);
331
line.
GetEventOnNameEditLeave
().Remove(
Callback_OnNewPresetFocusLost
);
332
}
333
334
//------------------------------------------------------------------------------------------------
335
protected
void
SetExistingLinesEnabled
(
bool
enabled)
336
{
337
foreach
(
SCR_AddonLinePresetComponent
line :
m_aPresetLines
)
338
{
339
line.SetEnabled(enabled);
340
}
341
}
342
343
//------------------------------------------------------------------------------------------------
345
protected
void
LoadPreset
(
SCR_AddonLinePresetComponent
line)
346
{
347
SCR_WorkshopAddonPreset preset = line.
GetPreset
();
348
if
(!preset)
349
return
;
350
351
array<ref SCR_WorkshopAddonPresetAddonMeta> addonsNotFound = {};
352
SCR_AddonManager
.
GetInstance
().
SelectPreset
(preset, addonsNotFound);
353
354
if
(addonsNotFound.IsEmpty())
355
SCR_AddonManager
.
GetInstance
().
GetPresetStorage
().
SetUsedPreset
(line.
GetPreset
().GetName());
356
}
357
358
//------------------------------------------------------------------------------------------------
360
protected
void
OverridePreset
(
SCR_AddonLinePresetComponent
line)
361
{
362
SCR_WorkshopAddonPreset preset = line.
GetPreset
();
363
if
(!preset)
364
return
;
365
366
SCR_AddonManager
addonMgr =
SCR_AddonManager
.
GetInstance
();
367
array<ref SCR_WorkshopItem> enabledAddons = addonMgr.
SelectItemsAnd
(addonMgr.
GetOfflineAddons
(),
EWorkshopItemQuery
.ENABLED |
EWorkshopItemQuery
.ONLY_WORKSHOP_ITEM);
368
369
if
(!
IsAddonsListEmpty
(enabledAddons))
370
return
;
371
372
// Create confirmation dialog
373
SCR_WorkshopPresetConfirmDialog
dlg =
SCR_WorkshopPresetConfirmDialog
.CreateOverridePresetDialog(preset);
374
dlg.m_OnConfirm.Insert(
Callback_OnConfirmOverride
);
375
SetToFocusPreset
(line,
true
);
376
}
377
378
//------------------------------------------------------------------------------------------------
379
protected
void
Callback_OnConfirmOverride
(
SCR_WorkshopPresetConfirmDialog
dlg)
380
{
381
string
prevName =
""
;
382
if
(
m_InteractivePreset
)
383
prevName =
m_InteractivePreset
.GetName();
384
385
SCR_WorkshopAddonPreset preset =
SCR_AddonManager
.
GetInstance
().
CreatePresetFromEnabledAddons
(dlg.m_Preset.GetName());
386
if
(!preset)
387
return
;
388
389
// Change name
390
if
(!
m_sNameOverride
.IsEmpty())
391
{
392
SCR_AddonManager
.
GetInstance
().
GetPresetStorage
().
DeletePreset
(
m_sNameOverride
);
393
preset.SetName(
m_sNameOverride
);
394
m_sNameOverride
=
""
;
395
}
396
397
SCR_AddonManager
.
GetInstance
().
GetPresetStorage
().
SavePreset
(preset, prevName);
398
399
// Update LB, the displayed preset names might have changed
400
UpdatePresetListbox
();
401
}
402
403
//------------------------------------------------------------------------------------------------
405
protected
void
DeletePreset
(
SCR_AddonLinePresetComponent
line)
406
{
407
SCR_WorkshopAddonPreset preset = line.
GetPreset
();
408
if
(!preset)
409
return
;
410
411
SetToFocusPreset
(line);
412
SCR_WorkshopPresetConfirmDialog
dlg =
SCR_WorkshopPresetConfirmDialog
.CreateDeletePresetDialog(preset.GetName());
413
dlg.m_OnConfirm.Insert(
Callback_OnConfirmDelete
);
414
}
415
416
//------------------------------------------------------------------------------------------------
417
protected
void
Callback_OnConfirmDelete
(
SCR_WorkshopPresetConfirmDialog
dlg)
418
{
419
SCR_AddonManager
.
GetInstance
().
GetPresetStorage
().
DeletePreset
(dlg.m_sPresetName);
420
421
// Update LB, the displayed preset names might have changed
422
UpdatePresetListbox
();
423
}
424
425
protected
string
m_sNameOverride
;
426
427
//------------------------------------------------------------------------------------------------
429
protected
void
RenamePreset
(
SCR_AddonLinePresetComponent
line,
string
name)
430
{
431
SetToFocusPreset
(line,
true
);
432
SCR_WorkshopAddonPreset preset = line.
GetPreset
();
433
if
(!preset)
434
return
;
435
436
if
(!
IsNameValid
(name))
437
return
;
438
439
// Check if preset with same name is not unique
440
SCR_WorkshopAddonManagerPresetStorage
storage =
SCR_AddonManager
.
GetInstance
().
GetPresetStorage
();
441
SCR_WorkshopAddonPreset presetCompare = storage.
GetPreset
(name);
442
443
m_sNameOverride
=
""
;
444
445
if
(presetCompare && presetCompare != preset)
446
{
447
m_sNameOverride
= name;
448
SCR_WorkshopPresetConfirmDialog
dlg =
SCR_WorkshopPresetConfirmDialog
.CreateOverridePresetDialog(preset);
449
dlg.m_OnConfirm.Insert(
Callback_OnConfirmOverride
);
450
return
;
451
}
452
453
string
prevName = preset.GetName();
454
preset.SetName(name);
455
456
storage.
SavePreset
(preset, prevName);
457
UpdatePresetListbox
();
458
}
459
460
//------------------------------------------------------------------------------------------------
461
protected
void
OnNameEditStart
(
SCR_AddonLinePresetComponent
line)
462
{
463
if
(!line)
464
return
;
465
466
m_InteractivePreset
= line.
GetPreset
();
467
}
468
469
//------------------------------------------------------------------------------------------------
470
protected
void
OnLineFocus
(
SCR_AddonLinePresetComponent
line)
471
{
472
if
(!line)
473
return
;
474
475
m_InteractivePreset
= line.
GetPreset
();
476
}
477
478
//------------------------------------------------------------------------------------------------
480
protected
void
OnLineButtonClick
(
SCR_AddonLinePresetComponent
line)
481
{
482
m_InteractivePreset
= line.
GetPreset
();
483
}
484
485
//------------------------------------------------------------------------------------------------
487
protected
SCR_AddonLinePresetComponent
FocusedPresetLine
()
488
{
489
Widget
focused =
GetGame
().GetWorkspace().GetFocusedWidget();
490
if
(!focused)
491
return
null;
492
493
return
SCR_AddonLinePresetComponent
.Cast(focused.FindHandler(
SCR_AddonLinePresetComponent
));
494
}
495
496
//------------------------------------------------------------------------------------------------
497
// Create new preset button callbacks
498
//------------------------------------------------------------------------------------------------
499
500
//------------------------------------------------------------------------------------------------
501
protected
void
OnNewPresetFocus
()
502
{
503
if
(
m_NavLoad
)
504
m_NavLoad
.SetLabel(
"#AR-Workshop_CreateNewAddonPreset"
);
505
506
if
(
m_NavOverride
)
507
m_NavOverride
.SetEnabled(
false
);
508
509
if
(
m_NavDelete
)
510
m_NavDelete
.SetEnabled(
false
);
511
512
if
(
m_NavRename
)
513
m_NavRename
.SetEnabled(
false
);
514
}
515
516
//------------------------------------------------------------------------------------------------
517
protected
void
OnNewPresetFocusLost
()
518
{
519
if
(
m_NavLoad
)
520
m_NavLoad
.SetLabel(
"#AR-PauseMenu_Load"
);
521
522
if
(
m_NavOverride
)
523
m_NavOverride
.SetEnabled(
true
);
524
525
if
(
m_NavDelete
)
526
m_NavDelete
.SetEnabled(
true
);
527
528
if
(
m_NavRename
)
529
m_NavRename
.SetEnabled(
true
);
530
}
531
532
//------------------------------------------------------------------------------------------------
533
// Nav buttons callbacks
534
//------------------------------------------------------------------------------------------------
535
536
//------------------------------------------------------------------------------------------------
537
protected
void
OnLoadButton
()
538
{
539
SCR_AddonLinePresetComponent
focusedLine =
FocusedPresetLine
();
540
541
if
(focusedLine)
542
LoadPreset
(focusedLine);
543
}
544
545
//------------------------------------------------------------------------------------------------
546
protected
void
OnOverrideButton
()
547
{
548
SCR_AddonLinePresetComponent
focusedLine =
FocusedPresetLine
();
549
550
if
(focusedLine)
551
OverridePreset
(focusedLine);
552
}
553
554
//------------------------------------------------------------------------------------------------
555
protected
void
OnRenameButton
()
556
{
557
SCR_AddonLinePresetComponent
focusedLine =
FocusedPresetLine
();
558
559
if
(focusedLine)
560
focusedLine.
StartEditName
();
561
}
562
563
//------------------------------------------------------------------------------------------------
564
protected
void
OnDeleteButton
()
565
{
566
SCR_AddonLinePresetComponent
focusedLine =
FocusedPresetLine
();
567
568
if
(focusedLine)
569
DeletePreset
(focusedLine);
570
}
571
//------------------------------------------------------------------------------------------------
572
// When doing certain actions (eg: Delete) which pops up other Dialog
573
// Register the previous preset in the list, so when coming back to it
574
// Focus it, instead of add new preset button
575
protected
void
SetToFocusPreset
(
SCR_AddonLinePresetComponent
line,
bool
maintainIndex =
false
)
576
{
577
int
modifier = -1;
578
if
(maintainIndex)
579
modifier = 0;
580
int
lineIndex =
m_aPresetLines
.Find(line);
581
if
(!lineIndex || lineIndex == 0)
582
m_iToFocusPreset
= -1;
583
else
584
m_iToFocusPreset
= lineIndex + modifier;
585
}
586
587
//------------------------------------------------------------------------------------------------
588
protected
void
HandleFocus
()
589
{
590
Widget
toFocusWidget =
m_Widgets
.m_ButonNewPreset;
591
// Try to find the focusable closer preset line
592
SCR_AddonLinePresetComponent
toFocusLine;
593
// If the first preset was deleted, but there are more preset, focus on the next first one
594
if
(
m_iToFocusPreset
< 0 &&
m_aPresetLines
.Count() > 0)
595
toFocusLine =
m_aPresetLines
.Get(0);
596
else
if
(
m_iToFocusPreset
>= 0 &&
m_aPresetLines
.Count() > 0)
597
toFocusLine =
m_aPresetLines
.Get(
m_iToFocusPreset
);
598
599
if
(toFocusLine)
600
toFocusWidget = toFocusLine.GetRootWidget();
601
602
GetGame
().GetWorkspace().SetFocusedWidget(toFocusWidget);
603
}
604
}
SCR_WorkshopPresetConfirmDialog
void SCR_WorkshopPresetConfirmDialog(SCR_WorkshopAddonPreset preset, string presetName, string dlgPreset)
Definition
AddonManagerDialogs.c:51
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
EWorkshopItemQuery
EWorkshopItemQuery
Definition
SCR_AddonManager.c:35
index
SCR_DestructionSynchronizationComponentClass ScriptComponentClass int index
Definition
SCR_DestructionSynchronizationComponent.c:17
data
Get all prefabs that have the spawner data
Definition
SCR_EntityCatalogManagerComponent.c:320
ResourceName
Definition
ResourceName.c:13
SCR_AddonLinePresetComponent
Definition
SCR_AddonLinePresetComponent.c:2
SCR_AddonLinePresetComponent::GetEventOnFocusLost
ScriptInvoker GetEventOnFocusLost()
Definition
SCR_AddonLinePresetComponent.c:133
SCR_AddonLinePresetComponent::GetEventOnNameChanged
ScriptInvoker GetEventOnNameChanged()
Definition
SCR_AddonLinePresetComponent.c:67
SCR_AddonLinePresetComponent::SetPreset
void SetPreset(SCR_WorkshopAddonPreset preset)
Definition
SCR_AddonLinePresetComponent.c:411
SCR_AddonLinePresetComponent::GetPreset
SCR_WorkshopAddonPreset GetPreset()
Definition
SCR_AddonLinePresetComponent.c:405
SCR_AddonLinePresetComponent::ShowWarning
void ShowWarning(bool show)
Definition
SCR_AddonLinePresetComponent.c:423
SCR_AddonLinePresetComponent::GetEventOnDelete
ScriptInvoker GetEventOnDelete()
Definition
SCR_AddonLinePresetComponent.c:187
SCR_AddonLinePresetComponent::GetEventOnFocus
ScriptInvoker GetEventOnFocus()
Definition
SCR_AddonLinePresetComponent.c:117
SCR_AddonLinePresetComponent::ShowDefaultName
void ShowDefaultName()
Definition
SCR_AddonLinePresetComponent.c:435
SCR_AddonLinePresetComponent::GetEventOnButtonClick
ScriptInvoker GetEventOnButtonClick()
Definition
SCR_AddonLinePresetComponent.c:51
SCR_AddonLinePresetComponent::GetEventOnNameEditStart
ScriptInvoker GetEventOnNameEditStart()
Definition
SCR_AddonLinePresetComponent.c:85
SCR_AddonLinePresetComponent::GetEventOnNameEditLeave
ScriptInvoker GetEventOnNameEditLeave()
Definition
SCR_AddonLinePresetComponent.c:101
SCR_AddonLinePresetComponent::GetEventOnOverride
ScriptInvoker GetEventOnOverride()
Definition
SCR_AddonLinePresetComponent.c:169
SCR_AddonLinePresetComponent::StartEditName
void StartEditName()
Show editbox instead of name to edit name string.
Definition
SCR_AddonLinePresetComponent.c:273
SCR_AddonLinePresetComponent::GetEventOnLoad
ScriptInvoker GetEventOnLoad()
Definition
SCR_AddonLinePresetComponent.c:151
SCR_AddonLinePresetComponent::UpdateWidgets
void UpdateWidgets()
Definition
SCR_AddonLinePresetComponent.c:417
SCR_AddonLinePresetComponent::ShowModCount
void ShowModCount(int count)
Definition
SCR_AddonLinePresetComponent.c:429
SCR_AddonManager
Definition
SCR_AddonManager.c:80
SCR_AddonManager::CountOfEnabledAddons
int CountOfEnabledAddons()
Return int count of all enabled mods.
Definition
SCR_AddonManager.c:1085
SCR_AddonManager::SelectPreset
void SelectPreset(SCR_WorkshopAddonPreset preset, notnull array< ref SCR_WorkshopAddonPresetAddonMeta > addonsNotFound)
Definition
SCR_AddonManager.c:1011
SCR_AddonManager::CreatePresetFromEnabledAddons
SCR_WorkshopAddonPreset CreatePresetFromEnabledAddons(string presetName)
Definition
SCR_AddonManager.c:1062
SCR_AddonManager::GetOfflineAddons
array< ref SCR_WorkshopItem > GetOfflineAddons()
Returns array with all offline addons.
Definition
SCR_AddonManager.c:159
SCR_AddonManager::GetItemsMap
map< string, ref SCR_WorkshopItem > GetItemsMap()
Definition
SCR_AddonManager.c:1092
SCR_AddonManager::GetPresetStorage
SCR_WorkshopAddonManagerPresetStorage GetPresetStorage()
Definition
SCR_AddonManager.c:988
SCR_AddonManager::SelectItemsAnd
static array< ref SCR_WorkshopItem > SelectItemsAnd(array< ref SCR_WorkshopItem > items, EWorkshopItemQuery query)
Definition
SCR_AddonManager.c:338
SCR_AddonManager::GetInstance
static SCR_AddonManager GetInstance()
Definition
SCR_AddonManager.c:139
SCR_AddonsPresetSubMenuWidgets
Definition
SCR_AddonsPresetSubMenuWidgets.c:5
SCR_AddonsPresetsSubMenuComponent
Definition
SCR_AddonsPresetSubMenuComponent.c:8
SCR_AddonsPresetsSubMenuComponent::Callback_OnConfirmDelete
void Callback_OnConfirmDelete(SCR_WorkshopPresetConfirmDialog dlg)
Definition
SCR_AddonsPresetSubMenuComponent.c:417
SCR_AddonsPresetsSubMenuComponent::CanCreatePreset
bool CanCreatePreset(SCR_WorkshopAddonPreset preset)
Show error if preset can't be created.
Definition
SCR_AddonsPresetSubMenuComponent.c:171
SCR_AddonsPresetsSubMenuComponent::Callback_OnConfirmOverride
void Callback_OnConfirmOverride(SCR_WorkshopPresetConfirmDialog dlg)
Definition
SCR_AddonsPresetSubMenuComponent.c:379
SCR_AddonsPresetsSubMenuComponent::m_CreatedElement
SCR_ListBoxElementComponent m_CreatedElement
Definition
SCR_AddonsPresetSubMenuComponent.c:18
SCR_AddonsPresetsSubMenuComponent::OnLineButtonClick
void OnLineButtonClick(SCR_AddonLinePresetComponent line)
Call this when any inner buttons is clicked.
Definition
SCR_AddonsPresetSubMenuComponent.c:480
SCR_AddonsPresetsSubMenuComponent::RenamePreset
void RenamePreset(SCR_AddonLinePresetComponent line, string name)
Change name of given preset.
Definition
SCR_AddonsPresetSubMenuComponent.c:429
SCR_AddonsPresetsSubMenuComponent::HandlerAttached
override void HandlerAttached(Widget w)
Definition
SCR_AddonsPresetSubMenuComponent.c:35
SCR_AddonsPresetsSubMenuComponent::IsPresetAddonsListEmpty
bool IsPresetAddonsListEmpty(SCR_WorkshopAddonPreset preset)
Show no mods enabled error is no mods is selected for preset.
Definition
SCR_AddonsPresetSubMenuComponent.c:181
SCR_AddonsPresetsSubMenuComponent::m_iToFocusPreset
int m_iToFocusPreset
Definition
SCR_AddonsPresetSubMenuComponent.c:12
SCR_AddonsPresetsSubMenuComponent::m_aPresets
ref array< ref SCR_WorkshopAddonPreset > m_aPresets
Definition
SCR_AddonsPresetSubMenuComponent.c:11
SCR_AddonsPresetsSubMenuComponent::SetupLineCreationState
void SetupLineCreationState(SCR_AddonLinePresetComponent line)
Definition
SCR_AddonsPresetSubMenuComponent.c:313
SCR_AddonsPresetsSubMenuComponent::m_NavOverride
SCR_InputButtonComponent m_NavOverride
Definition
SCR_AddonsPresetSubMenuComponent.c:23
SCR_AddonsPresetsSubMenuComponent::OverridePreset
void OverridePreset(SCR_AddonLinePresetComponent line)
Change mod setup of given preset.
Definition
SCR_AddonsPresetSubMenuComponent.c:360
SCR_AddonsPresetsSubMenuComponent::m_aPresetLines
ref array< SCR_AddonLinePresetComponent > m_aPresetLines
Definition
SCR_AddonsPresetSubMenuComponent.c:13
SCR_AddonsPresetsSubMenuComponent::m_NavDelete
SCR_InputButtonComponent m_NavDelete
Definition
SCR_AddonsPresetSubMenuComponent.c:24
SCR_AddonsPresetsSubMenuComponent::OnNewPresetFocusLost
void OnNewPresetFocusLost()
Definition
SCR_AddonsPresetSubMenuComponent.c:517
SCR_AddonsPresetsSubMenuComponent::m_CreatedPreset
SCR_WorkshopAddonPreset m_CreatedPreset
Definition
SCR_AddonsPresetSubMenuComponent.c:19
SCR_AddonsPresetsSubMenuComponent::CreateNewPreset
void CreateNewPreset()
Create new preset with curent mods.
Definition
SCR_AddonsPresetSubMenuComponent.c:246
SCR_AddonsPresetsSubMenuComponent::OnDeleteButton
void OnDeleteButton()
Definition
SCR_AddonsPresetSubMenuComponent.c:564
SCR_AddonsPresetsSubMenuComponent::OnOverrideButton
void OnOverrideButton()
Definition
SCR_AddonsPresetSubMenuComponent.c:546
SCR_AddonsPresetsSubMenuComponent::HandlerDeattached
override void HandlerDeattached(Widget w)
Definition
SCR_AddonsPresetSubMenuComponent.c:47
SCR_AddonsPresetsSubMenuComponent::OnUsedPresetChanged
void OnUsedPresetChanged(string name)
Definition
SCR_AddonsPresetSubMenuComponent.c:219
SCR_AddonsPresetsSubMenuComponent::FocusedPresetLine
SCR_AddonLinePresetComponent FocusedPresetLine()
Return addon preset line component of currently focused widget if has any.
Definition
SCR_AddonsPresetSubMenuComponent.c:487
SCR_AddonsPresetsSubMenuComponent::m_sNameOverride
string m_sNameOverride
Definition
SCR_AddonsPresetSubMenuComponent.c:425
SCR_AddonsPresetsSubMenuComponent::HasAllPresetAddons
bool HasAllPresetAddons(SCR_AddonLinePresetComponent line)
Return true if all mods are available offline.
Definition
SCR_AddonsPresetSubMenuComponent.c:149
SCR_AddonsPresetsSubMenuComponent::DeletePreset
void DeletePreset(SCR_AddonLinePresetComponent line)
Delete given preset.
Definition
SCR_AddonsPresetSubMenuComponent.c:405
SCR_AddonsPresetsSubMenuComponent::OnLoadButton
void OnLoadButton()
Definition
SCR_AddonsPresetSubMenuComponent.c:537
SCR_AddonsPresetsSubMenuComponent::IsAddonsListEmpty
bool IsAddonsListEmpty(array< ref SCR_WorkshopItem > items)
Show no mods enabled error is no mods is selected for preset.
Definition
SCR_AddonsPresetSubMenuComponent.c:192
SCR_AddonsPresetsSubMenuComponent::OnLineFocus
void OnLineFocus(SCR_AddonLinePresetComponent line)
Definition
SCR_AddonsPresetSubMenuComponent.c:470
SCR_AddonsPresetsSubMenuComponent::m_NavLoad
SCR_InputButtonComponent m_NavLoad
Definition
SCR_AddonsPresetSubMenuComponent.c:22
SCR_AddonsPresetsSubMenuComponent::OnTabCreate
override void OnTabCreate(Widget menuRoot, ResourceName buttonsLayout, int index)
Definition
SCR_AddonsPresetSubMenuComponent.c:69
SCR_AddonsPresetsSubMenuComponent::Callback_OnNameNewPreset
void Callback_OnNameNewPreset(SCR_AddonLinePresetComponent line, string name)
Definition
SCR_AddonsPresetSubMenuComponent.c:288
SCR_AddonsPresetsSubMenuComponent::ClearLineCreationState
void ClearLineCreationState(SCR_AddonLinePresetComponent line)
Definition
SCR_AddonsPresetSubMenuComponent.c:324
SCR_AddonsPresetsSubMenuComponent::SetToFocusPreset
void SetToFocusPreset(SCR_AddonLinePresetComponent line, bool maintainIndex=false)
Definition
SCR_AddonsPresetSubMenuComponent.c:575
SCR_AddonsPresetsSubMenuComponent::IsNameUnique
bool IsNameUnique(SCR_WorkshopAddonPreset preset, string name)
Show override dialog if name is reapeted in addon preset list.
Definition
SCR_AddonsPresetSubMenuComponent.c:229
SCR_AddonsPresetsSubMenuComponent::m_NavRename
SCR_InputButtonComponent m_NavRename
Definition
SCR_AddonsPresetSubMenuComponent.c:25
SCR_AddonsPresetsSubMenuComponent::OnMenuFocusGained
override void OnMenuFocusGained()
Definition
SCR_AddonsPresetSubMenuComponent.c:28
SCR_AddonsPresetsSubMenuComponent::OnRenameButton
void OnRenameButton()
Definition
SCR_AddonsPresetSubMenuComponent.c:555
SCR_AddonsPresetsSubMenuComponent::OnNewPresetFocus
void OnNewPresetFocus()
Definition
SCR_AddonsPresetSubMenuComponent.c:501
SCR_AddonsPresetsSubMenuComponent::SetExistingLinesEnabled
void SetExistingLinesEnabled(bool enabled)
Definition
SCR_AddonsPresetSubMenuComponent.c:335
SCR_AddonsPresetsSubMenuComponent::OnNameEditStart
void OnNameEditStart(SCR_AddonLinePresetComponent line)
Definition
SCR_AddonsPresetSubMenuComponent.c:461
SCR_AddonsPresetsSubMenuComponent::LoadPreset
void LoadPreset(SCR_AddonLinePresetComponent line)
Activate mods of given preset.
Definition
SCR_AddonsPresetSubMenuComponent.c:345
SCR_AddonsPresetsSubMenuComponent::m_InteractivePreset
ref SCR_WorkshopAddonPreset m_InteractivePreset
Definition
SCR_AddonsPresetSubMenuComponent.c:15
SCR_AddonsPresetsSubMenuComponent::Callback_OnNewPresetFocusLost
void Callback_OnNewPresetFocusLost(SCR_AddonLinePresetComponent line)
Definition
SCR_AddonsPresetSubMenuComponent.c:306
SCR_AddonsPresetsSubMenuComponent::IsNameValid
bool IsNameValid(string name)
Show invalid name error dialog.
Definition
SCR_AddonsPresetSubMenuComponent.c:203
SCR_AddonsPresetsSubMenuComponent::UpdatePresetListbox
void UpdatePresetListbox()
Display list of current addon presets.
Definition
SCR_AddonsPresetSubMenuComponent.c:87
SCR_AddonsPresetsSubMenuComponent::HandleFocus
void HandleFocus()
Definition
SCR_AddonsPresetSubMenuComponent.c:588
SCR_AddonsPresetsSubMenuComponent::m_Widgets
ref SCR_AddonsPresetSubMenuWidgets m_Widgets
Definition
SCR_AddonsPresetSubMenuComponent.c:9
SCR_AddonsPresetsSubMenuComponent::OnTabShow
override void OnTabShow()
Definition
SCR_AddonsPresetSubMenuComponent.c:54
SCR_InputButtonComponent
Definition
SCR_InputButtonComponent.c:2
SCR_ListBoxComponent
Definition
SCR_ListBoxComponent.c:5
SCR_ListBoxComponent::GetItemCount
int GetItemCount()
Definition
SCR_ListBoxComponent.c:99
SCR_ListBoxComponent::GetElementComponent
SCR_ListBoxElementComponent GetElementComponent(int item)
Definition
SCR_ListBoxComponent.c:155
SCR_ListBoxComponent::RemoveItem
void RemoveItem(int item)
Definition
SCR_ListBoxComponent.c:75
SCR_ListBoxComponent::AddItem
int AddItem(string item, Managed data=null, ResourceName itemLayout=string.Empty)
Definition
SCR_ListBoxComponent.c:40
SCR_ListBoxElementComponent
Element of a listbox.
Definition
SCR_ListBoxElementComponent.c:3
SCR_StringHelper
Definition
SCR_StringHelper.c:2
SCR_StringHelper::IsEmptyOrWhiteSpace
static bool IsEmptyOrWhiteSpace(string input)
Definition
SCR_StringHelper.c:594
SCR_SubMenuBase
Definition
SCR_SubMenuBase.c:7
SCR_SubMenuBase::CreateNavigationButton
SCR_InputButtonComponent CreateNavigationButton(string actionName, string label, bool rightFooter=false, bool show=true)
Definition
SCR_SubMenuBase.c:151
SCR_WorkshopAddonManagerPresetStorage
Definition
SCR_WorkshopAddonManagerStorage.c:111
SCR_WorkshopAddonManagerPresetStorage::SavePreset
void SavePreset(notnull SCR_WorkshopAddonPreset preset, string prevName="")
Definition
SCR_WorkshopAddonManagerStorage.c:173
SCR_WorkshopAddonManagerPresetStorage::PresetExists
bool PresetExists(string name)
Definition
SCR_WorkshopAddonManagerStorage.c:250
SCR_WorkshopAddonManagerPresetStorage::GetEventOnUsedPresetChanged
ScriptInvoker GetEventOnUsedPresetChanged()
Definition
SCR_WorkshopAddonManagerStorage.c:137
SCR_WorkshopAddonManagerPresetStorage::GetUsedPreset
string GetUsedPreset()
Definition
SCR_WorkshopAddonManagerStorage.c:228
SCR_WorkshopAddonManagerPresetStorage::GetAllPresets
array< ref SCR_WorkshopAddonPreset > GetAllPresets()
Definition
SCR_WorkshopAddonManagerStorage.c:159
SCR_WorkshopAddonManagerPresetStorage::DeletePreset
void DeletePreset(string name)
Definition
SCR_WorkshopAddonManagerStorage.c:234
SCR_WorkshopAddonManagerPresetStorage::SetUsedPreset
void SetUsedPreset(string name)
Definition
SCR_WorkshopAddonManagerStorage.c:213
SCR_WorkshopAddonManagerPresetStorage::GetPreset
SCR_WorkshopAddonPreset GetPreset(string name)
Definition
SCR_WorkshopAddonManagerStorage.c:257
SCR_WorkshopAddonPresetAddonMeta
Meta data of one addon.
Definition
SCR_WorkshopAddonManagerStorage.c:4
SCR_WorkshopAddonPresetListItemData
Definition
SCR_WorkshopAddonPresetListItemData.c:3
SCR_WorkshopErrorDialog
Definition
AddonManagerDialogs.c:31
SCR_WorkshopItem
Definition
SCR_WorkshopItem.c:28
SCR_WorkshopItem::GetOffline
bool GetOffline()
True when we have the item on our local storage.
Definition
SCR_WorkshopItem.c:658
Widget
Definition
Widget.c:13
scripts
Game
UI
Menu
ContentBrowser
AddonManager
AddonsTools
AddonsPresets
SCR_AddonsPresetSubMenuComponent.c
Generated by
1.17.0