square.pp 787 B

1234567891011121314151617181920212223242526272829303132
  1. {$mode objfpc}
  2. {$modeswitch externalclass}
  3. // filename export object alias
  4. {$linklib ./modules/square.js square}
  5. unit square;
  6. interface
  7. uses js, web;
  8. Type
  9. TDrawResult = class external name 'Object' (TJSObject)
  10. length,x,y : Integer;
  11. color : string;
  12. end;
  13. TSquareAPI = class external name 'Object' (TJSObject)
  14. name : string;
  15. // Default export
  16. function randomsquare(aCtx : TJSCanvasRenderingContext2D) : TDrawResult; external name 'default';
  17. function draw(aCtx : TJSCanvasRenderingContext2D; alength,x,y : Integer; color : string) : TDrawResult;
  18. procedure reportArea(length : Integer; ListID : String);
  19. procedure reportPerimeter(length : Integer; ListID : String);
  20. end;
  21. var
  22. SquareAPI : TSquareAPI; external name 'square';
  23. implementation
  24. end.