Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
ReportDialogUI.c
Go to the documentation of this file.
2{
4
6
9
11
13
14 protected bool m_bAcceptInput = true;
15
17
19
21
22 //------------------------------------------------------------------------------------------------
23 override void OnMenuOpen()
24 {
25 super.OnMenuOpen();
26 Widget root = GetRootWidget();
27
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);
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
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 {
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();
98 }
99
100 if (m_InputField)
101 content = m_InputField.GetValue();
102
103 // Show loading screen
105
106 // Reactivating previous report
107 if (m_ReportAction)
108 {
109 m_ReportAction.Reactivate();
110 return;
111 }
112
113 // Report
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
129 m_OnReportSuccess.Invoke(false);
130
131 m_WorkshopItem.DeleteLocally();
132 m_WorkshopItem.SetSubscribed(false);
133
134 // Cancel download
136 if (mgr)
137 {
139 if (action)
140 action.Cancel();
141 }
142
143 if (m_Overlay)
144 m_Overlay.Close();
145
146 Close();
147 }
148
149 //------------------------------------------------------------------------------------------------
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 //------------------------------------------------------------------------------------------------
207 {
208 m_WorkshopItem = item;
209 }
210
211 //------------------------------------------------------------------------------------------------
219}
class RestAPIHelper< JsonApiStruct T > content
ChimeraMenuPreset
Menu presets.
ArmaReforgerScripted GetGame()
Definition game.c:1398
Widget GetRootWidget()
ScriptInvokerBase< ScriptInvokerBoolMethod > ScriptInvokerBool
proto native void Close()
ref ScriptInvoker m_OnConfirm
Definition DialogUI.c:15
SCR_InputButtonComponent m_Confirm
Definition DialogUI.c:8
void SetWorkshopItem(SCR_WorkshopItem item)
ref ScriptInvokerBool m_OnReportSuccess
void OnTextChange(string text)
SCR_LoadingOverlayDialog m_Overlay
void SetAcceptInput(bool accept)
void OnReportFailed(SCR_WorkshopItemAction action)
SCR_EditBoxComponent m_InputField
override void OnMenuOpen()
SCR_WorkshopItem m_WorkshopItem
ScriptInvokerBool GetOnReportSuccess()
bool IsContentEmpty()
Returns true if content (textbox) is empty.
override void OnMenuUpdate(float tDelta)
SCR_ComboBoxComponent m_ReasonCombo
void OnFieldChanged(SCR_EditBoxComponent comp, string text)
void OnWriteModeLeaveInternal(string text)
ContentBrowserDetailsMenu m_DetailsMenu
ref SCR_WorkshopItemAction m_ReportAction
override void OnMenuShow()
bool m_bShouldEnableConfirmButton
SCR_WorkshopItemActionDownload GetActionOfItem(SCR_WorkshopItem item)
Return item action for given workshop item.
static SCR_DownloadManager GetInstance()
static SCR_EditBoxComponent GetEditBoxComponent(string name, Widget parent, bool searchAllChildren=true)
static SCR_InputButtonComponent GetInputButtonComponent(string name, notnull Widget parent, bool searchAllChildren=true)
static SCR_LoadingOverlayDialog Create(string text=string.Empty)
static string GetReportTypeString(EWorkshopReportType eReportType)
Converts report type enum to stringtable entry.