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));
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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)