Exemple #1
0
        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);
            });
        }
Exemple #2
0
        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);
            });
        }
Exemple #3
0
        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;
                        }
                    }
                }
                ;
            });
        }