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_ServerSortingComponent.c
Go to the documentation of this file.
1
//------------------------------------------------------------------------------------------------
2
class
SCR_ServerSortingComponent
:
SCR_SelectionWidgetComponent
3
{
4
[
Attribute
()]
5
ref array<string> m_aElementsFilters;
6
7
protected
SCR_SelectableButtonComponent
m_wLastFocused
;
8
9
protected
ref array<ref Widget>
m_aWidgetCells
=
new
array<ref Widget>();
10
protected
ref array<ref SCR_SelectableButtonComponent>
m_aButtons
=
new
array<ref SCR_SelectableButtonComponent>();
11
12
protected
bool
m_bIsFocused
=
false
;
13
protected
bool
m_bIsAscendent
;
14
15
ref
ScriptInvoker
m_OnFocus
=
new
ScriptInvoker
();
16
17
//------------------------------------------------------------------------------------------------
18
override
void
HandlerAttached
(
Widget
w)
19
{
20
m_wRoot
= w;
21
22
// Get widgets cells
23
AddWidgetCells
();
24
25
// Disabling buttons
26
if
(!w.IsEnabled())
27
{
28
foreach
(
SCR_SelectableButtonComponent
button :
m_aButtons
)
29
{
30
button.SetSelected(
false
);
31
}
32
33
m_iSelectedItem
= -1;
34
}
35
36
// Set initial selection
37
if
(
m_iSelectedItem
> -1)
38
{
39
if
(
m_aButtons
.Count() > 0 &&
m_iSelectedItem
<
m_aButtons
.Count())
40
{
41
//m_wLastFocused = m_aButtons[m_iSelectedItem];
42
m_aButtons
[
m_iSelectedItem
].SetSelected(
true
);
43
}
44
}
45
}
46
47
//------------------------------------------------------------------------------------------------
48
protected
void
AddWidgetCells
()
49
{
50
foreach
(
string
str : m_aElementNames)
51
{
52
Widget
w =
m_wRoot
.FindAnyWidget(str);
53
if
(!w)
54
return
;
55
56
SCR_SelectableButtonComponent
button =
SCR_SelectableButtonComponent
.Cast(w.FindHandler(
SCR_SelectableButtonComponent
));
57
if
(button)
58
{
59
button.m_OnClicked.Insert(
OnElementClicked
);
60
m_aButtons
.Insert(button);
61
}
62
}
63
}
64
65
//------------------------------------------------------------------------------------------------
66
protected
void
OnElementClicked
(
Widget
w)
67
{
68
GetGame
().GetWorkspace().SetFocusedWidget(
m_wRoot
);
69
SCR_SelectableButtonComponent
button =
SCR_SelectableButtonComponent
.Cast(w.FindHandler(
SCR_SelectableButtonComponent
));
70
71
if
(!button)
72
return
;
73
74
if
(!
m_aButtons
||
m_aButtons
.Count() < 1)
75
return
;
76
77
int
buttonId =
m_aButtons
.Find(button);
78
79
// Call focus
80
m_OnFocus
.Invoke(w);
81
82
button.
SetSelected
(
false
);
83
84
if
(buttonId >= 0)
85
SetCurrentItem
(buttonId,
true
,
true
);
86
87
for
(
int
x = 0; x <
m_aButtons
.Count(); x++)
88
{
89
m_aButtons
[x].SetSelected(
false
);
90
}
91
92
// Order ascendence - switch or default false
93
if
(
m_wLastFocused
== button)
94
m_bIsAscendent
= !
m_bIsAscendent
;
95
else
96
m_bIsAscendent
=
false
;
97
98
m_wLastFocused
= button;
99
100
if
(m_aElementsFilters && buttonId < m_aElementsFilters.Count())
101
m_OnChanged
.Invoke(m_aElementsFilters[buttonId],
m_bIsAscendent
);
102
}
103
104
//------------------------------------------------------------------------------------------------
105
Widget
GetLastFocusedButton
()
106
{
107
if
(!
m_wLastFocused
)
108
return
null;
109
return
m_wLastFocused
.m_wRoot;
110
}
111
};
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
m_wRoot
Widget m_wRoot
Definition
SCR_GameModeCleanSweep.c:25
SCR_ChangeableComponentBase::m_OnChanged
ref ScriptInvoker m_OnChanged
Definition
SCR_ChangeableComponentBase.c:34
SCR_SelectableButtonComponent
Definition
SCR_SelectableButtonComponent.c:6
SCR_SelectableButtonComponent::SetSelected
void SetSelected(bool selected, bool notify=true)
Definition
SCR_SelectableButtonComponent.c:173
SCR_SelectionWidgetComponent
Definition
SCR_SelectionWidgetComponent.c:2
SCR_SelectionWidgetComponent::m_iSelectedItem
int m_iSelectedItem
Definition
SCR_SelectionWidgetComponent.c:9
SCR_SelectionWidgetComponent::SetCurrentItem
bool SetCurrentItem(int i, bool playSound=false, bool animate=false)
Definition
SCR_SelectionWidgetComponent.c:97
SCR_ServerSortingComponent
Definition
SCR_ServerSortingComponent.c:3
SCR_ServerSortingComponent::OnElementClicked
void OnElementClicked(Widget w)
Definition
SCR_ServerSortingComponent.c:66
SCR_ServerSortingComponent::m_bIsFocused
bool m_bIsFocused
Definition
SCR_ServerSortingComponent.c:12
SCR_ServerSortingComponent::AddWidgetCells
void AddWidgetCells()
Definition
SCR_ServerSortingComponent.c:48
SCR_ServerSortingComponent::HandlerAttached
override void HandlerAttached(Widget w)
Definition
SCR_ServerSortingComponent.c:18
SCR_ServerSortingComponent::m_aButtons
ref array< ref SCR_SelectableButtonComponent > m_aButtons
Definition
SCR_ServerSortingComponent.c:10
SCR_ServerSortingComponent::m_aWidgetCells
ref array< ref Widget > m_aWidgetCells
Definition
SCR_ServerSortingComponent.c:9
SCR_ServerSortingComponent::m_wLastFocused
SCR_SelectableButtonComponent m_wLastFocused
Definition
SCR_ServerSortingComponent.c:7
SCR_ServerSortingComponent::m_bIsAscendent
bool m_bIsAscendent
Definition
SCR_ServerSortingComponent.c:13
SCR_ServerSortingComponent::m_OnFocus
ref ScriptInvoker m_OnFocus
Definition
SCR_ServerSortingComponent.c:15
SCR_ServerSortingComponent::GetLastFocusedButton
Widget GetLastFocusedButton()
Definition
SCR_ServerSortingComponent.c:105
Widget
Definition
Widget.c:13
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
ScriptInvoker
ScriptInvokerBase< func > ScriptInvoker
Definition
tools.c:134
scripts
Game
UI
Menu
ServerBrowser
SCR_ServerSortingComponent.c
Generated by
1.17.0