Skip to content

Commit

Permalink
Implement the reference lyric edit mode section.
Browse files Browse the repository at this point in the history
  • Loading branch information
andy840119 committed Jul 25, 2022
1 parent 894c576 commit 26857d4
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// Copyright (c) andy840119 <[email protected]>. Licensed under the GPL Licence.
// See the LICENCE file in the repository root for full licence text.

namespace osu.Game.Rulesets.Karaoke.Edit.Lyrics.Extends.Reference
{
public class ReferenceExtend : EditExtend
{
public override ExtendDirection Direction => ExtendDirection.Right;

public override float ExtendWidth => 300;

public ReferenceExtend()
{
Children = new[]
{
new ReferenceLyricAutoGenerateSection(),
};
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// Copyright (c) andy840119 <[email protected]>. Licensed under the GPL Licence.
// See the LICENCE file in the repository root for full licence text.

using osu.Framework.Graphics.UserInterface;
using osu.Framework.Localisation;
using osu.Game.Rulesets.Karaoke.Edit.Components.Containers;
using osu.Game.Rulesets.Karaoke.Edit.Configs.Generator.ReferenceLyric;
using osu.Game.Rulesets.Karaoke.Edit.Lyrics.Extends.Components;

namespace osu.Game.Rulesets.Karaoke.Edit.Lyrics.Extends.Reference
{
public class ReferenceLyricAutoGenerateSection : Section
{
protected override LocalisableString Title => "Auto generate";

public ReferenceLyricAutoGenerateSection()
{
Children = new[]
{
new ReferenceLyricAutoGenerateSubsection()
};
}

private class ReferenceLyricAutoGenerateSubsection : AutoGenerateSubsection
{
public ReferenceLyricAutoGenerateSubsection()
: base(LyricAutoGenerateProperty.DetectReferenceLyric)
{
}

protected override InvalidLyricAlertTextContainer CreateInvalidLyricAlertTextContainer()
=> new InvalidLyricLanguageAlertTextContainer();

protected override ConfigButton CreateConfigButton()
=> new ReferenceLyricAutoGenerateConfigButton();

protected class InvalidLyricLanguageAlertTextContainer : InvalidLyricAlertTextContainer
{
private const string language_mode = "LANGUAGE_MODE";

public InvalidLyricLanguageAlertTextContainer()
{
SwitchToEditorMode(language_mode, "edit language mode", LyricEditorMode.Language);
Text = $"Seems some lyric missing language, go to [{language_mode}] to fill the language.";
}
}

protected class ReferenceLyricAutoGenerateConfigButton : ConfigButton
{
public override Popover GetPopover()
=> new ReferenceLyricDetectorConfigPopover();
}
}
}
}
2 changes: 2 additions & 0 deletions osu.Game.Rulesets.Karaoke/Edit/Lyrics/LyricEditor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
using osu.Game.Rulesets.Karaoke.Edit.Lyrics.Extends;
using osu.Game.Rulesets.Karaoke.Edit.Lyrics.Extends.Languages;
using osu.Game.Rulesets.Karaoke.Edit.Lyrics.Extends.Notes;
using osu.Game.Rulesets.Karaoke.Edit.Lyrics.Extends.Reference;
using osu.Game.Rulesets.Karaoke.Edit.Lyrics.Extends.RubyRomaji;
using osu.Game.Rulesets.Karaoke.Edit.Lyrics.Extends.Singers;
using osu.Game.Rulesets.Karaoke.Edit.Lyrics.Extends.Texting;
Expand Down Expand Up @@ -230,6 +231,7 @@ EditExtend getExtendArea() =>
Mode switch
{
LyricEditorMode.Texting => new TextingExtend(),
LyricEditorMode.Reference => new ReferenceExtend(),
LyricEditorMode.Language => new LanguageExtend(),
LyricEditorMode.EditRuby => new RubyTagExtend(),
LyricEditorMode.EditRomaji => new RomajiTagExtend(),
Expand Down

0 comments on commit 26857d4

Please sign in to comment.