packages feed

HGamer3D-0.9.5: HGamer3D/Data/WindowEvent.hs

module HGamer3D.Data.WindowEvent where

import Fresco
import Data.Binary.Serialise.CBOR
import Data.Binary.Serialise.CBOR.Encoding
import Data.Binary.Serialise.CBOR.Decoding

import Data.Text
import Data.Monoid
import Control.Applicative


data ScreenModeEvent = ScreenModeEvent {
    screenModeEventWidth::Int,
    screenModeEventHeight::Int,
    screenModeEventFullscreen::Bool,
    screenModeEventBorderless::Bool
    } deriving (Eq, Read, Show)

ctScreenModeEvent :: ComponentType ScreenModeEvent
ctScreenModeEvent = ComponentType 0x7534a286d000125c

type ExitRequestedEvent = ()

ctExitRequestedEvent :: ComponentType ExitRequestedEvent
ctExitRequestedEvent = ComponentType 0xbd86f89ddca9280f

instance Serialise ScreenModeEvent where
    encode (ScreenModeEvent v1 v2 v3 v4) = encodeListLen 4 <> encode v1 <> encode v2 <> encode v3 <> encode v4
    decode = decodeListLenOf 4 >> ScreenModeEvent <$> decode <*> decode <*> decode <*> decode