From 50192b21e3a1cdd9d6f31e794075f5f389cd4b12 Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Tue, 20 Mar 2018 13:57:25 +0900 Subject: [PATCH] Give DrawableBeatDivisor a ctor --- .../Visual/TestCaseDrawableBeatDivisor.cs | 9 +---- .../Screens/Edit/Screens/Compose/Compose.cs | 2 +- .../Screens/Compose/DrawableBeatDivisor.cs | 34 +++++++++---------- 3 files changed, 19 insertions(+), 26 deletions(-) diff --git a/osu.Game.Tests/Visual/TestCaseDrawableBeatDivisor.cs b/osu.Game.Tests/Visual/TestCaseDrawableBeatDivisor.cs index 104ce1557c..238fd09fd8 100644 --- a/osu.Game.Tests/Visual/TestCaseDrawableBeatDivisor.cs +++ b/osu.Game.Tests/Visual/TestCaseDrawableBeatDivisor.cs @@ -10,17 +10,10 @@ namespace osu.Game.Tests.Visual { public class TestCaseDrawableBeatDivisor : OsuTestCase { - private DependencyContainer dependencies; - - protected override IReadOnlyDependencyContainer CreateLocalDependencies(IReadOnlyDependencyContainer parent) - => dependencies = new DependencyContainer(parent); - [BackgroundDependencyLoader] private void load() { - dependencies.Cache(new BindableBeatDivisor()); - - Child = new DrawableBeatDivisor + Child = new DrawableBeatDivisor(new BindableBeatDivisor()) { Anchor = Anchor.Centre, Origin = Anchor.Centre, diff --git a/osu.Game/Screens/Edit/Screens/Compose/Compose.cs b/osu.Game/Screens/Edit/Screens/Compose/Compose.cs index 41bdc25bcf..2603832437 100644 --- a/osu.Game/Screens/Edit/Screens/Compose/Compose.cs +++ b/osu.Game/Screens/Edit/Screens/Compose/Compose.cs @@ -70,7 +70,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose Padding = new MarginPadding { Right = 5 }, Child = timeline = new ScrollableTimeline { RelativeSizeAxes = Axes.Both } }, - new DrawableBeatDivisor { RelativeSizeAxes = Axes.Both } + new DrawableBeatDivisor(beatDivisor) { RelativeSizeAxes = Axes.Both } }, }, ColumnDimensions = new[] diff --git a/osu.Game/Screens/Edit/Screens/Compose/DrawableBeatDivisor.cs b/osu.Game/Screens/Edit/Screens/Compose/DrawableBeatDivisor.cs index 1a4ab05254..08221009cc 100644 --- a/osu.Game/Screens/Edit/Screens/Compose/DrawableBeatDivisor.cs +++ b/osu.Game/Screens/Edit/Screens/Compose/DrawableBeatDivisor.cs @@ -19,14 +19,17 @@ namespace osu.Game.Screens.Edit.Screens.Compose { private static readonly int[] available_divisors = { 1, 2, 3, 4, 6, 8, 12, 16 }; - private readonly Bindable beatDivisor = new Bindable(1); + private readonly BindableBeatDivisor beatDivisor = new BindableBeatDivisor(); private int currentDivisorIndex; - [BackgroundDependencyLoader] - private void load(OsuColour colours, BindableBeatDivisor beatDivisor) + public DrawableBeatDivisor(BindableBeatDivisor beatDivisor) { this.beatDivisor.BindTo(beatDivisor); + } + [BackgroundDependencyLoader] + private void load(OsuColour colours) + { Masking = true; CornerRadius = 5; @@ -45,7 +48,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose { new Drawable[] { - new TickContainer(1, 2, 3, 4, 6, 8, 12, 16) + new TickContainer(beatDivisor, 1, 2, 3, 4, 6, 8, 12, 16) { RelativeSizeAxes = Axes.Both, Padding = new MarginPadding { Horizontal = 5 } @@ -79,7 +82,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose Icon = FontAwesome.fa_chevron_left, Action = selectPrevious }, - new DivisorText(), + new DivisorText(beatDivisor), new DivisorButton { Icon = FontAwesome.fa_chevron_right, @@ -135,17 +138,17 @@ namespace osu.Game.Screens.Edit.Screens.Compose { private readonly Bindable beatDivisor = new Bindable(); - public DivisorText() + public DivisorText(BindableBeatDivisor beatDivisor) { + this.beatDivisor.BindTo(beatDivisor); + Anchor = Anchor.Centre; Origin = Anchor.Centre; } [BackgroundDependencyLoader] - private void load(OsuColour colours, BindableBeatDivisor beatDivisor) + private void load(OsuColour colours) { - this.beatDivisor.BindTo(beatDivisor); - Colour = colours.BlueLighter; } @@ -187,27 +190,24 @@ namespace osu.Game.Screens.Edit.Screens.Compose { private readonly Bindable beatDivisor = new Bindable(); - public new MarginPadding Padding - { - set => base.Padding = value; - } + public new MarginPadding Padding { set => base.Padding = value; } private EquilateralTriangle marker; private readonly int[] availableDivisors; private readonly float tickSpacing; - public TickContainer(params int[] divisors) + public TickContainer(BindableBeatDivisor beatDivisor, params int[] divisors) { + this.beatDivisor.BindTo(beatDivisor); + availableDivisors = divisors; tickSpacing = 1f / (availableDivisors.Length + 1); } [BackgroundDependencyLoader] - private void load(OsuColour colours, BindableBeatDivisor beatDivisor) + private void load(OsuColour colours) { - this.beatDivisor.BindTo(beatDivisor); - InternalChild = marker = new EquilateralTriangle { Anchor = Anchor.BottomLeft,