plot-gtk-ui-0.0.1.0: lib/Graphics/Rendering/Plot/Gtk/UI/Settings.hs
-----------------------------------------------------------------------------
-- |
-- Module : Graphics.Rendering.Plot.Gtk.UI
-- Copyright : (c) Sumit Sahrawat
-- License : GPL-2
--
-- Maintainer : sumit.sahrawat.apm13@iitbhu.ac.in
-- Stability : provisional
-- Portability : portable
--
-- Helper functions and data for the figures and sliders
--
--------------------------------------------------------------------------------
module Graphics.Rendering.Plot.Gtk.UI.Settings
( FigureSettings (..)
, defaultFigureSettings
, AdjustmentSettings (..)
, aSetRange
) where
--------------------------------------------------------------------------------
-- Datatypes used by plot package for configuration
import Graphics.Rendering.Plot (AxisPosn (..), AxisSide (..),
Scale (..), SeriesType (..))
--------------------------------------------------------------------------------
data FigureSettings = FigureSettings {
fontFamily :: String
, plotTitle :: Maybe String
, plotTitleSize :: Double
, subTitle :: Maybe String
, subTitleSize :: Double
, xRange :: Maybe (Double, Double)
, yRange :: Maybe (Double, Double)
, samplingRate :: Double
, xLabel :: Maybe String
, xLabelSize :: Double
, yLabel :: Maybe String
, yLabelSize :: Double
, showXAxis :: Bool
, xLocation :: (AxisPosn, AxisSide)
, showYAxis :: Bool
, yLocation :: (AxisPosn, AxisSide)
, plotScaleX :: Scale
, plotScaleY :: Scale
, exportSize :: (Int, Int)
, fileName :: String
, plotType :: SeriesType
}
--------------------------------------------------------------------------------
defaultFigureSettings :: FigureSettings
defaultFigureSettings = FigureSettings {
fontFamily = "Sans"
, plotTitle = Nothing
, plotTitleSize = 10
, subTitle = Nothing
, subTitleSize = 10
, xRange = Nothing
, yRange = Nothing
, samplingRate = 50
, xLabel = Nothing
, xLabelSize = 10
, yLabel = Nothing
, yLabelSize = 10
, showXAxis = True
, xLocation = (Side Lower, Lower)
, showYAxis = True
, yLocation = (Side Lower, Lower)
, plotScaleX = Linear
, plotScaleY = Linear
, exportSize = (1000, 1000)
, fileName = "plot"
, plotType = Line
}
--------------------------------------------------------------------------------
data AdjustmentSettings = ASet {
initVal :: Double
, minBound :: Double
, maxBound :: Double
, stepIncr :: Double
, pageIncr :: Double
, pageSize :: Double
}
--------------------------------------------------------------------------------
aSetRange :: Double -> Double -> Double -> AdjustmentSettings
aSetRange x y z = ASet x y z 0.01 0.01 0.00
--------------------------------------------------------------------------------