49 super.HandlerAttached(w);
66 super.HandlerDeattached(w);
86 super.OnTabCreate(menuRoot, buttonsLayout,
index);
91 #ifndef WORKSHOP_DEBUG
92 m_Widgets.m_VersionComboBoxComponent0.SetVisible(
false,
false);
97 m_Widgets.m_wScenarioSection.SetVisible(
false);
114 m_Downloads = m_DynamicFooter.FindButton(
"DownloadManager");
168 if (!
GetGame().GetMenuManager().IsAnyDialogOpen())
175 target =
m_Widgets.m_wScenariosList.GetChildren();
183 super.OnMenuFocusGained();
189 super.OnLineFocus(entry);
198 super.OnLineFocusLost(entry);
208 super.OnLineMouseEnter(entry);
229 GetGame().GetInputManager().GetLastUsedInputDevice() != EInputDeviceType.MOUSE;
231 super.UpdateNavigationButtons(visible);
250 super.OnLineClick(lineComp);
267 super.OnLineDoubleClick(lineComp);
276 super.OnPlayInteraction(scenario);
282 if (!super.Play(scenario))
304 super.Join(scenario);
314 super.SetFavorite(scenario);
323 super.OnScenarioStateChanged(comp);
336 super.UpdateSidePanel();
342 m_Widgets.m_wAddonDetailsPanel.SetVisible(!lineComp);
343 m_Widgets.m_wScenarioDetailsPanel.SetVisible(lineComp != null);
359 Revision itemRevision = item.GetActiveRevision();
361 m_Widgets.m_wRepairButton.SetVisible(itemRevision && itemRevision.IsCorrupted());
431 array<MissionWorkshopItem> scenarios = {};
432 m_Item.GetScenarios(scenarios);
434 #ifdef WORKSHOP_DEBUG
435 ContentBrowserUI._print(
string.Format(
"Downloaded %1 scenarios", scenarios.Count()));
438 m_Widgets.m_wScenarioSection.SetVisible(!scenarios.IsEmpty());
441 while (
m_Widgets.m_wScenariosList.GetChildren())
447 SCR_Sorting<MissionWorkshopItem, SCR_CompareMissionName>.HeapSort(scenarios,
false);
492 if (
m_Item.GetOffline() ||
m_Item.GetWorkshopItem().GetDownloadingRevision())
510 #ifdef WORKSHOP_DEBUG
511 string strSpecificVersion =
m_Widgets.m_VersionComboBoxComponent0.GetCurrentItem();
512 revisionToDownload =
m_Item.FindRevision(strSpecificVersion);
538 bool toggled =
m_Widgets.m_VoteUpButtonComponent0.GetToggled();
545 bool toggled =
m_Widgets.m_VoteDownButtonComponent0.GetToggled();
557 m_Item.SetMyRating(voteUp);
600 if (
m_Item.GetReportedByMe())
623 if (
m_Item.GetModAuthorReportedByMe())
653 m_Widgets.m_wAddonDetailsPanel.SetVisible(
true);
654 m_Widgets.m_wScenarioDetailsPanel.SetVisible(
false);
699 if (!
m_Item.GetDetailsLoaded())
760 m_Widgets.m_ReportButtonComponent0.SetToggled(
m_Item.GetReportedByMe() ||
m_Item.GetModAuthorReportedByMe(),
false);
767 m_Widgets.m_FavoriteButtonComponent0.SetToggled(
m_Item.GetFavourite(),
false);
784 if (!
m_Widgets.m_wPrimaryActionButton.IsVisible())
790 if (!iconColorEffect)
794 if (!messageColorEffect)
815 m_Widgets.m_PrimaryActionButtonComponent0.InvokeAllEnabledEffects(
true);
817 m_Widgets.m_PrimaryActionButtonComponent1.SetImage(icon);
818 m_Widgets.m_PrimaryActionButtonComponent2.SetTitle(message);
828 bool differentEnvironment =
m_Item.GetWorkshopItem().GetBackendEnv() !=
GetGame().GetBackendApi().GetBackendEnv();
831 m_Widgets.m_DeleteButtonComponent0.SetVisible(
834 (differentEnvironment ||
m_Item.GetOffline()) &&
835 availability != SCR_ERevisionAvailability.ERA_DOWNLOAD_NOT_FINISHED
850 m_Widgets.m_wDownloadProgressBar.SetCurrent(progress);
851 m_Widgets.m_wDownloadProgressBarOverlay.SetVisible(progress > 0);
863 bool upvote, ratingSet;
864 m_Item.GetMyRating(ratingSet, upvote);
866 m_Widgets.m_VoteUpButtonComponent0.SetToggled(ratingSet && upvote,
false);
867 m_Widgets.m_VoteDownButtonComponent0.SetToggled(ratingSet && !upvote,
false);
869 bool restricted =
m_Item.GetRestricted();
876 showVotes = item.IsAuthor() || item.IsContributor();
878 m_Widgets.m_VoteUpButtonComponent2.SetTitleVisible(showVotes);
879 m_Widgets.m_VoteDownButtonComponent2.SetTitleVisible(showVotes);
883 m_Widgets.m_VoteUpButtonComponent2.SetTitle(upVotes.ToString());
884 m_Widgets.m_VoteDownButtonComponent2.SetTitle(downVotes.ToString());
898 m_Widgets.m_wDependent.SetVisible(nDependent > 0);
899 m_Widgets.m_wDependencies.SetVisible(nDependencies > 0);
909 if (nDependencies > 0)
911 if (nDependencies == 1)
947 float sizef =
m_Item.GetSizeBytes();
949 m_Widgets.m_AddonSizeComponent1.SetTitle(sizeStr);
956 string currentVersionIcon;
957 Color currentVersionIconColor;
958 string currentVersionText;
959 Color currentVersionTextColor;
960 string updateVersionText;
966 currentVersionIconColor,
968 currentVersionTextColor,
971 m_Widgets.m_wVersionUpdateHorizontalLayout.SetVisible(showUpdateText);
972 m_Widgets.m_wCurrentVersion.SetColor(currentVersionTextColor);
973 m_Widgets.m_wCurrentVersion.SetText(currentVersionText);
974 m_Widgets.m_wUpdateVersion.SetText(updateVersionText);
975 m_Widgets.m_wCurrentVersionIcon.SetColor(currentVersionIconColor);
976 m_Widgets.m_wCurrentVersionIcon.LoadImageFromSet(0,
UIConstants.ICONS_IMAGE_SET, currentVersionIcon);
988 array<BackendImage> galleryImages =
m_Item.GetGallery();
990 m_Widgets.m_wGallery.SetVisible(!galleryImages.IsEmpty() && !
m_Item.GetRestricted());
992 if (!galleryImages.IsEmpty())
993 m_Widgets.m_GalleryComponent.SetImages(galleryImages);
1002 m_Widgets.m_wBackendSource.SetVisible(
false);
1006 string gameEnv =
GetGame().GetBackendApi().GetBackendEnv();
1007 string modEnv =
m_Item.GetWorkshopItem().GetBackendEnv();
1009 bool display = (modEnv !=
"local") && (modEnv !=
"ask") && (modEnv !=
"invalid");
1010 bool envMatch = gameEnv == modEnv;
1012 m_Widgets.m_wBackendSource.SetVisible(display && !envMatch);
1016 m_Widgets.m_BackendSourceComponent1.SetTitle(modEnv);
1027 #ifdef WORKSHOP_DEBUG
1029 if (
m_Widgets.m_VersionComboBoxComponent0.GetNumItems() == 0)
1031 array<string> versions =
m_Item.GetVersions();
1032 if (!versions.IsEmpty())
1034 m_Widgets.m_VersionComboBoxComponent0.ClearAll();
1035 foreach (
string version : versions)
1037 m_Widgets.m_VersionComboBoxComponent0.AddItem(version);
1056 scenarioLine.NotifyScenarioUpdate(
m_Item.GetOffline());
1069 bool inProgress, paused;
1072 m_Item.GetDownloadState(inProgress, paused, progress, revision);
1074 if (!inProgress && !paused)
1081 GetGame().GetWorkspace().SetFocusedWidget(target);
1125 if (
m_Item.GetReportedByMe())
ArmaReforgerScripted GetGame()
InputManager GetInputManager()
SCR_DestructionSynchronizationComponentClass ScriptComponentClass int index
void CreateLines(Widget w)
static SCR_ERevisionAvailability ItemAvailability(notnull WorkshopItem item)
static SCR_AddonManager GetInstance()
Dialog which sends a request to delete user's report.
ref ScriptInvoker m_OnClose
static SCR_ContentBrowser_AddonsTooltipComponent FindComponent(notnull Widget w)
void Init(array< ref SCR_WorkshopItem > addons)
ref ScriptInvokerBase< ScriptInvoker_DownloadManagerActionError > m_OnDownloadFailed
static SCR_DownloadManager GetInstance()
ref ScriptInvoker m_OnNewDownload
ref ScriptInvokerBase< ScriptInvoker_DownloadManagerAction > m_OnDownloadComplete
static float GetItemDownloadActionsProgress(SCR_WorkshopItem item)
Returns overall download progress for all actions of a workshop item.
ref ScriptInvokerBase< ScriptInvoker_DownloadManagerAction > m_OnDownloadCanceled
static SCR_LoadingOverlayDialog Create(string text=string.Empty)
static SCR_ModDetailsAdditionalInfoDialog CreateDialog(SCR_WorkshopItem scriptedItem)
void OpenSelectReportAuthor(notnull SCR_WorkshopItem item)
ScriptInvokerVoid GetOnItemReportSuccessDialogClose()
void OpenSelectReport(notnull SCR_WorkshopItem item)
static bool CanJoin(MissionWorkshopItem mission)
static bool CanHost(MissionWorkshopItem mission)
static bool IsAuthenticated()
void LoadAddon(notnull SCR_WorkshopItem item)
static void UpdateEnableAddonToggleButton(SCR_ModularButtonComponent button, SCR_WorkshopItem item, SCR_EAddonPrimaryActionState state, bool alwaysShowWhenDownloaded=true)
static int GetDownvotes(notnull SCR_WorkshopItem item)
static void OnEnableAddonToggleButton(SCR_WorkshopItem item, SCR_ModularButtonComponent buttonComp)
static void ExecutePrimaryAction(notnull SCR_WorkshopItem item, out SCR_WorkshopDownloadSequence dlRequest, Revision revision=null)
static array< ref SCR_WorkshopItem > GetDownloadedDependentAddons(notnull SCR_WorkshopItem item)
static SCR_EAddonPrimaryActionState GetPrimaryActionState(notnull SCR_WorkshopItem item)
static bool IsDownloadingAddon(SCR_WorkshopItem item)
static void GetPrimaryActionLook(SCR_EAddonPrimaryActionState state, SCR_ERevisionAvailability availability, SCR_WorkshopItem item, out string icon, out Color iconColor, out string message, out Color messageColor)
static void OnDeleteAddonButton(SCR_WorkshopItem item)
Shows a confirmation dialog when unsubscribing an addon.
static int GetUpvotes(notnull SCR_WorkshopItem item)
static bool IsDownloadingAddonOrDependencies(SCR_WorkshopItem item)
static void GetVersionDisplayLook(SCR_WorkshopItem item, out bool showUpdateText, out string currentVersionIcon, out Color currentVersionIconColor, out string currentVersionText, out Color currentVersionTextColor, out string updateVersionText)
static string GetPrimaryActionTooltipMessage(SCR_EAddonPrimaryActionState state, SCR_WorkshopItem item)