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_MainMenuNewsToast.c
Go to the documentation of this file.
1
class
SCR_MainMenuNewsToast
:
SCR_ScriptedWidgetComponent
2
{
3
[
Attribute
(uiwidget:
UIWidgets
.Flags, enums: ParamEnumArray.FromEnum(
SCR_EPlatform
))]
4
private
SCR_EPlatform
m_eHideOnPlatform;
5
6
protected
const
string
LINK_FALLBACK
=
"https://reforger.armaplatform.com/news"
;
7
8
protected
const
string
WIDGET_NAME_TITLE
=
"m_wTitle"
;
9
protected
const
string
WIDGET_NAME_DESC
=
"m_wDescription"
;
10
protected
const
string
WIDGET_NAME_BUTTON
=
"m_wButton"
;
11
12
protected
TextWidget
m_wTitle
;
13
protected
TextWidget
m_wDescription
;
14
protected
SCR_InputButtonComponent
m_MoreInfoButton
;
15
16
protected
string
m_sMoreInfoLink
;
17
18
protected
bool
m_bIsHovered
;
19
20
//------------------------------------------------------------------------------------------------
21
override
void
HandlerAttached
(
Widget
w)
22
{
23
super.HandlerAttached(w);
24
25
if
(
SCR_Global
.
IsEditMode
())
26
return
;
27
28
EPlatform
currentPlatform =
System
.GetPlatform();
29
w.SetVisible(
false
);
30
31
if
((m_eHideOnPlatform & (1 << currentPlatform)) == (1 << currentPlatform))
32
return
;
33
34
SCR_ServicesStatusHelper
.
RefreshPing
();
35
SCR_ServicesStatusHelper
.
GetOnCommStatusCheckFinished
().Insert(
OnCommStatusCheckFinished
);
36
}
37
38
//------------------------------------------------------------------------------------------------
39
protected
void
Init
()
40
{
41
if
(
GetGame
().GetBackendApi().GetNewsCount() < 1)
42
return
;
43
44
NewsFeedItem
newsItem =
GetGame
().GetBackendApi().GetNewsItem(0);
45
if
(!newsItem)
46
return
;
47
48
m_wRoot
.SetVisible(
true
);
49
50
m_wTitle
=
TextWidget
.Cast(
m_wRoot
.FindAnyWidget(
WIDGET_NAME_TITLE
));
51
m_wDescription
=
TextWidget
.Cast(
m_wRoot
.FindAnyWidget(
WIDGET_NAME_DESC
));
52
53
m_wTitle
.SetText(newsItem.Title());
54
m_wDescription
.SetText(newsItem.Date());
55
56
Widget
buttonWidget =
m_wRoot
.FindAnyWidget(
WIDGET_NAME_BUTTON
);
57
if
(!buttonWidget)
58
return
;
59
60
m_sMoreInfoLink
= newsItem.URL();
61
if
(
m_sMoreInfoLink
.IsEmpty())
62
m_sMoreInfoLink
=
LINK_FALLBACK
;
63
64
m_MoreInfoButton
=
SCR_InputButtonComponent
.Cast(buttonWidget.FindHandler(
SCR_InputButtonComponent
));
65
if
(
m_MoreInfoButton
)
66
m_MoreInfoButton
.m_OnActivated.Insert(
OnMoreInfo
);
67
68
if
(
GetGame
().GetGameInstallStatus() != 1.0)
69
m_wRoot
.SetVisible(0);
70
}
71
72
//------------------------------------------------------------------------------------------------
73
bool
IsHovered
()
74
{
75
return
m_bIsHovered
;
76
}
77
78
//------------------------------------------------------------------------------------------------
79
override
bool
OnMouseEnter
(
Widget
w,
int
x,
int
y)
80
{
81
m_bIsHovered
=
true
;
82
return
super.OnMouseEnter(w, x, y);
83
}
84
85
//------------------------------------------------------------------------------------------------
86
override
bool
OnMouseLeave
(
Widget
w,
Widget
enterW,
int
x,
int
y)
87
{
88
m_bIsHovered
=
false
;
89
return
super.OnMouseLeave(w, enterW, x, y);
90
}
91
92
//------------------------------------------------------------------------------------------------
93
protected
void
OnMoreInfo
()
94
{
95
float
xPos, yPos, width, height;
96
m_wRoot
.GetScreenPos(xPos, yPos);
97
m_wRoot
.GetWorkspace().GetScreenSize(width, height);
98
99
GetGame
().GetWorkspace().DPIUnscale(xPos);
100
GetGame
().GetWorkspace().DPIUnscale(yPos);
101
102
if
(xPos < 0 || yPos < 0 || xPos > width || yPos > height)
103
return
;
104
105
GetGame
().GetPlatformService().OpenBrowser(
m_sMoreInfoLink
);
106
}
107
108
//------------------------------------------------------------------------------------------------
109
protected
void
OnCommStatusCheckFinished
(
SCR_ECommStatus
status,
float
responseTime,
float
lastSuccessTime,
float
lastFailTime)
110
{
111
if
(!
m_wRoot
.IsVisible() &&
SCR_ServicesStatusHelper
.
IsBackendConnectionAvailable
())
112
Init
();
113
}
114
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
SCR_EPlatform
SCR_EPlatform
Definition
SCR_HideWidgetPlatformBased.c:2
SCR_ECommStatus
SCR_ECommStatus
This class may become obsolete on BackendAPI update.
Definition
SCR_ServicesStatusHelper.c:3
NewsFeedItem
New Feed data structure.
Definition
NewsFeedItem.c:14
SCR_Global
Definition
Functions.c:7
SCR_Global::IsEditMode
static bool IsEditMode()
Definition
Functions.c:1566
SCR_InputButtonComponent
Definition
SCR_InputButtonComponent.c:2
SCR_MainMenuNewsToast
Definition
SCR_MainMenuNewsToast.c:2
SCR_MainMenuNewsToast::m_MoreInfoButton
SCR_InputButtonComponent m_MoreInfoButton
Definition
SCR_MainMenuNewsToast.c:14
SCR_MainMenuNewsToast::m_sMoreInfoLink
string m_sMoreInfoLink
Definition
SCR_MainMenuNewsToast.c:16
SCR_MainMenuNewsToast::m_wDescription
TextWidget m_wDescription
Definition
SCR_MainMenuNewsToast.c:13
SCR_MainMenuNewsToast::OnMouseEnter
override bool OnMouseEnter(Widget w, int x, int y)
Definition
SCR_MainMenuNewsToast.c:79
SCR_MainMenuNewsToast::m_wTitle
TextWidget m_wTitle
Definition
SCR_MainMenuNewsToast.c:12
SCR_MainMenuNewsToast::WIDGET_NAME_BUTTON
const string WIDGET_NAME_BUTTON
Definition
SCR_MainMenuNewsToast.c:10
SCR_MainMenuNewsToast::WIDGET_NAME_DESC
const string WIDGET_NAME_DESC
Definition
SCR_MainMenuNewsToast.c:9
SCR_MainMenuNewsToast::Init
void Init()
Definition
SCR_MainMenuNewsToast.c:39
SCR_MainMenuNewsToast::IsHovered
bool IsHovered()
Definition
SCR_MainMenuNewsToast.c:73
SCR_MainMenuNewsToast::WIDGET_NAME_TITLE
const string WIDGET_NAME_TITLE
Definition
SCR_MainMenuNewsToast.c:8
SCR_MainMenuNewsToast::m_bIsHovered
bool m_bIsHovered
Definition
SCR_MainMenuNewsToast.c:18
SCR_MainMenuNewsToast::OnMouseLeave
override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
Definition
SCR_MainMenuNewsToast.c:86
SCR_MainMenuNewsToast::LINK_FALLBACK
const string LINK_FALLBACK
Definition
SCR_MainMenuNewsToast.c:6
SCR_MainMenuNewsToast::OnCommStatusCheckFinished
void OnCommStatusCheckFinished(SCR_ECommStatus status, float responseTime, float lastSuccessTime, float lastFailTime)
Definition
SCR_MainMenuNewsToast.c:109
SCR_MainMenuNewsToast::HandlerAttached
override void HandlerAttached(Widget w)
Definition
SCR_MainMenuNewsToast.c:21
SCR_MainMenuNewsToast::OnMoreInfo
void OnMoreInfo()
Definition
SCR_MainMenuNewsToast.c:93
SCR_ScriptedWidgetComponent
Definition
SCR_ScriptedWidgetComponent.c:8
SCR_ScriptedWidgetComponent::m_wRoot
Widget m_wRoot
Definition
SCR_ScriptedWidgetComponent.c:9
SCR_ServicesStatusHelper
Definition
SCR_ServicesStatusHelper.c:16
SCR_ServicesStatusHelper::IsBackendConnectionAvailable
static bool IsBackendConnectionAvailable()
Definition
SCR_ServicesStatusHelper.c:413
SCR_ServicesStatusHelper::GetOnCommStatusCheckFinished
static ScriptInvokerCommStatus GetOnCommStatusCheckFinished()
Definition
SCR_ServicesStatusHelper.c:422
SCR_ServicesStatusHelper::RefreshPing
static void RefreshPing()
Definition
SCR_ServicesStatusHelper.c:94
System
Definition
System.c:13
TextWidget
Definition
TextWidget.c:16
UIWidgets
Definition
attributes.c:40
Widget
Definition
Widget.c:13
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
EPlatform
EPlatform
Definition
EPlatform.c:13
scripts
Game
UI
Components
MainMenu
SCR_MainMenuNewsToast.c
Generated by
1.17.0