Ejemplo n.º 1
0
        private void load(LayoutManager manager)
        {
            Children = new Drawable[]
            {
                rubyAlignmentDropdown = new LabelledDropdown <LyricTextAlignment>
                {
                    Label       = "Ruby alignment",
                    Description = "Ruby alignment section",
                    Items       = EnumUtils.GetValues <LyricTextAlignment>()
                },
                romajiAlignmentDropdown = new LabelledDropdown <LyricTextAlignment>
                {
                    Label       = "Romaji alignment",
                    Description = "Romaji alignment section",
                    Items       = EnumUtils.GetValues <LyricTextAlignment>()
                },
                rubyMarginSliderBar = new LabelledRealTimeSliderBar <int>
                {
                    Label       = "Ruby margin",
                    Description = "Ruby margin section",
                    Current     = new BindableNumber <int>
                    {
                        MinValue = 0,
                        MaxValue = 30,
                        Value    = 10,
                        Default  = 10
                    }
                },
                romajiMarginSliderBar = new LabelledRealTimeSliderBar <int>
                {
                    Label       = "Romaji margin",
                    Description = "Romaji margin section",
                    Current     = new BindableNumber <int>
                    {
                        MinValue = 0,
                        MaxValue = 30,
                        Value    = 10,
                        Default  = 10
                    }
                }
            };

            manager.LoadedLayout.BindValueChanged(e =>
            {
                var layout = e.NewValue;
                applyCurrent(rubyAlignmentDropdown.Current, layout.RubyAlignment);
                applyCurrent(romajiAlignmentDropdown.Current, layout.RomajiAlignment);
                applyCurrent(rubyMarginSliderBar.Current, layout.RubyMargin);
                applyCurrent(romajiMarginSliderBar.Current, layout.RomajiMargin);

                void applyCurrent <T>(Bindable <T> bindable, T value)
                => bindable.Value = bindable.Default = value;
            }, true);

            rubyAlignmentDropdown.Current.BindValueChanged(x => manager.ApplyCurrentLayoutChange(l => l.RubyAlignment     = x.NewValue));
            romajiAlignmentDropdown.Current.BindValueChanged(x => manager.ApplyCurrentLayoutChange(l => l.RomajiAlignment = x.NewValue));
            rubyMarginSliderBar.Current.BindValueChanged(x => manager.ApplyCurrentLayoutChange(l => l.RubyMargin          = x.NewValue));
            romajiMarginSliderBar.Current.BindValueChanged(x => manager.ApplyCurrentLayoutChange(l => l.RomajiMargin      = x.NewValue));
        }
Ejemplo n.º 2
0
        private void load(LayoutManager manager)
        {
            Children = new Drawable[]
            {
                alignmentDropdown = new LabelledDropdown <Anchor>
                {
                    Label       = "Anchor",
                    Description = "Anchor section",
                    Items       = EnumUtils.GetValues <Anchor>()
                },
                horizontalMarginSliderBar = new LabelledRealTimeSliderBar <int>
                {
                    Label       = "Horizontal margin",
                    Description = "Horizontal margin section",
                    Current     = new BindableNumber <int>
                    {
                        MinValue = 0,
                        MaxValue = 500,
                        Value    = 30,
                        Default  = 30
                    }
                },
                verticalMarginSliderBar = new LabelledRealTimeSliderBar <int>
                {
                    Label       = "Vertical margin",
                    Description = "Vertical margin section",
                    Current     = new BindableNumber <int>
                    {
                        MinValue = 0,
                        MaxValue = 500,
                        Value    = 30,
                        Default  = 30
                    }
                },
                smartHorizonDropdown = new LabelledDropdown <KaraokeTextSmartHorizon>
                {
                    Label       = "Smart horizon",
                    Description = "Smart horizon section",
                    Items       = EnumUtils.GetValues <KaraokeTextSmartHorizon>()
                }
            };

            manager.LoadedLayout.BindValueChanged(e =>
            {
                var layout = e.NewValue;
                applyCurrent(alignmentDropdown.Current, layout.Alignment);
                applyCurrent(horizontalMarginSliderBar.Current, layout.HorizontalMargin);
                applyCurrent(verticalMarginSliderBar.Current, layout.VerticalMargin);
                applyCurrent(smartHorizonDropdown.Current, layout.SmartHorizon);

                void applyCurrent <T>(Bindable <T> bindable, T value)
                => bindable.Value = bindable.Default = value;
            }, true);

            alignmentDropdown.Current.BindValueChanged(x => manager.ApplyCurrentLayoutChange(l => l.Alignment = x.NewValue));
            horizontalMarginSliderBar.Current.BindValueChanged(x => manager.ApplyCurrentLayoutChange(l => l.HorizontalMargin = x.NewValue));
            verticalMarginSliderBar.Current.BindValueChanged(x => manager.ApplyCurrentLayoutChange(l => l.VerticalMargin     = x.NewValue));
            smartHorizonDropdown.Current.BindValueChanged(x => manager.ApplyCurrentLayoutChange(l => l.SmartHorizon          = x.NewValue));
        }
Ejemplo n.º 3
0
        private void load(LayoutManager manager)
        {
            Children = new[]
            {
                lyricIntervalSliderBar = new LabelledRealTimeSliderBar <int>
                {
                    Label       = "Lyrics interval",
                    Description = "Lyrics interval section",
                    Current     = new BindableNumber <int>
                    {
                        MinValue = 0,
                        MaxValue = 30,
                        Value    = 10,
                        Default  = 10
                    }
                },
                rubyIntervalSliderBar = new LabelledRealTimeSliderBar <int>
                {
                    Label       = "Ruby interval",
                    Description = "Ruby interval section",
                    Current     = new BindableNumber <int>
                    {
                        MinValue = 0,
                        MaxValue = 30,
                        Value    = 10,
                        Default  = 10
                    }
                },
                romajiIntervalSliderBar = new LabelledRealTimeSliderBar <int>
                {
                    Label       = "Romaji interval",
                    Description = "Romaji interval section",
                    Current     = new BindableNumber <int>
                    {
                        MinValue = 0,
                        MaxValue = 30,
                        Value    = 10,
                        Default  = 10
                    }
                }
            };

            manager.LoadedLayout.BindValueChanged(e =>
            {
                var layout = e.NewValue;
                applyCurrent(lyricIntervalSliderBar.Current, layout.LyricsInterval);
                applyCurrent(rubyIntervalSliderBar.Current, layout.RubyInterval);
                applyCurrent(romajiIntervalSliderBar.Current, layout.RomajiInterval);

                void applyCurrent <T>(Bindable <T> bindable, T value)
                => bindable.Value = bindable.Default = value;
            }, true);

            lyricIntervalSliderBar.Current.BindValueChanged(x => manager.ApplyCurrentLayoutChange(l => l.LyricsInterval  = x.NewValue));
            rubyIntervalSliderBar.Current.BindValueChanged(x => manager.ApplyCurrentLayoutChange(l => l.RubyInterval     = x.NewValue));
            romajiIntervalSliderBar.Current.BindValueChanged(x => manager.ApplyCurrentLayoutChange(l => l.RomajiInterval = x.NewValue));
        }