Dayz Explorer 1.29.162510
Loading...
Searching...
No Matches
modsmenudetailedentry.c
Go to the documentation of this file.
1class ModsMenuDetailedEntry extends ScriptedWidgetEventHandler
2{
3 protected Widget m_Root;
4 protected Widget m_Detail;
5
6 //Header
7 protected ImageWidget m_IconSmall;
8 protected ImageWidget m_IconCollapse;
9 protected TextWidget m_Name;
10
11 //Left Side Panel
12 protected ImageWidget m_IconBig;
13 protected MultilineTextWidget m_Author;
14 protected TextWidget m_Version;
15 protected RichTextWidget m_ActionWebsite;
16 protected RichTextWidget m_ActionPurchase;
17
18 //Description Panel
19 protected RichTextWidget m_Description;
20
21 protected ModInfo m_Data;
22 protected ModsMenuDetailed m_ParentMenu;
23 protected bool m_IsOpen;
24
25 void ModsMenuDetailedEntry(ModInfo data, Widget parent, ModsMenuDetailed parent_menu)
26 {
27 m_Root = g_Game.GetWorkspace().CreateWidgets("gui/layouts/new_ui/mods_menu/mods_menu_detailed_entry.layout", parent);
28 m_Detail = m_Root.FindAnyWidget("DetailContainer");
29
30 m_IconSmall = ImageWidget.Cast(m_Root.FindAnyWidget("IconSmall"));
31 m_IconCollapse = ImageWidget.Cast(m_Root.FindAnyWidget("collapse_button"));
32 m_IconCollapse.LoadImageFile( 1, "set:dayz_gui image:icon_open" );
33 m_Name = TextWidget.Cast(m_Root.FindAnyWidget("Name"));
34
35 m_IconBig = ImageWidget.Cast(m_Root.FindAnyWidget("IconBig"));
36 m_Author = MultilineTextWidget.Cast(m_Root.FindAnyWidget("Author"));
37 m_Author.SetLineBreakingOverride(LinebreakOverrideMode.LINEBREAK_WESTERN);
38
39 m_Version = TextWidget.Cast(m_Root.FindAnyWidget("Version"));
40 m_ActionWebsite = RichTextWidget.Cast(m_Root.FindAnyWidget("Link"));
41 m_ActionPurchase = RichTextWidget.Cast(m_Root.FindAnyWidget("Purchase"));
42 #ifdef PLATFORM_PS4
43 m_ActionPurchase.SetText("#mod_detail_info_store_PS");
44 #endif
45 #ifdef PLATFORM_XBOX
46 m_ActionPurchase.SetText("#mod_detail_info_store_Xbox");
47 #endif
48
49 m_Description = RichTextWidget.Cast(m_Root.FindAnyWidget("Description"));
50
51 m_Data = data;
52 m_ParentMenu = parent_menu;
53
54 m_Root.SetHandler(this);
55
56 LoadData();
57 }
58
59 void ~ModsMenuDetailedEntry()
60 {
61 delete m_Root;
62 }
63
64 Widget GetWidget()
65 {
66 return m_Root;
67 }
68
69 void Select()
70 {
71 m_Root.SetColor( ARGBF( m_Root.GetAlpha(), 0.3, 0, 0 ) );
72
73 m_Detail.Show(true);
74 m_IconBig.Show( true );
75 m_IconSmall.Show( false );
76 m_IconCollapse.SetImage( 1 );
77 m_Detail.Update();
78 m_Root.Update();
79 m_IsOpen = true;
80 }
81
82 void Deselect()
83 {
84 m_Root.SetColor( ARGBF( m_Root.GetAlpha(), 0.2, 0.2, 0.2 ) );
85
86 m_Detail.Show(false);
87 m_IconBig.Show( false );
88 m_IconSmall.Show( true );
89 m_IconCollapse.SetImage( 0 );
90 m_Detail.Update();
91 m_Root.Update();
92 m_IsOpen = false;
93 }
94
95 void LoadData()
96 {
97 string picture = m_Data.GetPicture();
98 string logo = m_Data.GetLogoSmall();
99 string name = m_Data.GetName();
100 string description = m_Data.GetOverview();
101 string author = m_Data.GetAuthor();
102 string version = m_Data.GetVersion();
103 string action = m_Data.GetAction();
104
105 //Load Large Icon
106 if (picture != "")
107 {
108 m_IconBig.LoadImageFile(0, picture);
109 }
110 else if (logo != "")
111 {
112 m_IconBig.LoadImageFile(0, logo);
113 }
114 else
115 {
116 m_IconBig.LoadImageFile(0, ModInfo.DEFAULT_PICTURE);
117 }
118
119 //Load Small Icon
120 if (logo != "")
121 {
122 m_IconSmall.LoadImageFile(0, logo);
123 }
124 else if (picture != "")
125 {
126 m_IconSmall.LoadImageFile(0, picture);
127 }
128 else
129 {
130 m_IconSmall.LoadImageFile(0, ModInfo.DEFAULT_LOGO_SMALL);
131 }
132
133 if (name != "")
134 {
135 m_Name.SetText(name);
136 }
137
138 if (description != "")
139 {
140 m_Description.SetText(description);
141 }
142 else
143 {
144 m_Description.SetText(ModInfo.DEFAULT_OVERVIEW);
145 }
146 m_Description.Update();
147 m_Detail.Update();
148
149 if (author != "")
150 {
151 m_Author.Show( true );
152 m_Author.SetText(author);
153 }
154
155 if (version != "")
156 {
157 m_Version.Show( true );
158 m_Version.SetText(version);
159 }
160
161 #ifdef PLATFORM_WINDOWS
162 if (action != "")
163 {
164 m_ActionWebsite.Show( true );
165 }
166 #endif
167
168 if ( m_Data.GetIsDLC() )
169 {
170 bool isOwned = m_Data.GetIsOwned();
171 m_Root.FindAnyWidget("ModOwnership").Show( true );
172 m_Root.FindAnyWidget("Owned").Show( isOwned );
173 m_Root.FindAnyWidget("Unowned").Show( !isOwned );
174 m_ActionPurchase.Show( true );
175 m_Version.Show( false );
176 }
177 }
178
179 override bool OnMouseButtonUp(Widget w, int x, int y, int button)
180 {
181 if (w == m_IconCollapse)
182 {
183 m_ParentMenu.Select(m_Data, !m_IsOpen);
184 return true;
185 }
186 else if (w == m_ActionWebsite)
187 {
188 g_Game.OpenURL(m_Data.GetAction());
189 }
190 else if (w == m_ActionPurchase)
191 {
192 m_Data.GoToStore();
193 }
194
195 return false;
196 }
197
198 override bool OnMouseEnter(Widget w, int x, int y)
199 {
200 if (w == m_ActionWebsite)
201 m_ActionWebsite.SetBold(true);
202
203 if (w == m_ActionPurchase)
204 m_ActionPurchase.SetBold(true);
205
206 if (w == m_Root)
207 {
208 if (m_Data.GetTooltip() != "")
209 m_ParentMenu.PrepareTooltip(m_Data);
210
211 return true;
212 }
213
214 return false;
215 }
216
217 override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
218 {
219 if (w == m_ActionWebsite)
220 m_ActionWebsite.SetBold(false);
221
222 if (w == m_ActionPurchase)
223 m_ActionPurchase.SetBold( false );
224
225 if (enterW != m_Root)
226 {
227 m_ParentMenu.HideTooltip();
228 return true;
229 }
230
231 return false;
232 }
233}
string m_Name
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
DayZGame g_Game
Definition dayzgame.c:3942
string m_Description
class purpose description
Definition enentity.c:847
Icon x
Icon y
int ARGBF(float fa, float fr, float fg, float fb)
Converts <0.0, 1.0> ARGB into color.
Definition proto.c:332
override bool OnMouseButtonUp(Widget w, int x, int y, int button)
Definition radialmenu.c:669
Widget m_Root
Definition sizetochild.c:91
override bool OnMouseEnter(Widget w, int x, int y)
override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)