module Eventloop.Module.BasicShapes.BasicShapes where

import Eventloop.Module.BasicShapes.Types
import Eventloop.Types.EventTypes
import Eventloop.Module.BasicShapes.Classes

defaultBasicShapesModuleConfiguration = ( EventloopModuleConfiguration
                                            basicShapesModuleIdentifier
                                            defaultBasicShapesModuleIOState
                                            Nothing
                                            Nothing
                                            Nothing
                                            (Just basicShapesPostProcessor)
                                            Nothing
                                            Nothing
                                        )
                                   
                                   
defaultBasicShapesModuleIOState :: IOState
defaultBasicShapesModuleIOState = NoState


basicShapesModuleIdentifier :: EventloopModuleIdentifier
basicShapesModuleIdentifier = "basicshapes"


basicShapesPostProcessor :: PostProcessor
basicShapesPostProcessor shared iostate (OutBasicShapes basicShapesOut ) = return (shared, iostate, [OutCanvas canvasOut])
                                                                        where
                                                                            canvasOut = toCanvasOut basicShapesOut
basicShapesPostProcessor shared iostate out = return (shared, iostate, [out])