module Dodge.Render.List where import Dodge.Data import Dodge.Base.Window import Picture renderListAt :: Float -> Float -> World -> [(String,Color)] -> Picture renderListAt tx ty w = concatMapPic (winScale w) . zipWith (listPairAt tx ty w) [0..] listPairAt :: Float -- ^ x offset -> Float -- ^ y offset -> World -> Int -- ^ y offset (discrete) -> (String,Color) -- ^ The text item -> Picture {-# INLINE listPairAt #-} listPairAt xoff yoff w yint (s,col) = translate (xoff + 15 - halfWidth w) (yoff + halfHeight w - (20 * (fromIntegral yint+1))) . scale 0.1 0.1 . dShadCol col $ text s {- | Colour picture and add black drop shadow. -} dShadCol :: Color -> Picture -> Picture {-# INLINE dShadCol #-} dShadCol c p = pictures [ color black $ translate 1.2 (-1.2) p , color c p ] winScale :: World -> Picture -> Picture {-# INLINE winScale #-} winScale w = scale (2 / getWindowX w) (2 / getWindowY w)