public SelectExternalContentTypeDialog(string title, Action <ExternalContentType> selectionHandler) : base(title, from v in EnumUtils.GetEnumValues(typeof(ExternalContentType)) where ExternalContentManager.IsEntryTypeDownloadSupported((ExternalContentType) v) select v, 64f, delegate(object item) { ExternalContentType type = (ExternalContentType)item; XElement node = ContentManager.Get <XElement>("Widgets/SelectExternalContentTypeItem"); ContainerWidget obj = (ContainerWidget)Widget.LoadWidget(null, node, null); obj.Children.Find <RectangleWidget>("SelectExternalContentType.Icon").Subtexture = ExternalContentManager.GetEntryTypeIcon(type); obj.Children.Find <LabelWidget>("SelectExternalContentType.Text").Text = ExternalContentManager.GetEntryTypeDescription(type); return(obj); }, delegate(object item) { selectionHandler((ExternalContentType)item); }) { }
public override void Update() { if (m_listDirty) { m_listDirty = false; UpdateList(); } ExternalContentEntry externalContentEntry = null; if (m_directoryList.SelectedIndex.HasValue) { externalContentEntry = (m_directoryList.Items[m_directoryList.SelectedIndex.Value] as ExternalContentEntry); } if (externalContentEntry != null) { m_actionButton.IsVisible = true; if (externalContentEntry.Type == ExternalContentType.Directory) { m_actionButton.Text = LanguageControl.Get(fName, 1); m_actionButton.IsEnabled = true; m_copyLinkButton.IsEnabled = false; } else { m_actionButton.Text = LanguageControl.Get(fName, 2); if (ExternalContentManager.IsEntryTypeDownloadSupported(ExternalContentManager.ExtensionToType(Storage.GetExtension(externalContentEntry.Path).ToLower()))) { m_actionButton.IsEnabled = true; m_copyLinkButton.IsEnabled = true; } else { m_actionButton.IsEnabled = false; m_copyLinkButton.IsEnabled = false; } } } else { m_actionButton.IsVisible = false; m_copyLinkButton.IsVisible = false; } m_directoryLabel.Text = m_externalContentProvider.IsLoggedIn ? string.Format(LanguageControl.Get(fName, 3), m_path) : LanguageControl.Get(fName, 4); m_providerNameLabel.Text = m_externalContentProvider.DisplayName; m_upDirectoryButton.IsEnabled = (m_externalContentProvider.IsLoggedIn && m_path != "/"); m_loginLogoutButton.Text = (m_externalContentProvider.IsLoggedIn ? LanguageControl.Get(fName, 5) : LanguageControl.Get(fName, 6)); m_loginLogoutButton.IsVisible = m_externalContentProvider.RequiresLogin; m_copyLinkButton.IsVisible = m_externalContentProvider.SupportsLinks; m_copyLinkButton.IsEnabled = (externalContentEntry != null && ExternalContentManager.IsEntryTypeDownloadSupported(externalContentEntry.Type)); if (m_changeProviderButton.IsClicked) { DialogsManager.ShowDialog(null, new SelectExternalContentProviderDialog(LanguageControl.Get(fName, 7), listingSupportRequired : true, delegate(IExternalContentProvider provider) { m_externalContentProvider = provider; m_listDirty = true; SetPath(null); })); } if (m_upDirectoryButton.IsClicked) { string directoryName = Storage.GetDirectoryName(m_path); SetPath(directoryName); } if (m_actionButton.IsClicked && externalContentEntry != null) { if (externalContentEntry.Type == ExternalContentType.Directory) { SetPath(externalContentEntry.Path); } else { DownloadEntry(externalContentEntry); } } if (m_copyLinkButton.IsClicked && externalContentEntry != null && ExternalContentManager.IsEntryTypeDownloadSupported(externalContentEntry.Type)) { CancellableBusyDialog busyDialog = new CancellableBusyDialog(LanguageControl.Get(fName, 8), autoHideOnCancel: false); DialogsManager.ShowDialog(null, busyDialog); m_externalContentProvider.Link(externalContentEntry.Path, busyDialog.Progress, delegate(string link) { DialogsManager.HideDialog(busyDialog); DialogsManager.ShowDialog(null, new ExternalContentLinkDialog(link)); }, delegate(Exception error) { DialogsManager.HideDialog(busyDialog); DialogsManager.ShowDialog(null, new MessageDialog(LanguageControl.Get("Usual", "error"), error.Message, LanguageControl.Get("Usual", "ok"), null, null)); }); } if (m_loginLogoutButton.IsClicked) { if (m_externalContentProvider.IsLoggedIn) { m_externalContentProvider.Logout(); SetPath(null); m_listDirty = true; } else { ExternalContentManager.ShowLoginUiIfNeeded(m_externalContentProvider, showWarningDialog: false, delegate { SetPath(null); m_listDirty = true; }); } } if (base.Input.Back || base.Input.Cancel || Children.Find <ButtonWidget>("TopBar.Back").IsClicked) { ScreensManager.SwitchScreen("Content"); } }
public override void Update() { CommunityContentEntry communityContentEntry = m_listPanel.SelectedItem as CommunityContentEntry; m_downloadButton.IsEnabled = (communityContentEntry != null); m_deleteButton.IsEnabled = (UserManager.ActiveUser != null && communityContentEntry != null && communityContentEntry.UserId == UserManager.ActiveUser.UniqueId); m_orderLabel.Text = GetOrderDisplayName(m_order); m_filterLabel.Text = GetFilterDisplayName(m_filter); if (m_changeOrderButton.IsClicked) { List <Order> items = EnumUtils.GetEnumValues(typeof(Order)).Cast <Order>().ToList(); DialogsManager.ShowDialog(null, new ListSelectionDialog(LanguageControl.Get(fName, "Order Type"), items, 60f, (object item) => GetOrderDisplayName((Order)item), delegate(object item) { m_order = (Order)item; PopulateList(null); })); } if (m_changeFilterButton.IsClicked) { List <object> list = new List <object>(); list.Add(string.Empty); foreach (ExternalContentType item in from ExternalContentType t in EnumUtils.GetEnumValues(typeof(ExternalContentType)) where ExternalContentManager.IsEntryTypeDownloadSupported(t) select t) { list.Add(item); } if (UserManager.ActiveUser != null) { list.Add(UserManager.ActiveUser.UniqueId); } DialogsManager.ShowDialog(null, new ListSelectionDialog(LanguageControl.Get(fName, "Filter"), list, 60f, (object item) => GetFilterDisplayName(item), delegate(object item) { m_filter = item; PopulateList(null); })); } if (m_downloadButton.IsClicked && communityContentEntry != null) { DownloadEntry(communityContentEntry); } if (m_deleteButton.IsClicked && communityContentEntry != null) { DeleteEntry(communityContentEntry); } if (m_moreOptionsButton.IsClicked) { DialogsManager.ShowDialog(null, new MoreCommunityLinkDialog()); } if (m_moreLink != null && m_moreLink.IsClicked) { PopulateList((string)m_moreLink.Tag); } if (base.Input.Back || Children.Find <BevelledButtonWidget>("TopBar.Back").IsClicked) { ScreensManager.SwitchScreen("Content"); } if (base.Input.Hold.HasValue && base.Input.HoldTime > 2f && base.Input.Hold.Value.Y < 20f) { m_contentExpiryTime = 0.0; Task.Delay(250).Wait(); } }