Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@

type ScaleTransform = { scaleY :: Number, scaleX :: Number }

type TextMetrics = { width :: Number }

type Transform = { m32 :: Number, m31 :: Number, m22 :: Number, m21 :: Number, m12 :: Number, m11 :: Number }

type TranslateTransform = { translateY :: Number, translateX :: Number }
Expand All @@ -46,6 +48,10 @@

fillRect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: Canvas | eff) Context2D

fillText :: forall eff. Context2D -> String -> Number -> Number -> Eff (canvas :: Canvas | eff) Context2D

font :: forall eff. Context2D -> Eff (canvas :: Canvas | eff) String

getCanvasDimensions :: forall eff. CanvasElement -> Eff (canvas :: Canvas | eff) Dimensions

getCanvasElementById :: forall eff. String -> Eff (canvas :: Canvas | eff) CanvasElement
Expand All @@ -58,6 +64,8 @@

lineTo :: forall eff. Context2D -> Number -> Number -> Eff (canvas :: Canvas | eff) Context2D

measureText :: forall eff. Context2D -> String -> Eff (canvas :: Canvas | eff) TextMetrics

moveTo :: forall eff. Context2D -> Number -> Number -> Eff (canvas :: Canvas | eff) Context2D

rect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: Canvas | eff) Context2D
Expand All @@ -78,6 +86,8 @@

setFillStyle :: forall eff. String -> Context2D -> Eff (canvas :: Canvas | eff) Context2D

setFont :: forall eff. String -> Context2D -> Eff (canvas :: Canvas | eff) Context2D

setLineCap :: forall eff. LineCap -> Context2D -> Eff (canvas :: Canvas | eff) Context2D

setLineCapImpl :: forall eff. String -> Context2D -> Eff (canvas :: Canvas | eff) Context2D
Expand All @@ -100,6 +110,8 @@

strokeRect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: Canvas | eff) Context2D

strokeText :: forall eff. Context2D -> String -> Number -> Number -> Eff (canvas :: Canvas | eff) Context2D

transform :: forall eff. Transform -> Context2D -> Eff (canvas :: Canvas | eff) Context2D

translate :: forall eff. TranslateTransform -> Context2D -> Eff (canvas :: Canvas | eff) Context2D
Expand Down
60 changes: 60 additions & 0 deletions src/Graphics/Canvas.purs
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,66 @@ foreign import transform
\ };\
\}" :: forall eff. Transform -> Context2D -> Eff (canvas :: Canvas | eff) Context2D

-- |
-- Text
--

type TextMetrics = { width :: Number }

foreign import font
"function font(ctx) {\
\ return function() {\
\ return ctx.font;\
\ };\
\}" :: forall eff. Context2D -> Eff (canvas :: Canvas | eff) String

foreign import setFont
"function setFont(fontspec) {\
\ return function(ctx) {\
\ return function() {\
\ ctx.font = fontspec;\
\ return ctx;\
\ };\
\ };\
\}" :: forall eff. String -> Context2D -> Eff (canvas :: Canvas | eff) Context2D

foreign import fillText
"function fillText(ctx) {\
\ return function(text) {\
\ return function(x) {\
\ return function(y) {\
\ return function() {\
\ ctx.fillText(text, x, y);\
\ return ctx;\
\ };\
\ };\
\ };\
\ };\
\}" :: forall eff. Context2D -> String -> Number -> Number -> Eff (canvas :: Canvas | eff) Context2D

foreign import strokeText
"function strokeText(ctx) {\
\ return function(text) {\
\ return function(x) {\
\ return function(y) {\
\ return function() {\
\ ctx.fillText(text, x, y);\
\ return ctx;\
\ };\
\ };\
\ };\
\ };\
\}" :: forall eff. Context2D -> String -> Number -> Number -> Eff (canvas :: Canvas | eff) Context2D

foreign import measureText
"function measureText(ctx) {\
\ return function(text) {\
\ return function() {\
\ return ctx.measureText(text);\
\ };\
\ };\
\}" :: forall eff. Context2D -> String -> Eff (canvas :: Canvas | eff) TextMetrics

-- |
-- Context
--
Expand Down