Skip to content

Commit bddfc71

Browse files
committed
Add getter and setter for textAlign
1 parent 43cc6b0 commit bddfc71

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

src/Graphics/Canvas.purs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,44 @@ foreign import transform
457457
-- Text
458458
--
459459

460+
data TextAlign
461+
= AlignLeft | AlignRight | AlignCenter | AlignStart | AlignEnd
462+
463+
instance showTextAlign :: Show TextAlign where
464+
show AlignLeft = "left"
465+
show AlignRight = "right"
466+
show AlignCenter = "center"
467+
show AlignStart = "start"
468+
show AlignEnd = "end"
469+
470+
unsafeParseTextAlign :: String -> TextAlign
471+
unsafeParseTextAlign "left" = AlignLeft
472+
unsafeParseTextAlign "right" = AlignRight
473+
unsafeParseTextAlign "center" = AlignCenter
474+
unsafeParseTextAlign "start" = AlignStart
475+
unsafeParseTextAlign "end" = AlignEnd
476+
477+
foreign import textAlign
478+
"""function textAlign(ctx) {
479+
return function() {
480+
return unsafeParseTextAlign(ctx.textAlign);
481+
}
482+
}""" :: forall eff. Context2D -> Eff (canvas :: Canvas | eff) TextAlign
483+
484+
foreign import setTextAlignImpl
485+
"""function setTextAlignImpl(ctx) {
486+
return function(textAlign) {
487+
return function() {
488+
ctx.textAlign = textAlign;
489+
return ctx;
490+
}
491+
}
492+
}""" :: forall eff. Context2D -> String -> (Eff (canvas :: Canvas | eff) Context2D)
493+
494+
setTextAlign :: forall eff. Context2D -> TextAlign -> Eff (canvas :: Canvas | eff) Context2D
495+
setTextAlign ctx textAlign =
496+
setTextAlignImpl ctx (show textAlign)
497+
460498
type TextMetrics = { width :: Number }
461499

462500
foreign import font

0 commit comments

Comments
 (0)