module FPPrac.Trees ( RoseTree , RBTree , NodeColor , rbExampleTree , roseExampleTree , showRBTree , showRBTreeList , showRoseTree , showRoseTreeList ) where import Prelude import Eventloop.EventloopCore import Eventloop.Types.EventTypes import Eventloop.DefaultConfiguration import qualified Eventloop.Module.Websocket.Canvas as C import Eventloop.Module.BasicShapes import Eventloop.Module.DrawTrees data ProgramState = ProgramState deriving (Eq, Show) beginProgramState = ProgramState eventloopConfig trees = defaultConfig { moduleConfigurations=[ defaultDrawTreesModuleConfiguration , defaultBasicShapesModuleConfiguration , C.defaultCanvasModuleConfiguration ]} where defaultConfig = allModulesEventloopConfiguration beginProgramState (eventloop trees) eventloop :: [Tree] -> ProgramState -> In -> (ProgramState, [Out]) eventloop trees state Start = (state, [ OutCanvas $ C.SetupCanvas 1 1 (1024, 1024) (C.CSSPercentage 0, C.CSSPercentage 0) , OutDrawTrees $ DrawTrees 1 trees , Stop ] ) showRBTree :: RBTree -> IO() showRBTree tree = showRBTreeList [tree] showRBTreeList :: [RBTree] -> IO () showRBTreeList trees = startMainloop (eventloopConfig (map TRBTree trees)) showRoseTree :: RoseTree -> IO() showRoseTree tree = showRoseTreeList [tree] showRoseTreeList :: [RoseTree] -> IO () showRoseTreeList trees = startMainloop (eventloopConfig (map TRoseTree trees))