1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-13 21:53:22 +08:00

Make chevrons updateable

This commit is contained in:
HoutarouOreki 2018-07-20 17:24:21 +02:00
parent 02a8fb2154
commit c50c946b35
2 changed files with 43 additions and 23 deletions

View File

@ -14,6 +14,7 @@ namespace osu.Game.Overlays.Changelog
{ {
private APIChangelog currentBuild; private APIChangelog currentBuild;
private APIAccess api; private APIAccess api;
private ChangelogContentGroup changelogContentGroup;
public ChangelogContent() public ChangelogContent()
{ {
@ -27,20 +28,19 @@ namespace osu.Game.Overlays.Changelog
}; };
} }
public override void Add(ChangelogContentGroup changelogContentGroup) private void add(APIChangelog changelogBuild)
{ {
if (changelogContentGroup != null) Add(changelogContentGroup = new ChangelogContentGroup(changelogBuild)
{ {
changelogContentGroup.PreviousRequested = showPrevious; PreviousRequested = showPrevious,
changelogContentGroup.NextRequested = showNext; NextRequested = showNext,
} });
base.Add(changelogContentGroup);
} }
public void ShowBuild(APIChangelog changelog) public void ShowBuild(APIChangelog changelog)
{ {
Clear(); Clear();
Add(new ChangelogContentGroup(changelog)); add(changelog);
//fetchChangelogBuild(changelog); //fetchChangelogBuild(changelog);
fetchChangelogBuild(); fetchChangelogBuild();
} }
@ -48,23 +48,19 @@ namespace osu.Game.Overlays.Changelog
private void showNext() private void showNext()
{ {
if (currentBuild.Versions.Next != null) if (currentBuild.Versions.Next != null)
{ ShowBuild(currentBuild.Versions.Next);
Clear();
Add(new ChangelogContentGroup(currentBuild.Versions.Next));
//fetchChangelogBuild(currentBuild.Versions.Next);
fetchChangelogBuild();
}
} }
private void showPrevious() private void showPrevious()
{ {
if (currentBuild.Versions.Previous != null) if (currentBuild.Versions.Previous != null)
{ ShowBuild(currentBuild.Versions.Previous);
Clear();
Add(new ChangelogContentGroup(currentBuild.Versions.Previous));
//fetchChangelogBuild(currentBuild.Versions.Previous);
fetchChangelogBuild();
} }
private void updateChevronTooltips()
{
changelogContentGroup.UpdateChevronTooltips(currentBuild.Versions.Previous?.DisplayVersion,
currentBuild.Versions.Next?.DisplayVersion);
} }
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
@ -78,7 +74,11 @@ namespace osu.Game.Overlays.Changelog
{ {
//var req = new GetChangelogBuildRequest(build.UpdateStream.Name, build.Version); //var req = new GetChangelogBuildRequest(build.UpdateStream.Name, build.Version);
var req = new GetChangelogBuildRequest(); var req = new GetChangelogBuildRequest();
req.Success += res => currentBuild = res; req.Success += res =>
{
currentBuild = res;
updateChevronTooltips();
};
api.Queue(req); api.Queue(req);
} }
} }

View File

@ -14,6 +14,8 @@ namespace osu.Game.Overlays.Changelog
{ {
public class ChangelogContentGroup : FillFlowContainer public class ChangelogContentGroup : FillFlowContainer
{ {
private readonly TooltipIconButton chevronPrevious, chevronNext;
public Action NextRequested, PreviousRequested; public Action NextRequested, PreviousRequested;
public ChangelogContentGroup(APIChangelog build) public ChangelogContentGroup(APIChangelog build)
{ {
@ -40,7 +42,7 @@ namespace osu.Game.Overlays.Changelog
}, },
Children = new Drawable[] Children = new Drawable[]
{ {
new TooltipIconButton chevronPrevious = new TooltipIconButton
{ {
Icon = FontAwesome.fa_chevron_left, Icon = FontAwesome.fa_chevron_left,
Size = new Vector2(24), Size = new Vector2(24),
@ -77,7 +79,7 @@ namespace osu.Game.Overlays.Changelog
}, },
} }
}, },
new TooltipIconButton chevronNext = new TooltipIconButton
{ {
Icon = FontAwesome.fa_chevron_right, Icon = FontAwesome.fa_chevron_right,
Size = new Vector2(24), Size = new Vector2(24),
@ -103,6 +105,24 @@ namespace osu.Game.Overlays.Changelog
}, },
}; };
} }
public void UpdateChevronTooltips(string previousVersion, string nextVersion)
{
if (string.IsNullOrEmpty(previousVersion))
chevronPrevious.IsEnabled = false;
else
{
chevronPrevious.TooltipText = previousVersion;
chevronPrevious.IsEnabled = true;
}
if (string.IsNullOrEmpty(nextVersion))
chevronNext.IsEnabled = false;
else
{
chevronNext.TooltipText = nextVersion;
chevronNext.IsEnabled = true;
}
}
//public ChangelogContentGroup() { } // for listing //public ChangelogContentGroup() { } // for listing
} }
} }