mirror of
https://github.com/osukey/osukey.git
synced 2025-08-03 14:46:38 +09:00
Header3
This commit is contained in:
@ -4,20 +4,14 @@
|
||||
using OpenTK;
|
||||
using OpenTK.Graphics;
|
||||
using osu.Framework.Allocation;
|
||||
using osu.Framework.Extensions.Color4Extensions;
|
||||
using osu.Framework.Graphics;
|
||||
using osu.Framework.Graphics.Colour;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
using osu.Framework.Graphics.Shapes;
|
||||
using osu.Framework.Graphics.Sprites;
|
||||
using osu.Framework.Graphics.Textures;
|
||||
using osu.Game.Graphics;
|
||||
using osu.Game.Graphics.Backgrounds;
|
||||
using osu.Game.Graphics.Sprites;
|
||||
using osu.Game.Overlays.Changelog.Header;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace osu.Game.Overlays.Changelog
|
||||
{
|
||||
@ -25,11 +19,12 @@ namespace osu.Game.Overlays.Changelog
|
||||
{
|
||||
private readonly Container coverContainer;
|
||||
|
||||
private Color4 purple = new Color4(191, 4, 255, 255);
|
||||
protected Color4 purple = new Color4(191, 4, 255, 255);
|
||||
private readonly Sprite coverImage;
|
||||
private readonly Sprite headerBadge; //50x50, margin-right: 20
|
||||
private readonly FillFlowContainer headerTextContainer;
|
||||
private readonly OsuSpriteText title, titleStream;
|
||||
private readonly SpriteIcon chevron;
|
||||
private readonly TextBadgePairListing listing;
|
||||
private readonly TextBadgePairRelease releaseStream;
|
||||
private readonly FillFlowContainer breadcrumbContainer;
|
||||
@ -61,110 +56,117 @@ namespace osu.Game.Overlays.Changelog
|
||||
Anchor = Anchor.Centre,
|
||||
Origin = Anchor.Centre,
|
||||
},
|
||||
//new Container
|
||||
//{
|
||||
// RelativeSizeAxes = Axes.X,
|
||||
// Height = cover_height,
|
||||
// Children = new Drawable[]
|
||||
// {
|
||||
new Container // this is the line badge-Changelog-Stream
|
||||
new Container // this is the line badge-Changelog-Stream
|
||||
{
|
||||
Height = title_height,
|
||||
Anchor = Anchor.BottomLeft,
|
||||
Origin = Anchor.BottomLeft,
|
||||
Y = -version_height,
|
||||
Children = new Drawable[]
|
||||
{
|
||||
new CircularContainer // a purple circle
|
||||
{
|
||||
Height = title_height,
|
||||
Anchor = Anchor.BottomLeft,
|
||||
Origin = Anchor.BottomLeft,
|
||||
Y = -version_height,
|
||||
X = icon_margin,
|
||||
Masking = true,
|
||||
BorderColour = purple,
|
||||
BorderThickness = 3,
|
||||
MaskingSmoothness = 1,
|
||||
Size = new OpenTK.Vector2(50),
|
||||
Children = new Drawable[]
|
||||
{
|
||||
new CircularContainer // a purple circle
|
||||
headerBadge = new Sprite
|
||||
{
|
||||
X = icon_margin,
|
||||
Masking = true,
|
||||
BorderColour = purple,
|
||||
BorderThickness = 3,
|
||||
MaskingSmoothness = 1,
|
||||
Size = new OpenTK.Vector2(50),
|
||||
Children = new Drawable[]
|
||||
{
|
||||
headerBadge = new Sprite
|
||||
{
|
||||
Size = new OpenTK.Vector2(0.8f),
|
||||
Anchor = Anchor.Centre,
|
||||
Origin = Anchor.Centre,
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
},
|
||||
new Box // this ensures the purple circle doesn't disappear..?
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Size = new OpenTK.Vector2(1),
|
||||
AlwaysPresent = true,
|
||||
Colour = Color4.Transparent,
|
||||
}
|
||||
}
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Size = new OpenTK.Vector2(0.8f),
|
||||
Anchor = Anchor.Centre,
|
||||
Origin = Anchor.Centre,
|
||||
},
|
||||
headerTextContainer = new FillFlowContainer
|
||||
|
||||
// this box has 2 functions:
|
||||
// - ensures the circle doesn't disappear on the X and Y edges
|
||||
// - lessens the white "contamination" on the circle (due to smoothing)
|
||||
new Box
|
||||
{
|
||||
AutoSizeAxes = Axes.Both,
|
||||
Direction = FillDirection.Horizontal,
|
||||
Anchor = Anchor.CentreLeft,
|
||||
Origin = Anchor.CentreLeft,
|
||||
X = icon_size + icon_margin * 2,
|
||||
Children = new Drawable[]
|
||||
{
|
||||
title = new OsuSpriteText
|
||||
{
|
||||
Text = "Changelog ",
|
||||
Font = @"Exo2.0-Light",
|
||||
TextSize = 38, // web: 30
|
||||
},
|
||||
titleStream = new OsuSpriteText
|
||||
{
|
||||
Text = "Listing",
|
||||
TextSize = 38, // web: 30
|
||||
Font = @"Exo2.0-Light",
|
||||
Colour = purple,
|
||||
},
|
||||
}
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Size = new OpenTK.Vector2(1),
|
||||
Alpha = 0,
|
||||
AlwaysPresent = true,
|
||||
Colour = purple,
|
||||
}
|
||||
}
|
||||
},
|
||||
breadcrumbContainer = new FillFlowContainer // Listing > Lazer 2018.713.1
|
||||
headerTextContainer = new FillFlowContainer
|
||||
{
|
||||
X = 2 * icon_margin + icon_size - 8, // for some reason off by 3px
|
||||
Height = version_height,
|
||||
Anchor = Anchor.BottomLeft,
|
||||
Origin = Anchor.BottomLeft,
|
||||
AutoSizeAxes = Axes.Both,
|
||||
Direction = FillDirection.Horizontal,
|
||||
Anchor = Anchor.CentreLeft,
|
||||
Origin = Anchor.CentreLeft,
|
||||
X = icon_size + icon_margin * 2,
|
||||
Children = new Drawable[]
|
||||
{
|
||||
listing = new TextBadgePairListing(purple),
|
||||
new SpriteIcon
|
||||
title = new OsuSpriteText
|
||||
{
|
||||
Anchor = Anchor.CentreLeft,
|
||||
Origin = Anchor.CentreLeft,
|
||||
Size = new Vector2(7),
|
||||
Colour = OsuColour.FromHex(@"bf04ff"),
|
||||
Icon = FontAwesome.fa_chevron_right,
|
||||
Margin = new MarginPadding()
|
||||
{
|
||||
Top = 8,
|
||||
Left = 5,
|
||||
Right = 5,
|
||||
Bottom = 15,
|
||||
},
|
||||
Text = "Changelog ",
|
||||
Font = @"Exo2.0-Light",
|
||||
TextSize = 38, // web: 30
|
||||
},
|
||||
titleStream = new OsuSpriteText
|
||||
{
|
||||
Text = "Listing",
|
||||
TextSize = 38, // web: 30
|
||||
Font = @"Exo2.0-Light",
|
||||
Colour = purple,
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
breadcrumbContainer = new FillFlowContainer // Listing > Lazer 2018.713.1
|
||||
{
|
||||
X = 2 * icon_margin + icon_size - 8,
|
||||
Height = version_height,
|
||||
Anchor = Anchor.BottomLeft,
|
||||
Origin = Anchor.BottomLeft,
|
||||
Direction = FillDirection.Horizontal,
|
||||
Children = new Drawable[]
|
||||
{
|
||||
listing = new TextBadgePairListing(purple),
|
||||
new Container() // without a container, moving the chevron wont work
|
||||
{
|
||||
Anchor = Anchor.CentreLeft,
|
||||
Origin = Anchor.CentreLeft,
|
||||
Margin = new MarginPadding()
|
||||
{
|
||||
Top = 10,
|
||||
Left = 7,
|
||||
Right = 9,
|
||||
Bottom = 15,
|
||||
},
|
||||
Children = new Drawable[]
|
||||
{
|
||||
chevron = new SpriteIcon
|
||||
{
|
||||
Anchor = Anchor.Centre,
|
||||
Origin = Anchor.Centre,
|
||||
Size = new Vector2(7),
|
||||
Colour = purple,
|
||||
Icon = FontAwesome.fa_chevron_right,
|
||||
Alpha = 0,
|
||||
X = -200,
|
||||
},
|
||||
releaseStream = new TextBadgePairRelease(purple, "Lazer")
|
||||
},
|
||||
},
|
||||
new Box // purple line
|
||||
{
|
||||
Colour = purple,
|
||||
RelativeSizeAxes = Axes.X,
|
||||
Height = 3,
|
||||
Anchor = Anchor.BottomLeft,
|
||||
Origin = Anchor.CentreLeft,
|
||||
},
|
||||
// }
|
||||
//}
|
||||
releaseStream = new TextBadgePairRelease(purple, "Lazer")
|
||||
},
|
||||
},
|
||||
new Box // purple line
|
||||
{
|
||||
Colour = purple,
|
||||
RelativeSizeAxes = Axes.X,
|
||||
Height = 3,
|
||||
Anchor = Anchor.BottomLeft,
|
||||
Origin = Anchor.CentreLeft,
|
||||
},
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -172,10 +174,15 @@ namespace osu.Game.Overlays.Changelog
|
||||
// is this a bad way to do this?
|
||||
OnLoadComplete = d =>
|
||||
{
|
||||
releaseStream.OnActivation = listing.Deactivate;
|
||||
releaseStream.OnActivation = () =>
|
||||
{
|
||||
listing.Deactivate();
|
||||
chevron.MoveToX(0, 100).FadeIn(100);
|
||||
};
|
||||
listing.OnActivation = () =>
|
||||
{
|
||||
releaseStream.Deactivate();
|
||||
chevron.MoveToX(-20, 100).FadeOut(100);
|
||||
ChangeHeaderText("Listing");
|
||||
};
|
||||
};
|
||||
|
Reference in New Issue
Block a user