From 9cd101ee4f03b91b51d7e0cf31ddab4f24ae0089 Mon Sep 17 00:00:00 2001 From: Nathan McRae Date: Sat, 9 Aug 2025 23:06:06 -0700 Subject: [PATCH] Start implementing text style/dimensions --- src/Main.purs | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/Main.purs b/src/Main.purs index bc91e9e..1fad793 100644 --- a/src/Main.purs +++ b/src/Main.purs @@ -2,6 +2,7 @@ module Main where import Prelude +import Data.Array as Array import Data.Either (Either(..)) import Data.Int as Int import Data.Foldable as Foldable @@ -13,7 +14,7 @@ import Effect (Effect) import Effect.Console (log) import Effect.Class (liftEffect) import Effect.Exception (throw) -import TernaryGraph (ternaryGraph) +import TernaryGraph (ternaryGraph, tickLabelStrings) import Web.DOM.Document (contentType , createElement , Document @@ -106,7 +107,29 @@ update e = do svgContainer <- getNodeById document "svg-container" - let mySVG = ternaryGraph 100.0 50.0 50.0 ticks + let tickText = tickLabelStrings ticks 0 0 10 + --let allTicks = Foldable.foldr (\a b -> a <> ", " <> b) "" tickText + --log allTicks + + let tickStyle = { + typeface: "Liberation Mono", + sizePx: 12.0 + } + let axisTitleTextStyle = { + typeface: "Liberation Sans", + sizePx: 16.0 + } + + let tickTextStyles = Foldable.foldr (\text textStyleArray -> Array.cons (Tup.Tuple text tickStyle) textStyleArray) [] tickText + let textStyles = tickTextStyles <> [ + (Tup.Tuple "axis 1" axisTitleTextStyle), + (Tup.Tuple "axis 2" axisTitleTextStyle), + (Tup.Tuple "axis 3" axisTitleTextStyle) + ] + textDimensions <- getAllTextDimensions document textStyles + + let mySVG = ternaryGraph 100.0 50.0 50.0 ticks textDimensions + svgDocMay <- parseSVGFromString mySVG domParser svgDoc <- case svgDocMay of Left error -> throw error