{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
module Graphics.Rendering.Rect.CSS(CSSRect(..)) where
import Stylist (PropertyParser(..))
import Graphics.Rendering.Rect.CSS.Colour (ColourPallet(foreground))
import Graphics.Rendering.Rect.CSS.Background (Backgrounds(..))
data CSSRect = CSSRect { colours :: ColourPallet, backgrounds :: Backgrounds }
colour = foreground . colours
instance PropertyParser CSSRect where
temp = CSSRect { colours = temp, backgrounds = temp }
inherit CSSRect {..} = CSSRect { colours = inherit colours, backgrounds = temp }
shorthand self key value
| Just _ <- longhand self self key value = [(key, value)]
| otherwise = []
longhand parent self key value
| Just ret <- longhand (colours parent) (colours self) key value =
Just self { colours = ret }
| otherwise = Nothing