Update framewörk

This commit is contained in:
Thomas Müller
2017-03-01 19:33:01 +01:00
parent d46e68b36b
commit 9c853b0465
37 changed files with 127 additions and 179 deletions

View File

@ -8,72 +8,6 @@ using osu.Framework;
using osu.Framework.Graphics;
using osu.Game.Database;
namespace osu.Game.Beatmaps.Drawables
{
class BeatmapGroup : IStateful<BeatmapGroupState>
{
public BeatmapPanel SelectedPanel;
/// <summary>
/// Fires when one of our difficulties was selected. Will fire on first expand.
/// </summary>
public Action<BeatmapGroup, BeatmapInfo> SelectionChanged;
/// <summary>
/// Fires when one of our difficulties is clicked when already selected. Should start playing the map.
/// </summary>
public Action<BeatmapInfo> StartRequested;
public BeatmapSetHeader Header;
private BeatmapGroupState state;
public List<BeatmapPanel> BeatmapPanels;
public BeatmapSetInfo BeatmapSet;
public BeatmapGroupState State
{
get { return state; }
set
{
switch (value)
{
case BeatmapGroupState.Expanded:
Header.State = PanelSelectedState.Selected;
foreach (BeatmapPanel panel in BeatmapPanels)
panel.State = panel == SelectedPanel ? PanelSelectedState.Selected : PanelSelectedState.NotSelected;
break;
case BeatmapGroupState.Collapsed:
Header.State = PanelSelectedState.NotSelected;
foreach (BeatmapPanel panel in BeatmapPanels)
panel.State = PanelSelectedState.Hidden;
break;
case BeatmapGroupState.Hidden:
Header.State = PanelSelectedState.Hidden;
foreach (BeatmapPanel panel in BeatmapPanels)
panel.State = PanelSelectedState.Hidden;
break;
}
state = value;
}
}
public BeatmapGroup(BeatmapSetInfo beatmapSet, BeatmapDatabase database)
{
BeatmapSet = beatmapSet;
WorkingBeatmap beatmap = database.GetWorkingBeatmap(BeatmapSet.Beatmaps.FirstOrDefault());
foreach (var b in BeatmapSet.Beatmaps)
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using System;
using System.Collections.Generic;
using System.Linq;
using osu.Framework;
using osu.Framework.Graphics;
using osu.Game.Database;
namespace osu.Game.Beatmaps.Drawables
{
class BeatmapGroup : IStateful<BeatmapGroupState>

View File

@ -83,10 +83,10 @@ namespace osu.Game.Beatmaps.Drawables
ColourLight = OsuColour.FromHex(@"3a7285"),
ColourDark = OsuColour.FromHex(@"123744")
},
new FlowContainer
new FillFlowContainer
{
Padding = new MarginPadding(5),
FlowStrategy = FlowStrategies.CreateHorizontalFlow(),
Direction = FlowDirection.Right,
AutoSizeAxes = Axes.Both,
Anchor = Anchor.CentreLeft,
Origin = Anchor.CentreLeft,
@ -98,16 +98,17 @@ namespace osu.Game.Beatmaps.Drawables
Anchor = Anchor.CentreLeft,
Origin = Anchor.CentreLeft,
},
new FlowContainer
new FillFlowContainer
{
Padding = new MarginPadding { Left = 5 },
FlowStrategy = FlowStrategies.CreateVerticalFlow(),
Direction = FlowDirection.Down,
AutoSizeAxes = Axes.Both,
Children = new Drawable[]
{
new FlowContainer
new FillFlowContainer
{
FlowStrategy = FlowStrategies.CreateHorizontalFlow(new Vector2(4, 0)),
Direction = FlowDirection.Right,
Spacing = new Vector2(4, 0),
AutoSizeAxes = Axes.Both,
Children = new[]
{

View File

@ -24,7 +24,7 @@ namespace osu.Game.Beatmaps.Drawables
private OsuConfigManager config;
private Bindable<bool> preferUnicode;
private WorkingBeatmap beatmap;
private FlowContainer difficultyIcons;
private FillFlowContainer difficultyIcons;
public BeatmapSetHeader(WorkingBeatmap beatmap)
{
@ -36,9 +36,9 @@ namespace osu.Game.Beatmaps.Drawables
{
RelativeSizeAxes = Axes.Both,
},
new FlowContainer
new FillFlowContainer
{
FlowStrategy = FlowStrategies.CreateVerticalFlow(),
Direction = FlowDirection.Down,
Padding = new MarginPadding { Top = 5, Left = 18, Right = 10, Bottom = 10 },
AutoSizeAxes = Axes.Both,
Children = new[]
@ -58,7 +58,7 @@ namespace osu.Game.Beatmaps.Drawables
TextSize = 17,
Shadow = true,
},
difficultyIcons = new FlowContainer
difficultyIcons = new FillFlowContainer
{
Margin = new MarginPadding { Top = 5 },
AutoSizeAxes = Axes.Both,
@ -109,10 +109,10 @@ namespace osu.Game.Beatmaps.Drawables
Children = new[]
{
new FlowContainer
new FillFlowContainer
{
Depth = -1,
FlowStrategy = FlowStrategies.CreateHorizontalFlow(),
Direction = FlowDirection.Right,
RelativeSizeAxes = Axes.Both,
// This makes the gradient not be perfectly horizontal, but diagonal at a ~40<34> angle
Shear = new Vector2(0.8f, 0),