@@ -457,6 +457,44 @@ foreign import transform
457
457
-- Text
458
458
--
459
459
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
+
460
498
type TextMetrics = { width :: Number }
461
499
462
500
foreign import font
0 commit comments