module EventLoop.Output.SystemMessage(SystemMessageOut(..)) where
import EventLoop.Json
import EventLoop.Config
import EventLoop.CommonTypes
data SystemMessageOut = CanvasSetup Dimension
| Timer Bool
| Close
instance JSONAble SystemMessageOut where
toJsonMessage (CanvasSetup dim) = JSONObject [(JSONMember sysmessageanswerS (JSONString canvassetupS)), (JSONMember dimensionS (dimensionToJsonMessage dim))]
toJsonMessage (Timer bool) = JSONObject [(JSONMember sysmessageanswerS (JSONString timerS)), (JSONMember useS (JSONBool bool))]
toJsonMessage (Close) = JSONObject [(JSONMember sysmessageanswerS (JSONString closeS))]
dimensionToJsonMessage :: Dimension -> JSONMessage
dimensionToJsonMessage (w, h) = JSONObject [(JSONMember hS (JSONFloat h)), (JSONMember wS (JSONFloat w))]