{-# OPTIONS_HADDOCK show-extensions #-} {-# LANGUAGE DeriveDataTypeable , TypeFamilies #-} {-| Module : Diagrams.Backend.HsQML.DiagramObj.GradientObj Description : Rendering functions and instances. Copyright : (c) Marcin Mrotek, 2015 License : BSD-3 Maintainer : marcin.jan.mrotek@gmail.com Stability : experimental A QML object controlling the gradient object. -} module Diagrams.Backend.HsQML.GradientObj where import Data.Typeable import Graphics.QML import Graphics.QML.Objects.ParamNames data AddColourStopSignal deriving Typeable addColourStopSignal :: Proxy AddColourStopSignal addColourStopSignal = Proxy instance SignalKeyClass AddColourStopSignal where type SignalParams AddColourStopSignal = Double -> Double -> Double -> Double -> Double -> IO () data GradientObj = GradientObj deriving Typeable instance DefaultClass GradientObj where classMembers = [ defSignalNamedParams "addStop" addColourStopSignal $ fstName "r" `plusName` "g" `plusName` "b" `plusName` "a" `plusName` "offset" ] addColourStop :: ObjRef GradientObj -- ^Reference to a gradient object. -> Double -- ^Red channel value. -> Double -- ^Green channel value. -> Double -- ^Blue channel value. -> Double -- ^Alpha channel value. -> Double -- ^Offset channel value. -> IO () -- ^Adds a new colour stop to a gradient. addColourStop this r g b a off = fireSignal addColourStopSignal this r g b a off newGradient :: IO (ObjRef GradientObj) -- ^Create a new gradient object. newGradient = newObjectDC GradientObj