packages feed

dynobud-1.0.0.0: src/Dyno/Server/PlotTypes.hs

{-# OPTIONS_GHC -Wall #-}
--{-# Language ExistentialQuantification #-}
--{-# Language GADTs #-}

module Dyno.Server.PlotTypes
       ( Channel(..)
       , Message(..)
       , GraphInfo(..)
       , ListViewInfo(..)
       , AxisScaling(..)
       , MetaTree
--       , XAxisType(..)
       ) where

import Data.Time ( NominalDiffTime )
import qualified Graphics.UI.Gtk as Gtk

import Dyno.DirectCollocation.Dynamic ( DynPlotPoints, CollTrajMeta, MetaTree )

data ListViewInfo a = ListViewInfo { lviName :: String
                                   , lviType :: String
                                   , lviGetter :: Maybe (a -> [[(Double,Double)]])
                                   , lviMarked :: Bool
                                   }

--data XAxisType a = XAxisTime
--                 | XAxisCounter
--                 | XAxisStaticCounter
--                 | XAxisFun (String, a -> Double)

data AxisScaling = LogScaling
                 | LinearScaling

-- what the graph should draw
data GraphInfo =
  GraphInfo { giXScaling :: AxisScaling
            , giYScaling :: AxisScaling
            , giXRange :: Maybe (Double,Double)
            , giYRange :: Maybe (Double,Double)
            , giGetters :: [(String, DynPlotPoints Double -> [[(Double,Double)]])]
            }

data Message = Message (DynPlotPoints Double) Int NominalDiffTime CollTrajMeta
data Channel =
  Channel { chanName :: String
          , chanMsgStore :: Gtk.ListStore Message
          }