public TestCaseHitObjects() { var rateAdjustClock = new StopwatchClock(true); framedClock = new FramedClock(rateAdjustClock); playbackSpeed.ValueChanged += delegate { rateAdjustClock.Rate = playbackSpeed.Value; }; playbackSpeed.TriggerChange(); AddStep(@"circles", () => loadHitobjects(HitObjectType.Circle)); AddStep(@"slider", () => loadHitobjects(HitObjectType.Slider)); AddStep(@"spinner", () => loadHitobjects(HitObjectType.Spinner)); AddToggleStep(@"auto", state => { auto = state; loadHitobjects(mode); }); BasicSliderBar <double> sliderBar; Add(new Container { Anchor = Anchor.TopRight, Origin = Anchor.TopRight, AutoSizeAxes = Axes.Both, Children = new Drawable[] { new SpriteText { Text = "Playback Speed" }, sliderBar = new BasicSliderBar <double> { Width = 150, Height = 10, SelectionColor = Color4.Orange, } } }); sliderBar.Current.BindTo(playbackSpeed); framedClock.ProcessFrame(); var clockAdjustContainer = new Container { RelativeSizeAxes = Axes.Both, Clock = framedClock, Children = new[] { playfieldContainer = new Container { RelativeSizeAxes = Axes.Both }, approachContainer = new Container { RelativeSizeAxes = Axes.Both } } }; Add(clockAdjustContainer); }
private void load(TestBrowser browser) { Padding = new MarginPadding { Horizontal = 5 }; BasicSliderBar <double> rateAdjustSlider; SpriteText rateText; ClickableContainer clickableReset; InternalChild = new GridContainer { RelativeSizeAxes = Axes.Both, ColumnDimensions = new[] { new Dimension(GridSizeMode.AutoSize), new Dimension(GridSizeMode.AutoSize), new Dimension(), }, Content = new[] { new Drawable[] { new SpriteText { Padding = new MarginPadding(5) { Right = 0 }, Text = "Rate:", Font = FrameworkFont.Condensed }, clickableReset = new ClickableContainer { AutoSizeAxes = Axes.Both, Child = rateText = new SpriteText { Padding = new MarginPadding(5), Width = 45, Colour = FrameworkColour.Yellow, Font = FrameworkFont.Condensed }, }, rateAdjustSlider = new BasicSliderBar <double> { RelativeSizeAxes = Axes.Both, Current = browser.PlaybackRate }, } } }; rateAdjustSlider.Current.BindValueChanged(e => rateText.Text = e.NewValue.ToString("0%"), true); clickableReset.Action = () => rateAdjustSlider.Current.SetDefault(); }
public TestCaseSliderbar() { sliderBarValue = new BindableDouble(8) { MinValue = -10, MaxValue = 10 }; sliderBarValue.ValueChanged += sliderBarValueChanged; sliderbarText = new SpriteText { Text = $"Selected value: {sliderBarValue.Value}", Position = new Vector2(25, 0) }; SliderBar <double> sliderBar = new BasicSliderBar <double> { Size = new Vector2(200, 10), Position = new Vector2(25, 25), Color = Color4.White, SelectionColor = Color4.Pink, KeyboardStep = 1 }; sliderBar.Current.BindTo(sliderBarValue); Add(sliderBar); Add(sliderbarText); Add(sliderBar = new BasicSliderBar <double> { Size = new Vector2(200, 10), RangePadding = 20, Position = new Vector2(25, 45), Color = Color4.White, SelectionColor = Color4.Pink, KeyboardStep = 1, }); sliderBar.Current.BindTo(sliderBarValue); AddSliderStep("Value", -10.0, 10.0, 0.0, v => sliderBarValue.Value = v); }
public override void Reset() { base.Reset(); iterationsBindable = new BindableInt(2000) { MinValue = 50, MaxValue = 20000, }; SliderBar <int> iterations; Add(iterations = new BasicSliderBar <int> { Size = new Vector2(200, 20), SelectionColor = Color4.Pink, KeyboardStep = 100 }); Add(iterationsText = new SpriteText { X = 210, TextSize = 16 }); iterations.Current.BindTo(iterationsBindable); iterations.Current.ValueChanged += v => Invalidate(Invalidation.DrawNode, shallPropagate: false); Add(scroll = new ScrollContainer { RelativeSizeAxes = Axes.Both, Y = 25, Children = new[] { flow = new FillFlowContainer <SpriteText> { AutoSizeAxes = Axes.Both, Direction = FillDirection.Vertical } } }); }
private void load(TestBrowser browser) { BasicSliderBar <double> rateAdjustSlider; SpriteText rateText; InternalChild = new GridContainer { RelativeSizeAxes = Axes.Both, ColumnDimensions = new[] { new Dimension(GridSizeMode.AutoSize), new Dimension(GridSizeMode.Distributed), new Dimension(GridSizeMode.AutoSize), }, Content = new[] { new Drawable[] { new SpriteText { Padding = new MarginPadding(5), Text = "Rate:" }, rateAdjustSlider = new BasicSliderBar <double> { RelativeSizeAxes = Axes.Both, }, rateText = new SpriteText { Padding = new MarginPadding(5), AutoSizeAxes = Axes.None, Width = 60, }, } } }; rateAdjustSlider.Current.BindTo(browser.PlaybackRate); rateAdjustSlider.Current.BindValueChanged(v => rateText.Text = v.ToString("0%"), true); }
public TestCaseScrollingHitObjects() { OsuSpriteText timeRangeText; SpeedAdjustmentCollection adjustmentCollection; timeRangeBindable = new BindableDouble(2000) { MinValue = 200, MaxValue = 4000, }; SliderBar <double> timeRange; Add(timeRange = new BasicSliderBar <double> { Size = new Vector2(200, 20), SelectionColor = Color4.Pink, KeyboardStep = 100 }); Add(timeRangeText = new OsuSpriteText { X = 210, TextSize = 16, }); timeRange.Current.BindTo(timeRangeBindable); timeRangeBindable.ValueChanged += v => timeRangeText.Text = $"Visible Range: {v:#,#.#}"; timeRangeBindable.ValueChanged += v => bottomLabel.Text = $"t minus {v:#,#}"; AddRange(new Drawable[] { new Container { Anchor = Anchor.Centre, Origin = Anchor.Centre, Size = new Vector2(100, 500), Children = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both, Alpha = 0.25f }, adjustmentCollection = new SpeedAdjustmentCollection(Axes.Y) { RelativeSizeAxes = Axes.Both, VisibleTimeRange = timeRangeBindable, Masking = true, }, new OsuSpriteText { Text = "t minus 0", Margin = new MarginPadding(2), TextSize = 14, Anchor = Anchor.TopRight, }, bottomLabel = new OsuSpriteText { Text = "t minus x", Margin = new MarginPadding(2), TextSize = 14, Anchor = Anchor.BottomRight, Origin = Anchor.BottomLeft, }, topTime = new OsuSpriteText { Margin = new MarginPadding(2), TextSize = 14, Anchor = Anchor.TopLeft, Origin = Anchor.TopRight, }, bottomTime = new OsuSpriteText { Margin = new MarginPadding(2), TextSize = 14, Anchor = Anchor.BottomLeft, Origin = Anchor.BottomRight, }, } } }); timeRangeBindable.TriggerChange(); adjustmentCollection.Add(new TestSpeedAdjustmentContainer(new MultiplierControlPoint())); AddStep("Add hit object", () => adjustmentCollection.Add(new TestDrawableHitObject(new HitObject { StartTime = Time.Current + 2000 }))); }
private void load() { SpriteText playbackSpeedDisplay; InternalChildren = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both, Colour = Color4.Black, }, new Container { Padding = new MarginPadding(10), RelativeSizeAxes = Axes.Both, Child = new GridContainer { RelativeSizeAxes = Axes.Both, ColumnDimensions = new[] { new Dimension(GridSizeMode.AutoSize), new Dimension(GridSizeMode.Distributed), }, Content = new[] { new Drawable[] { new FillFlowContainer { Spacing = new Vector2(5), Direction = FillDirection.Horizontal, RelativeSizeAxes = Axes.Y, AutoSizeAxes = Axes.X, Children = new Drawable[] { new SpriteText { Padding = new MarginPadding(5), Text = "Current Assembly:" }, AssemblyDropdown = new BasicDropdown <Assembly> { Width = 300, }, RunAllSteps = new BasicCheckbox { LabelText = "Run all steps", AutoSizeAxes = Axes.Y, Width = 140, Anchor = Anchor.CentreLeft, Origin = Anchor.CentreLeft, }, } }, new GridContainer { RelativeSizeAxes = Axes.Both, ColumnDimensions = new[] { new Dimension(GridSizeMode.AutoSize), new Dimension(GridSizeMode.Distributed), new Dimension(GridSizeMode.AutoSize), }, Content = new[] { new Drawable[] { new SpriteText { Padding = new MarginPadding(5), Text = "Rate:" }, RateAdjustSlider = new BasicSliderBar <double> { RelativeSizeAxes = Axes.Both, Colour = Color4.MediumPurple, SelectionColor = Color4.White, }, playbackSpeedDisplay = new SpriteText { Padding = new MarginPadding(5), }, } } } } }, }, }, }; RateAdjustSlider.Current.ValueChanged += v => playbackSpeedDisplay.Text = v.ToString("0%"); }
public TestCaseSliderbar() { sliderBarValue = new BindableDouble(8) { MinValue = -10, MaxValue = 10 }; sliderBarValue.ValueChanged += sliderBarValueChanged; sliderbarText = new SpriteText { Text = $"Selected value: {sliderBarValue.Value}", Position = new Vector2(25, 0) }; SliderBar <double> sliderBar = new BasicSliderBar <double> { Size = new Vector2(200, 10), Position = new Vector2(25, 25), BackgroundColour = Color4.White, SelectionColour = Color4.Pink, KeyboardStep = 1 }; sliderBar.Current.BindTo(sliderBarValue); Add(sliderBar); Add(sliderbarText); Add(sliderBar = new BasicSliderBar <double> { Size = new Vector2(200, 10), RangePadding = 20, Position = new Vector2(25, 45), BackgroundColour = Color4.White, SelectionColour = Color4.Pink, KeyboardStep = 1, }); sliderBar.Current.BindTo(sliderBarValue); AddSliderStep("Value", -10.0, 10.0, -10.0, v => sliderBarValue.Value = v); AddStep("Click at x = 50", () => sliderBar.TriggerOnClick(new InputState { Mouse = new MouseState { Position = sliderBar.ToScreenSpace(sliderBar.DrawSize / 4) }, Keyboard = new KeyboardState() })); AddAssert("Value == -6,25", () => sliderBarValue == -6.25); AddStep("Press left arrow key", () => { var before = sliderBar.IsHovered; sliderBar.IsHovered = true; sliderBar.TriggerOnKeyDown(null, new KeyDownEventArgs { Key = OpenTK.Input.Key.Left, }); sliderBar.IsHovered = before; }); AddAssert("Value == -7,25", () => sliderBarValue == -7.25); AddStep("Click at x = 150 with shift", () => { var drawSize = sliderBar.DrawSize; drawSize.X *= 0.75f; sliderBar.TriggerOnClick(new InputState { Mouse = new MouseState { Position = sliderBar.ToScreenSpace(drawSize) }, Keyboard = new KeyboardState { Keys = { OpenTK.Input.Key.LShift } } }); }); AddAssert("Value == 6", () => sliderBarValue == 6); }
private void load() { SpriteText playbackSpeedDisplay; InternalChildren = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both, Colour = Color4.Black, }, new Container { Padding = new MarginPadding(10), RelativeSizeAxes = Axes.Both, Child = new GridContainer { RelativeSizeAxes = Axes.Both, ColumnDimensions = new[] { new Dimension(GridSizeMode.AutoSize), new Dimension(GridSizeMode.Distributed), }, Content = new[] { new Drawable[] { new FillFlowContainer { Spacing = new Vector2(5), Direction = FillDirection.Horizontal, RelativeSizeAxes = Axes.Y, AutoSizeAxes = Axes.X, Children = new Drawable[] { new SpriteText { Padding = new MarginPadding(5), Text = "Current Assembly:" }, AssemblyDropdown = new BasicDropdown <Assembly> { Width = 300, }, runAllButton = new Button { Text = "Run all steps", BackgroundColour = Color4.MediumPurple, Action = delegate { runAllButton.Enabled.Value = false; runAllButton.BackgroundColour = Color4.DimGray; RunAllSteps?.Invoke(); }, Width = 140, RelativeSizeAxes = Axes.Y, }, } }, new GridContainer { RelativeSizeAxes = Axes.Both, ColumnDimensions = new[] { new Dimension(GridSizeMode.AutoSize), new Dimension(GridSizeMode.Distributed), new Dimension(GridSizeMode.AutoSize), }, Content = new[] { new Drawable[] { new SpriteText { Padding = new MarginPadding(5), Text = "Playback Speed:" }, RateAdjustSlider = new BasicSliderBar <double> { RelativeSizeAxes = Axes.Both, Colour = Color4.MediumPurple, SelectionColor = Color4.White, }, playbackSpeedDisplay = new SpriteText { Padding = new MarginPadding(5), }, } } } } }, }, }, }; RateAdjustSlider.Current.ValueChanged += v => playbackSpeedDisplay.Text = v.ToString("0%"); }