public void AddEntry(string title, MarkdownHeading target, bool subtitle = false) { var entry = new TableOfContentsEntry(title, target, subtitle); if (subtitle) { lastMainTitle.Margin = new MarginPadding(0); if (lastSubTitle != null) { lastSubTitle.Margin = new MarginPadding(0); } content.Add(lastSubTitle = entry.With(d => d.Margin = new MarginPadding { Bottom = 10 })); return; } lastSubTitle = null; content.Add(lastMainTitle = entry.With(d => d.Margin = new MarginPadding { Bottom = 5 })); }
public void AddEntry(HeadingBlock headingBlock, MarkdownHeading heading) { switch (headingBlock.Level) { case 2: case 3: tableOfContents.AddEntry(getTitle(headingBlock.Inline), heading, headingBlock.Level == 3); break; } }
public TableOfContentsEntry(string text, MarkdownHeading target, bool subtitle = false) { this.target = target; RelativeSizeAxes = Axes.X; AutoSizeAxes = Axes.Y; Child = textFlow = new OsuTextFlowContainer(t => { t.Font = OsuFont.GetFont(size: subtitle ? 12 : 15); }).With(f => { f.AddText(text); f.RelativeSizeAxes = Axes.X; f.AutoSizeAxes = Axes.Y; f.Margin = new MarginPadding { Bottom = 2 }; }); Padding = new MarginPadding { Left = subtitle ? 10 : 0 }; }