private void recreatePanels(PanelDisplayStyle displayStyle) { clearPanels(); if (Users == null) { return; } var newPanels = new FillFlowContainer <SocialPanel> { RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Spacing = new Vector2(10f), Margin = new MarginPadding { Top = 10 }, ChildrenEnumerable = Users.Select(u => { SocialPanel panel; switch (displayStyle) { case PanelDisplayStyle.Grid: panel = new SocialGridPanel(u) { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre }; break; default: panel = new SocialListPanel(u); break; } panel.Status.BindTo(u.Status); return(panel); }) }; LoadComponentAsync(newPanels, f => { if (panels != null) { ScrollFlow.Remove(panels); } ScrollFlow.Add(panels = newPanels); }); }
private void recreatePanels(PanelDisplayStyle displayStyle) { if (panels != null) { panels.FadeOut(200); panels.Expire(); panels = null; } if (BeatmapSets == null) { return; } var newPanels = new FillFlowContainer <DirectPanel> { RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Spacing = new Vector2(panel_padding), Margin = new MarginPadding { Top = 10 }, ChildrenEnumerable = BeatmapSets.Select <BeatmapSetInfo, DirectPanel>(b => { switch (displayStyle) { case PanelDisplayStyle.Grid: return(new DirectGridPanel(b) { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, }); default: return(new DirectListPanel(b)); } }) }; LoadComponentAsync(newPanels, p => { if (panels != null) { ScrollFlow.Remove(panels); } ScrollFlow.Add(panels = newPanels); }); }
private void recreatePanels(PanelDisplayStyle displayStyle) { if (panels != null) { panels.FadeOut(200); panels.Expire(); panels = null; if (playing != null) { playing.PreviewPlaying.Value = false; playing = null; } } if (BeatmapSets == null) { return; } var newPanels = new FillFlowContainer <DirectPanel> { RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Spacing = new Vector2(panel_padding), Margin = new MarginPadding { Top = 10 }, ChildrenEnumerable = BeatmapSets.Select <BeatmapSetInfo, DirectPanel>(b => { switch (displayStyle) { case PanelDisplayStyle.Grid: return(new DirectGridPanel(b) { Width = 400 }); default: return(new DirectListPanel(b)); } }) }; LoadComponentAsync(newPanels, p => { if (panels != null) { ScrollFlow.Remove(panels); } ScrollFlow.Add(panels = newPanels); foreach (DirectPanel panel in p.Children) { panel.PreviewPlaying.ValueChanged += newValue => { if (newValue) { if (playing != null && playing != panel) { playing.PreviewPlaying.Value = false; } playing = panel; } } } ; }); }