class ModsMenuDetailedEntry extends ScriptedWidgetEventHandler { protected Widget m_Root; protected Widget m_Detail; //Header protected ImageWidget m_IconSmall; protected ImageWidget m_IconCollapse; protected TextWidget m_Name; //Left Side Panel protected ImageWidget m_IconBig; protected MultilineTextWidget m_Author; protected TextWidget m_Version; protected RichTextWidget m_ActionWebsite; protected RichTextWidget m_ActionPurchase; //Description Panel protected RichTextWidget m_Description; protected ModInfo m_Data; protected ModsMenuDetailed m_ParentMenu; protected bool m_IsOpen; void ModsMenuDetailedEntry(ModInfo data, Widget parent, ModsMenuDetailed parent_menu) { m_Root = GetGame().GetWorkspace().CreateWidgets("gui/layouts/new_ui/mods_menu/mods_menu_detailed_entry.layout", parent); m_Detail = m_Root.FindAnyWidget("DetailContainer"); m_IconSmall = ImageWidget.Cast(m_Root.FindAnyWidget("IconSmall")); m_IconCollapse = ImageWidget.Cast(m_Root.FindAnyWidget("collapse_button")); m_IconCollapse.LoadImageFile( 1, "set:dayz_gui image:icon_open" ); m_Name = TextWidget.Cast(m_Root.FindAnyWidget("Name")); m_IconBig = ImageWidget.Cast(m_Root.FindAnyWidget("IconBig")); m_Author = MultilineTextWidget.Cast(m_Root.FindAnyWidget("Author")); m_Author.SetLineBreakingOverride(LinebreakOverrideMode.LINEBREAK_WESTERN); m_Version = TextWidget.Cast(m_Root.FindAnyWidget("Version")); m_ActionWebsite = RichTextWidget.Cast(m_Root.FindAnyWidget("Link")); m_ActionPurchase = RichTextWidget.Cast(m_Root.FindAnyWidget("Purchase")); #ifdef PLATFORM_PS4 m_ActionPurchase.SetText("#mod_detail_info_store_PS"); #endif #ifdef PLATFORM_XBOX m_ActionPurchase.SetText("#mod_detail_info_store_Xbox"); #endif m_Description = RichTextWidget.Cast(m_Root.FindAnyWidget("Description")); m_Data = data; m_ParentMenu = parent_menu; m_Root.SetHandler(this); LoadData(); } void ~ModsMenuDetailedEntry() { delete m_Root; } Widget GetWidget() { return m_Root; } void Select() { m_Root.SetColor( ARGBF( m_Root.GetAlpha(), 0.3, 0, 0 ) ); m_Detail.Show(true); m_IconBig.Show( true ); m_IconSmall.Show( false ); m_IconCollapse.SetImage( 1 ); m_Detail.Update(); m_Root.Update(); m_IsOpen = true; } void Deselect() { m_Root.SetColor( ARGBF( m_Root.GetAlpha(), 0.2, 0.2, 0.2 ) ); m_Detail.Show(false); m_IconBig.Show( false ); m_IconSmall.Show( true ); m_IconCollapse.SetImage( 0 ); m_Detail.Update(); m_Root.Update(); m_IsOpen = false; } void LoadData() { string picture = m_Data.GetPicture(); string logo = m_Data.GetLogoSmall(); string name = m_Data.GetName(); string description = m_Data.GetOverview(); string author = m_Data.GetAuthor(); string version = m_Data.GetVersion(); string action = m_Data.GetAction(); //Load Large Icon if (picture != "") { m_IconBig.LoadImageFile(0, picture); } else if (logo != "") { m_IconBig.LoadImageFile(0, logo); } else { m_IconBig.LoadImageFile(0, ModInfo.DEFAULT_PICTURE); } //Load Small Icon if (logo != "") { m_IconSmall.LoadImageFile(0, logo); } else if (picture != "") { m_IconSmall.LoadImageFile(0, picture); } else { m_IconSmall.LoadImageFile(0, ModInfo.DEFAULT_LOGO_SMALL); } if (name != "") { m_Name.SetText(name); } if (description != "") { m_Description.SetText(description); } else { m_Description.SetText(ModInfo.DEFAULT_OVERVIEW); } m_Description.Update(); m_Detail.Update(); if (author != "") { m_Author.Show( true ); m_Author.SetText(author); } if (version != "") { m_Version.Show( true ); m_Version.SetText(version); } #ifdef PLATFORM_WINDOWS if (action != "") { m_ActionWebsite.Show( true ); } #endif if ( m_Data.GetIsDLC() ) { bool isOwned = m_Data.GetIsOwned(); m_Root.FindAnyWidget("ModOwnership").Show( true ); m_Root.FindAnyWidget("Owned").Show( isOwned ); m_Root.FindAnyWidget("Unowned").Show( !isOwned ); m_ActionPurchase.Show( true ); m_Version.Show( false ); } } override bool OnMouseButtonUp(Widget w, int x, int y, int button) { if (w == m_IconCollapse) { m_ParentMenu.Select(m_Data, !m_IsOpen); return true; } else if (w == m_ActionWebsite) { GetGame().OpenURL(m_Data.GetAction()); } else if (w == m_ActionPurchase) { m_Data.GoToStore(); } return false; } override bool OnMouseEnter(Widget w, int x, int y) { if (w == m_ActionWebsite) m_ActionWebsite.SetBold(true); if (w == m_ActionPurchase) m_ActionPurchase.SetBold(true); if (w == m_Root) { if (m_Data.GetTooltip() != "") m_ParentMenu.PrepareTooltip(m_Data); return true; } return false; } override bool OnMouseLeave(Widget w, Widget enterW, int x, int y) { if (w == m_ActionWebsite) m_ActionWebsite.SetBold(false); if (w == m_ActionPurchase) m_ActionPurchase.SetBold( false ); if (enterW != m_Root) { m_ParentMenu.HideTooltip(); return true; } return false; } }