hxournal-0.6.6: lib/Application/HXournal/Type/Enum.hs
{-# LANGUAGE OverloadedStrings #-}
-----------------------------------------------------------------------------
-- |
-- Module : Application.HXournal.Type.Enum
-- Copyright : (c) 2011, 2012 Ian-Woo Kim
--
-- License : BSD3
-- Maintainer : Ian-Woo Kim <ianwookim@gmail.com>
-- 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
-- | page add direction
data AddDirection = PageBefore | PageAfter
deriving (Show,Eq,Ord,Enum)
-- | relative zoom mode
data ZoomModeRel = ZoomIn | ZoomOut
deriving (Show,Eq,Ord,Enum)
-- |
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)