protected virtual void ApplyLayout(KaraokeLayout layout) { // Layout relative to parent Anchor = layout.Alignment; Origin = layout.Alignment; Margin = new MarginPadding { Left = layout.Alignment.HasFlag(Anchor.x0) ? layout.HorizontalMargin : 0, Right = layout.Alignment.HasFlag(Anchor.x2) ? layout.HorizontalMargin : 0, Top = layout.Alignment.HasFlag(Anchor.y0) ? layout.VerticalMargin : 0, Bottom = layout.Alignment.HasFlag(Anchor.y2) ? layout.VerticalMargin : 0 }; Padding = new MarginPadding(30); // Layout to text karaokeText.Continuous = layout.Continuous; karaokeText.KaraokeTextSmartHorizon = layout.SmartHorizon; karaokeText.Spacing = new Vector2(layout.LyricsInterval, karaokeText.Spacing.Y); // Ruby karaokeText.RubySpacing = new Vector2(layout.RubyInterval, karaokeText.RubySpacing.Y); karaokeText.RubyAlignment = layout.RubyAlignment; karaokeText.RubyMargin = layout.RubyMargin; // Romaji karaokeText.RomajiSpacing = new Vector2(layout.RomajiInterval, karaokeText.RomajiSpacing.Y); karaokeText.RomajiAlignment = layout.RomajiAlignment; karaokeText.RomajiMargin = layout.RomajiMargin; }
protected override void ApplySkin(ISkinSource skin, bool allowFallback) { // Get layout layout = skin?.GetConfig <KaraokeSkinLookup, KaraokeLayout>(new KaraokeSkinLookup(KaraokeSkinConfiguration.LyricLayout, HitObject.LayoutIndex))?.Value; base.ApplySkin(skin, allowFallback); }
protected override void ApplyLayout(KaraokeLayout layout) { // use my own layout base.ApplyLayout(new KaraokeLayout { Name = "Skin layout", Alignment = Anchor.Centre }); }
protected override void ApplyLayout(KaraokeLayout layout) { base.ApplyLayout(layout); Padding = new MarginPadding(0); }