1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-22 16:47:24 +08:00
osu-lazer/osu.Game/Overlays/Changelog/ChangelogContent.cs

87 lines
3.1 KiB
C#
Raw Normal View History

2018-07-20 01:07:24 +08:00
// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
2018-07-22 11:28:43 +08:00
using OpenTK.Graphics;
using osu.Framework.Allocation;
2018-07-20 01:07:24 +08:00
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
2018-07-22 11:28:43 +08:00
using osu.Framework.Graphics.Shapes;
using osu.Game.Online.API;
using osu.Game.Online.API.Requests;
using osu.Game.Online.API.Requests.Responses;
2018-07-21 04:11:51 +08:00
using System;
2018-07-20 01:07:24 +08:00
namespace osu.Game.Overlays.Changelog
{
2018-07-22 11:28:43 +08:00
public class ChangelogContent : FillFlowContainer
2018-07-20 01:07:24 +08:00
{
private APIAccess api;
2018-07-20 23:24:21 +08:00
private ChangelogContentGroup changelogContentGroup;
2018-07-23 02:14:28 +08:00
public delegate void BuildSelectedEventHandler(string updateStream, string version, EventArgs args);
public event BuildSelectedEventHandler BuildSelected;
2018-07-20 01:07:24 +08:00
public ChangelogContent()
{
RelativeSizeAxes = Axes.X;
2018-07-20 03:49:13 +08:00
AutoSizeAxes = Axes.Y;
2018-07-20 01:07:24 +08:00
Direction = FillDirection.Vertical;
2018-07-22 11:28:43 +08:00
Padding = new MarginPadding{ Bottom = 100, };
}
2018-07-23 04:13:14 +08:00
public void ShowListing(APIChangelog[] changelog)
2018-07-22 11:28:43 +08:00
{
DateTime currentDate = new DateTime();
Clear();
foreach (APIChangelog build in changelog)
2018-07-20 03:49:13 +08:00
{
2018-07-22 11:28:43 +08:00
if (build.CreatedAt.Date != currentDate)
{
if (Children.Count != 0)
{
Add(new Box
{
RelativeSizeAxes = Axes.X,
Height = 2,
Colour = new Color4(17, 17, 17, 255),
Margin = new MarginPadding { Top = 30, },
});
}
2018-07-23 02:14:28 +08:00
// watch out for this?
Add(changelogContentGroup = new ChangelogContentGroup(build, true));
2018-07-23 02:27:50 +08:00
changelogContentGroup.BuildSelected += onBuildSelected;
2018-07-22 11:28:43 +08:00
changelogContentGroup.GenerateText(build.ChangelogEntries);
currentDate = build.CreatedAt.Date;
}
else
{
changelogContentGroup.Add(new Box
{
RelativeSizeAxes = Axes.X,
Height = 1,
Colour = new Color4(32, 24, 35, 255),
Margin = new MarginPadding { Top = 30, },
});
2018-07-23 02:14:28 +08:00
Add(changelogContentGroup = new ChangelogContentGroup(build, false));
2018-07-23 02:27:50 +08:00
changelogContentGroup.BuildSelected += onBuildSelected;
2018-07-22 11:28:43 +08:00
changelogContentGroup.GenerateText(build.ChangelogEntries);
}
}
2018-07-20 01:07:24 +08:00
}
2018-07-23 02:27:50 +08:00
public void ShowBuild(APIChangelog changelogBuild)
2018-07-20 23:24:21 +08:00
{
2018-07-23 02:27:50 +08:00
Child = changelogContentGroup = new ChangelogContentGroup(changelogBuild);
}
2018-07-23 02:27:50 +08:00
protected virtual void onBuildSelected(string updateStream, string version, EventArgs args)
{
2018-07-23 02:27:50 +08:00
if (BuildSelected != null)
BuildSelected(updateStream, version, EventArgs.Empty);
}
2018-07-20 01:07:24 +08:00
}
}