Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
ReportDialogUI.c
Go to the documentation of this file.
1
class
ReportDialogUI
:
DialogUI
2
{
3
protected
SCR_WorkshopItem
m_WorkshopItem
;
4
5
protected
ContentBrowserDetailsMenu
m_DetailsMenu
;
6
7
protected
SCR_ComboBoxComponent
m_ReasonCombo
;
8
protected
SCR_EditBoxComponent
m_InputField
;
9
10
protected
Widget
m_wDialogWindow
;
11
12
protected
SCR_LoadingOverlayDialog
m_Overlay
;
13
14
protected
bool
m_bAcceptInput
=
true
;
15
16
protected
ref
SCR_WorkshopItemAction
m_ReportAction
;
17
18
protected
bool
m_bShouldEnableConfirmButton
;
19
20
protected
ref
ScriptInvokerBool
m_OnReportSuccess
;
21
22
//------------------------------------------------------------------------------------------------
23
override
void
OnMenuOpen
()
24
{
25
super.OnMenuOpen();
26
Widget
root =
GetRootWidget
();
27
28
m_InputField
=
SCR_EditBoxComponent
.
GetEditBoxComponent
(
"InputField"
, root);
29
if
(
m_InputField
)
30
m_InputField
.m_OnChanged.Insert(
OnFieldChanged
);
31
32
m_ReasonCombo
=
SCR_ComboBoxComponent
.GetComboBoxComponent(
"ReasonCombo"
, root);
33
if
(
m_ReasonCombo
)
34
{
35
m_ReasonCombo
.ClearAll();
36
string
reportTypeStr =
SCR_WorkshopUiCommon
.
GetReportTypeString
(0);
37
int
i = 1;
38
while
(!reportTypeStr.IsEmpty())
39
{
40
m_ReasonCombo
.AddItem(reportTypeStr);
41
reportTypeStr =
SCR_WorkshopUiCommon
.
GetReportTypeString
(i);
42
i++;
43
}
44
m_ReasonCombo
.SetCurrentItem(0);
45
}
46
47
m_wDialogWindow
= root.FindAnyWidget(
"DialogBase0"
);
48
49
// Disable the confirm button initially because text is empty
50
m_Confirm
.SetEnabled(
false
);
51
52
if
(
m_InputField
)
53
{
54
m_InputField
.m_OnWriteModeLeave.Insert(
OnWriteModeLeaveInternal
);
55
m_InputField
.m_OnTextChange.Insert(
OnTextChange
);
56
}
57
58
SCR_InputButtonComponent
tos =
SCR_InputButtonComponent
.
GetInputButtonComponent
(
"ToS"
,
GetRootWidget
());
59
if
(tos)
60
tos.
m_OnActivated
.Insert(
OnTos
);
61
}
62
63
//------------------------------------------------------------------------------------------------
64
override
void
OnMenuShow
()
65
{
66
super.OnMenuShow();
67
if
(
m_InputField
)
68
GetGame
().GetWorkspace().SetFocusedWidget(
m_InputField
.GetRootWidget());
69
}
70
71
//------------------------------------------------------------------------------------------------
72
override
void
OnMenuUpdate
(
float
tDelta)
73
{
74
super.OnMenuUpdate(tDelta);
75
76
GetGame
().GetInputManager().ActivateContext(
"InteractableDialogContext"
);
77
}
78
79
//------------------------------------------------------------------------------------------------
80
override
protected
void
OnConfirm
()
81
{
82
if
(!
m_bAcceptInput
|| !
m_WorkshopItem
)
83
return
;
84
85
m_OnConfirm
.Invoke();
86
//super.OnConfirm(); // we don't want to close the dialog
87
88
// Fetch feedback data
89
90
int
category
;
91
int
reason
;
92
string
content
=
""
;
93
94
if
(
m_ReasonCombo
)
95
{
96
category
=
m_ReasonCombo
.GetCurrentIndex();
97
reason
=
category
;
98
}
99
100
if
(
m_InputField
)
101
content
=
m_InputField
.GetValue();
102
103
// Show loading screen
104
m_Overlay
=
SCR_LoadingOverlayDialog
.
Create
();
105
106
// Reactivating previous report
107
if
(
m_ReportAction
)
108
{
109
m_ReportAction
.Reactivate();
110
return
;
111
}
112
113
// Report
114
m_ReportAction
=
m_WorkshopItem
.Report(
reason
,
content
);
115
116
m_ReportAction
.m_OnCompleted.Insert(
OnReportSuccess
);
117
m_ReportAction
.m_OnFailed.Insert(
OnReportFailed
);
118
119
m_ReportAction
.Activate();
120
}
121
122
//------------------------------------------------------------------------------------------------
123
protected
void
OnReportSuccess
()
124
{
125
if
(!
m_WorkshopItem
)
126
return
;
127
128
if
(
m_OnReportSuccess
)
129
m_OnReportSuccess
.Invoke(
false
);
130
131
m_WorkshopItem
.DeleteLocally();
132
m_WorkshopItem
.SetSubscribed(
false
);
133
134
// Cancel download
135
SCR_DownloadManager
mgr =
SCR_DownloadManager
.
GetInstance
();
136
if
(mgr)
137
{
138
SCR_WorkshopItemActionDownload
action = mgr.
GetActionOfItem
(
m_WorkshopItem
);
139
if
(action)
140
action.Cancel();
141
}
142
143
if
(
m_Overlay
)
144
m_Overlay
.Close();
145
146
Close
();
147
}
148
149
//------------------------------------------------------------------------------------------------
150
protected
void
OnReportFailed
(
SCR_WorkshopItemAction
action)
151
{
152
if
(
m_Overlay
)
153
m_Overlay
.Close();
154
}
155
156
//------------------------------------------------------------------------------------------------
157
protected
void
SetAcceptInput
(
bool
accept)
158
{
159
m_bAcceptInput
= accept;
160
}
161
162
//------------------------------------------------------------------------------------------------
164
protected
bool
IsContentEmpty
()
165
{
166
if
(
m_InputField
)
167
{
168
string
txt =
m_InputField
.GetValue();
169
return
txt.Length() <= 0;
170
}
171
172
return
true
;
173
}
174
175
//------------------------------------------------------------------------------------------------
176
protected
void
OnWriteModeLeaveInternal
(
string
text)
177
{
178
OnTextChange
(text);
179
}
180
181
//------------------------------------------------------------------------------------------------
182
protected
void
OnTextChange
(
string
text)
183
{
184
if
(!
m_Confirm
|| !
m_InputField
)
185
return
;
186
187
m_Confirm
.SetEnabled(!
m_InputField
.GetValue().IsEmpty());
188
}
189
190
191
//------------------------------------------------------------------------------------------------
192
protected
void
OnFieldChanged
(
SCR_EditBoxComponent
comp,
string
text)
193
{
194
if
(
m_Confirm
)
195
m_Confirm
.SetEnabled(text.Length() > 0);
196
}
197
198
//------------------------------------------------------------------------------------------------
199
protected
void
OnTos
()
200
{
201
GetGame
().GetMenuManager().OpenMenu(
ChimeraMenuPreset
.PrivacyPolicyMenu);
202
//GetGame().GetPlatformService().OpenBrowser(GetGame().GetBackendApi().GetLinkItem("Link_PrivacyPolicy"));
203
}
204
205
//------------------------------------------------------------------------------------------------
206
void
SetWorkshopItem
(
SCR_WorkshopItem
item)
207
{
208
m_WorkshopItem
= item;
209
}
210
211
//------------------------------------------------------------------------------------------------
212
ScriptInvokerBool
GetOnReportSuccess
()
213
{
214
if
(!
m_OnReportSuccess
)
215
m_OnReportSuccess
=
new
ScriptInvokerBool
();
216
217
return
m_OnReportSuccess
;
218
}
219
}
content
class RestAPIHelper< JsonApiStruct T > content
ChimeraMenuPreset
ChimeraMenuPreset
Menu presets.
Definition
ChimeraMenuBase.c:4
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
GetRootWidget
Widget GetRootWidget()
Definition
SCR_ModularButtonComponent.c:189
ScriptInvokerBool
ScriptInvokerBase< ScriptInvokerBoolMethod > ScriptInvokerBool
Definition
SCR_ScriptInvokerHelper.c:41
category
params category
Definition
SCR_VehicleDamageManagerComponent.c:302
Close
proto native void Close()
Definition
SCR_WorkshopDialogs.c:77
reason
string reason
Definition
ServerBrowserMenuCallbacks.c:41
ContentBrowserDetailsMenu
Definition
ContentBrowserDetailsMenu.c:3
DialogUI
Definition
DialogUI.c:2
DialogUI::m_OnConfirm
ref ScriptInvoker m_OnConfirm
Definition
DialogUI.c:15
DialogUI::m_Confirm
SCR_InputButtonComponent m_Confirm
Definition
DialogUI.c:8
ReportDialogUI
Definition
ReportDialogUI.c:2
ReportDialogUI::SetWorkshopItem
void SetWorkshopItem(SCR_WorkshopItem item)
Definition
ReportDialogUI.c:206
ReportDialogUI::m_OnReportSuccess
ref ScriptInvokerBool m_OnReportSuccess
Definition
ReportDialogUI.c:20
ReportDialogUI::OnTextChange
void OnTextChange(string text)
Definition
ReportDialogUI.c:182
ReportDialogUI::m_Overlay
SCR_LoadingOverlayDialog m_Overlay
Definition
ReportDialogUI.c:12
ReportDialogUI::SetAcceptInput
void SetAcceptInput(bool accept)
Definition
ReportDialogUI.c:157
ReportDialogUI::OnReportFailed
void OnReportFailed(SCR_WorkshopItemAction action)
Definition
ReportDialogUI.c:150
ReportDialogUI::m_InputField
SCR_EditBoxComponent m_InputField
Definition
ReportDialogUI.c:8
ReportDialogUI::OnMenuOpen
override void OnMenuOpen()
Definition
ReportDialogUI.c:23
ReportDialogUI::m_WorkshopItem
SCR_WorkshopItem m_WorkshopItem
Definition
ReportDialogUI.c:3
ReportDialogUI::OnConfirm
void OnConfirm()
Definition
ReportDialogUI.c:80
ReportDialogUI::GetOnReportSuccess
ScriptInvokerBool GetOnReportSuccess()
Definition
ReportDialogUI.c:212
ReportDialogUI::IsContentEmpty
bool IsContentEmpty()
Returns true if content (textbox) is empty.
Definition
ReportDialogUI.c:164
ReportDialogUI::OnMenuUpdate
override void OnMenuUpdate(float tDelta)
Definition
ReportDialogUI.c:72
ReportDialogUI::m_bAcceptInput
bool m_bAcceptInput
Definition
ReportDialogUI.c:14
ReportDialogUI::m_ReasonCombo
SCR_ComboBoxComponent m_ReasonCombo
Definition
ReportDialogUI.c:7
ReportDialogUI::OnReportSuccess
void OnReportSuccess()
Definition
ReportDialogUI.c:123
ReportDialogUI::m_wDialogWindow
Widget m_wDialogWindow
Definition
ReportDialogUI.c:10
ReportDialogUI::OnFieldChanged
void OnFieldChanged(SCR_EditBoxComponent comp, string text)
Definition
ReportDialogUI.c:192
ReportDialogUI::OnWriteModeLeaveInternal
void OnWriteModeLeaveInternal(string text)
Definition
ReportDialogUI.c:176
ReportDialogUI::m_DetailsMenu
ContentBrowserDetailsMenu m_DetailsMenu
Definition
ReportDialogUI.c:5
ReportDialogUI::m_ReportAction
ref SCR_WorkshopItemAction m_ReportAction
Definition
ReportDialogUI.c:16
ReportDialogUI::OnMenuShow
override void OnMenuShow()
Definition
ReportDialogUI.c:64
ReportDialogUI::OnTos
void OnTos()
Definition
ReportDialogUI.c:199
ReportDialogUI::m_bShouldEnableConfirmButton
bool m_bShouldEnableConfirmButton
Definition
ReportDialogUI.c:18
SCR_ComboBoxComponent
Definition
SCR_ComboBoxComponent.c:2
SCR_DownloadManager
Definition
SCR_DownloadManager.c:21
SCR_DownloadManager::GetActionOfItem
SCR_WorkshopItemActionDownload GetActionOfItem(SCR_WorkshopItem item)
Return item action for given workshop item.
Definition
SCR_DownloadManager.c:155
SCR_DownloadManager::GetInstance
static SCR_DownloadManager GetInstance()
Definition
SCR_DownloadManager.c:91
SCR_EditBoxComponent
Definition
SCR_EditBoxComponent.c:9
SCR_EditBoxComponent::GetEditBoxComponent
static SCR_EditBoxComponent GetEditBoxComponent(string name, Widget parent, bool searchAllChildren=true)
Definition
SCR_EditBoxComponent.c:382
SCR_InputButtonComponent
Definition
SCR_InputButtonComponent.c:2
SCR_InputButtonComponent::m_OnActivated
ref ScriptInvoker m_OnActivated
Definition
SCR_InputButtonComponent.c:153
SCR_InputButtonComponent::GetInputButtonComponent
static SCR_InputButtonComponent GetInputButtonComponent(string name, notnull Widget parent, bool searchAllChildren=true)
Definition
SCR_InputButtonComponent.c:1212
SCR_LoadingOverlayDialog
Definition
SCR_LoadingOverlayDialog.c:6
SCR_LoadingOverlayDialog::Create
static SCR_LoadingOverlayDialog Create(string text=string.Empty)
Definition
SCR_LoadingOverlayDialog.c:21
SCR_WorkshopItemActionDownload
Definition
SCR_WorkshopItemActionDownload.c:10
SCR_WorkshopItemAction
Definition
SCR_WorkshopItemAction.c:17
SCR_WorkshopItem
Definition
SCR_WorkshopItem.c:28
SCR_WorkshopUiCommon
Definition
SCR_WorkshopUiCommon.c:6
SCR_WorkshopUiCommon::GetReportTypeString
static string GetReportTypeString(EWorkshopReportType eReportType)
Converts report type enum to stringtable entry.
Definition
SCR_WorkshopUiCommon.c:557
Widget
Definition
Widget.c:13
scripts
Game
UI
Menu
ReportDialogUI.c
Generated by
1.17.0