packages feed

sifflet-2.3.0: tests/Testing/Common/TestStyles.hs

module Testing.Common.TestStyles
    (styleTest0, styleTest1, styleTest2, styleTest3,
     styleTest4, allStyles, treeStyles)

where

import Graphics.Rendering.Cairo  (FontSlant(..), FontWeight(..))

import Data.Sifflet.Geometry (Position(..))
import Data.Sifflet.TreeLayout -- for style

-- Some styles for testing

styleTest0 :: Style
styleTest0 = 
    let green = ColorRGB 0.1 0.9 0.1
        veryDarkGray = ColorRGB 0.1 0.1 0.1
        brighterGreen = ColorRGB 0.5 0.95 0.5
        blueGreen' = ColorRGB 0 1 1
    in Style {styleFont = 
                  VFont "serif" FontSlantNormal FontWeightNormal 18, 
              lineWidth = 2, 
              textMargin = 0.0, -- text within its box
              hpad = 0, vpad = 0, -- inter-node separation
              exomargin = 0.0,    -- between tree and window edge
              vtinypad = (0, 0),  -- node-edge separation
              styleFramePad = 35,
              
              -- Foreground and background colors
              styleNormalTextColor = green,
              styleNormalEdgeColor = green,
              styleNormalFillColor = veryDarkGray,
              styleActiveTextColor = brighterGreen,
              styleActiveEdgeColor = brighterGreen,
              styleActiveFillColor = mediumGray,
              styleSelectedTextColor = blueGreen',
              styleSelectedEdgeColor = blueGreen',
              styleSelectedFillColor = darkGray,
              styleTetherColor = white,
              styleAuxOffset = Position 9 9,
              styleAuxColor = lightGray,
              styleAuxFont = 
                  VFont "serif" FontSlantItalic FontWeightNormal 14,
              styleIoletRadius = 10,
              styleShowNodeBoxes = True,
              styleShowNodePorts = True
             }

styleTest1 :: Style
styleTest1 = styleTest0 {textMargin = 10}

styleTest2 :: Style
styleTest2 = styleTest0 {hpad = 10, vpad = 15}

styleTest3 :: Style
styleTest3 = styleTest0 {hpad = 20, vpad = 30, textMargin = 10}

styleTest4 :: Style
styleTest4 = styleTest0 {textMargin = 4.0, hpad = 27, vpad = 36, 
                         vtinypad = (4.5, 4.5)}

allStyles :: [Style]
allStyles = [styleTest0, styleTest1, styleTest2, styleTest3, styleTest4]

treeStyles :: [Style]
treeStyles = [styleTest2, styleTest3, styleTest4]