OperationRecordingCanvas.cs 1.4 KB

12345678910111213141516171819202122232425
  1. using System;
  2. using System.Collections.Generic;
  3. using QuestPDF.Infrastructure;
  4. using QuestPDF.UnitTests.TestEngine.Operations;
  5. using SkiaSharp;
  6. namespace QuestPDF.UnitTests.TestEngine
  7. {
  8. internal sealed class OperationRecordingCanvas : ICanvas
  9. {
  10. public ICollection<OperationBase> Operations { get; } = new List<OperationBase>();
  11. public void Translate(Position vector) => Operations.Add(new CanvasTranslateOperation(vector));
  12. public void Rotate(float angle) => Operations.Add(new CanvasRotateOperation(angle));
  13. public void Scale(float scaleX, float scaleY) => Operations.Add(new CanvasScaleOperation(scaleX, scaleY));
  14. public void DrawRectangle(Position vector, Size size, string color) => Operations.Add(new CanvasDrawRectangleOperation(vector, size, color));
  15. public void DrawText(SKTextBlob skTextBlob, Position position, TextStyle style) => throw new NotImplementedException();
  16. public void DrawImage(SKImage image, Position position, Size size) => Operations.Add(new CanvasDrawImageOperation(position, size));
  17. public void DrawHyperlink(string url, Size size) => throw new NotImplementedException();
  18. public void DrawSectionLink(string sectionName, Size size) => throw new NotImplementedException();
  19. public void DrawSection(string sectionName) => throw new NotImplementedException();
  20. }
  21. }