public MainPage() { const float y = 40; const float canvasInvert = -1; InitializeComponent(); var canvas = new global::SkiaSharp.Views.Forms.SKCanvasView(); var painter = new SkiaSharp.MathPainter { LaTeX = @"999999" }; canvas.PaintSurface += (sender, e) => { var c = e.Surface.Canvas; c.Scale(10, 10); painter.Draw(c, 0, y); for (int i = 0; i < painter.Display.To <Display.ListDisplay <Fonts, Glyph> >().Displays[0].To <Display.TextLineDisplay <Fonts, Glyph> >().Runs[0].Run.Length; i++) { if (painter.Display.PointForIndex(TypesettingContext.Instance, MathListIndex.Level0Index(i)) is System.Drawing.PointF p) { c.DrawCircle(p.X, canvasInvert * p.Y, 1, new global::SkiaSharp.SKPaint { Color = global::SkiaSharp.SKColors.Red }); } else { System.Diagnostics.Debugger.Break(); } } }; Content = canvas; }
void Test(string latex, PointF expected, MathListIndex index) { var display = CreateDisplay(latex); Assert.NotNull(display); CSharpMath.Tests.Approximately.Equal(expected, display.PointForIndex(TestTypesettingContexts.Instance, index)); }
void Test(string latex, PointF expected, MathListIndex index) { var display = CreateDisplay(latex); Assert.NotNull(display); var pr = display.PointForIndex(TestTypesettingContexts.Instance, index); System.Diagnostics.Debug.WriteLine(pr); CSharpMath.Tests.Approximately.Equal(expected, pr, 0.001); }
public void ShowRestingPlaceholdersOnCaretVisible() { keyboard.KeyPress(MathKeyboardInput.Subscript); var outer = Assert.IsType <Atom.Atoms.Placeholder>(Assert.Single(keyboard.MathList)); var inner = Assert.IsType <Atom.Atoms.Placeholder>(Assert.Single(outer.Subscript)); Assert.True(keyboard.InsertionPositionHighlighted); Assert.False(keyboard.ShouldDrawCaret); keyboard.InsertionIndex = MathListIndex.Level0Index(keyboard.MathList.Count); Assert.True(keyboard.InsertionPositionHighlighted); Assert.True(keyboard.ShouldDrawCaret); Assert.Equal(LaTeXSettings.PlaceholderRestingNucleus, outer.Nucleus); Assert.Equal(LaTeXSettings.PlaceholderRestingColor, outer.Color); Assert.Equal(LaTeXSettings.PlaceholderRestingNucleus, inner.Nucleus); Assert.Equal(LaTeXSettings.PlaceholderRestingColor, inner.Color); }
void Test(string latex, PointF expected, MathListIndex index) => CreateDisplay(latex).Match( display => CSharpMath.Tests.Approximately.Equal (expected, display.PointForIndex(TestTypesettingContexts.Instance, index)), s => throw new Xunit.Sdk.XunitException(s)