{-# 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