0 | module Web.Canvas.Scene
2 | import Data.Linear.Token
3 | import Web.Canvas.Hints
4 | import Web.Canvas.Shape
5 | import Web.Canvas.Style
6 | import Web.Canvas.Transformation
7 | import Web.Internal.HtmlPrim
16 | %foreign "browser:lambda:x=>x.actualBoundingBoxAscent"
17 | actualBoundingBoxAscent : TextMetrics -> Double
20 | %foreign "browser:lambda:x=>x.actualBoundingBoxDescent"
21 | actualBoundingBoxDescent : TextMetrics -> Double
24 | %foreign "browser:lambda:x=>x.actualBoundingBoxLeft"
25 | actualBoundingBoxLeft : TextMetrics -> Double
28 | %foreign "browser:lambda:x=>x.actualBoundingBoxRight"
29 | actualBoundingBoxRight : TextMetrics -> Double
32 | %foreign "browser:lambda:x=>x.alphabeticBaseline"
33 | alphabeticBaseline : TextMetrics -> Double
36 | %foreign "browser:lambda:x=>x.emHeightAscent"
37 | emHeightAscent : TextMetrics -> Double
40 | %foreign "browser:lambda:x=>x.emHeightDescent"
41 | emHeightDescent : TextMetrics -> Double
44 | %foreign "browser:lambda:x=>x.fontBoundingBoxAscent"
45 | fontBoundingBoxAscent : TextMetrics -> Double
48 | %foreign "browser:lambda:x=>x.fontBoundingBoxDescent"
49 | fontBoundingBoxDescent : TextMetrics -> Double
52 | %foreign "browser:lambda:x=>x.hangingBaseline"
53 | hangingBaseline : TextMetrics -> Double
56 | %foreign "browser:lambda:x=>x.ideographicBaseline"
57 | ideographicBaseline : TextMetrics -> Double
60 | %foreign "browser:lambda:x=>x.width"
61 | width : TextMetrics -> Double
63 | %foreign "browser:lambda:(c,d,a,b,f,s,w)=>{d0 = c.direction; b0 = c.textBaseline; a0 = c.textAlign; f0 = c.font; c.font = f; c.direction = d; c.textBaseline = b; c.textAlign = a; res = c.measureText(s); c.font = f0; c.direction = d0; c.textBaseline = b0; c.textAlign = a0; return res}"
66 | -> (dir, align, baseline, font, text : String)
67 | -> PrimIO TextMetrics
72 | {auto ct : CanvasText}
75 | -> CanvasTextBaseline
76 | -> (font,text : String)
78 | measureText d a b f t = ffi $
prim__measureText ct (toFFI d) (toFFI a) (toFFI b) f t
80 | parameters {auto cs : CanvasState}
83 | save = ffi $
prim__save cs
87 | restore = ffi $
prim__restore cs