{-# LANGUAGE OverloadedStrings #-} ----------------------------------------------------------------------------- -- | -- Module : Application.HXournal.Type.Enum -- Copyright : (c) 2011, 2012 Ian-Woo Kim -- -- License : BSD3 -- Maintainer : Ian-Woo Kim -- Stability : experimental -- Portability : GHC -- ----------------------------------------------------------------------------- module Application.HXournal.Type.Enum where import qualified Data.ByteString.Char8 as B import qualified Data.Map as M import Data.Maybe import Data.Xournal.Predefined data PenColor = ColorBlack | ColorBlue | ColorRed | ColorGreen | ColorGray | ColorLightBlue | ColorLightGreen | ColorMagenta | ColorOrange | ColorYellow | ColorWhite | ColorRGBA Double Double Double Double deriving (Show,Eq,Ord) penColorNameMap :: M.Map PenColor B.ByteString penColorNameMap = M.fromList [ (ColorBlack, "black") , (ColorBlue , "blue") , (ColorRed , "red") , (ColorGreen, "green") , (ColorGray, "gray") , (ColorLightBlue, "lightblue") , (ColorLightGreen, "lightgreen") , (ColorMagenta, "magenta") , (ColorOrange, "orange") , (ColorYellow, "yellow") , (ColorWhite, "white") ] penColorRGBAmap :: M.Map PenColor (Double,Double,Double,Double) penColorRGBAmap = M.fromList $ map (\x->(fst x,fromJust (M.lookup (snd x) predefined_pencolor))) $ M.toList penColorNameMap convertPenColorToRGBA :: PenColor -> (Double,Double,Double,Double) convertPenColorToRGBA (ColorRGBA r g b a) = (r,g,b,a) convertPenColorToRGBA c = fromJust (M.lookup c penColorRGBAmap)