{- GUI: Slider functionality HGamer3D Library (A project to enable 3D game development in Haskell) Copyright 2015 - 2017 Peter Althainz Distributed under the Apache License, Version 2.0 (See attached file LICENSE or copy at http://www.apache.org/licenses/LICENSE-2.0) file: HGamer3D/GUI/Slider.hs -} -- | Module providing the Mouse functionality and settings module HGamer3D.GUI.Slider ( ctSlider, Slider (..) ) 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 Slider = Slider { sliderRange::Float, sliderValue::Float } deriving (Eq, Read, Show) ctSlider :: ComponentType Slider ctSlider = ComponentType 0x60636b107c77a533 instance Serialise Slider where encode (Slider v1 v2) = encodeListLen 2 <> encode v1 <> encode v2 decode = decodeListLenOf 2 >> Slider <$> decode <*> decode