module PfeBrowserColors(Color,TokenTag(..),loadColorsF,defaultColor) where import Array import Fudgets import Char(toLower) import TokenTags type Color = TokenTag {- data Color = Comment | Reserved | Var | Con | TCon | VarOp | ConOp | Lit deriving (Eq,Ord,Ix,Bounded,Show) -} --loadColorsF :: (PfeColor -> F a b) -> F a b loadColorsF gctx fud = conts mkColor colorList $ \colors-> let a = listArray colorBounds colors in fud (a!) where mkColor colorname = wCreateGCtx gctx (gcFgA [colorname,fgColor]) colorBounds = (minBound,maxBound) :: (Color,Color) colorList = [argKey (flagname c) (defaultColor c)|c<-range colorBounds] flagname c = map toLower (show c)++"color" defaultColor c = case c of Comment -> "#00A0A0" Reserved -> "brown" Con -> "#F08000" TCon -> "blue3" VarOp -> "red" ConOp -> "#F08000" Lit -> "purple" ModName -> "brown" _ -> fgColor