mirror of
https://github.com/rgleichman/glance.git
synced 2024-09-11 15:05:41 +03:00
107 lines
2.6 KiB
Haskell
107 lines
2.6 KiB
Haskell
module DrawingColors (
|
|
ColorStyle(..)
|
|
, colorScheme
|
|
, colorOnBlackScheme
|
|
, whiteOnBlackScheme
|
|
, randomColorScheme
|
|
) where
|
|
|
|
import Diagrams.Prelude hiding ((&), (#))
|
|
|
|
{-# ANN module "HLint: ignore Unnecessary hiding" #-}
|
|
|
|
-- COLO(U)RS --
|
|
colorScheme :: ColorStyle Double
|
|
colorScheme = colorOnBlackScheme
|
|
|
|
data ColorStyle a = ColorStyle {
|
|
backgroundC :: Colour a,
|
|
lineC :: Colour a,
|
|
textBoxTextC :: Colour a,
|
|
textBoxC :: Colour a,
|
|
apply0C :: Colour a,
|
|
apply1C :: Colour a,
|
|
boolC :: Colour a,
|
|
lamArgResC :: Colour a,
|
|
regionPerimC :: Colour a,
|
|
caseRhsC :: Colour a,
|
|
patternC :: Colour a,
|
|
patternTextC :: Colour a,
|
|
bindTextBoxC :: Colour a,
|
|
bindTextBoxTextC :: Colour a,
|
|
edgeListC :: [Colour a],
|
|
nestingC :: [Colour a]
|
|
}
|
|
|
|
colorOnBlackScheme :: (Floating a, Ord a) => ColorStyle a
|
|
colorOnBlackScheme = ColorStyle {
|
|
backgroundC = black,
|
|
lineC = white,
|
|
--lineC = lightgray,
|
|
textBoxTextC = white,
|
|
textBoxC = white,
|
|
apply0C = red,
|
|
apply1C = cyan,
|
|
boolC = orange,
|
|
lamArgResC = lightSlightlyPurpleBlue,
|
|
regionPerimC = lime,
|
|
caseRhsC = slightlyGreenYellow,
|
|
patternC = lightMagenta,
|
|
patternTextC = cyan,
|
|
bindTextBoxC = reddishOrange,
|
|
bindTextBoxTextC = lightGreen,
|
|
edgeListC = [white, lime, reddishOrange, lightPurple, yellow, lightBlue],
|
|
nestingC = cycle [red, reddishOrange, yellow]
|
|
}
|
|
where
|
|
slightlyGreenYellow = sRGB24 212 255 0
|
|
lightMagenta = sRGB24 255 94 255
|
|
lightSlightlyPurpleBlue = sRGB24 109 87 255
|
|
reddishOrange = sRGB24 255 119 0
|
|
--lightBlue = sRGB24 126 127 255
|
|
lightBlue = sRGB24 35 156 255
|
|
lightPurple = sRGB24 208 137 255
|
|
lightGreen = sRGB24 180 255 145
|
|
|
|
|
|
whiteOnBlackScheme :: (Floating a, Ord a) => ColorStyle a
|
|
whiteOnBlackScheme = ColorStyle {
|
|
backgroundC = black,
|
|
lineC = white,
|
|
textBoxTextC = white,
|
|
textBoxC = white,
|
|
apply0C = white,
|
|
apply1C = white,
|
|
boolC = white,
|
|
lamArgResC = white,
|
|
regionPerimC = white,
|
|
caseRhsC = white,
|
|
patternC = white,
|
|
patternTextC = white,
|
|
bindTextBoxC = white,
|
|
bindTextBoxTextC = white,
|
|
edgeListC = [white],
|
|
nestingC = repeat white
|
|
}
|
|
|
|
-- Use this to test that all of the colors use the colorScheme
|
|
randomColorScheme :: (Floating a, Ord a) => ColorStyle a
|
|
randomColorScheme = ColorStyle {
|
|
backgroundC = darkorchid,
|
|
lineC = yellow,
|
|
textBoxTextC = blue,
|
|
textBoxC = magenta,
|
|
apply0C = orange,
|
|
apply1C = green,
|
|
boolC = lightpink,
|
|
lamArgResC = red,
|
|
regionPerimC = cyan,
|
|
caseRhsC = red,
|
|
patternC = olive,
|
|
patternTextC = coral,
|
|
bindTextBoxC = maroon,
|
|
bindTextBoxTextC = lime,
|
|
edgeListC = [wheat],
|
|
nestingC = cycle [red, yellow, purple, pink, lightblue, magenta]
|
|
}
|