packages feed

Plot-ho-matic 0.10.0.0 → 0.10.1.0

raw patch · 6 files changed

+31/−22 lines, 6 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ PlotHo: LinearScalingAutoRange :: AxisType
+ PlotHo: LinearScalingHistoryRange :: AxisType
+ PlotHo: LinearScalingManualRange :: AxisType
+ PlotHo: LogScaling :: AxisType
+ PlotHo: [defaultXAxis] :: PlotterOptions -> AxisType
+ PlotHo: [defaultYAxis] :: PlotterOptions -> AxisType
+ PlotHo: data AxisType
- PlotHo: PlotterOptions :: Double -> PlotterOptions
+ PlotHo: PlotterOptions :: Double -> AxisType -> AxisType -> PlotterOptions

Files

CHANGELOG.md view
@@ -1,3 +1,8 @@+0.10.1.0+---+* set default xaxis types+* move reset axis range buttons higher+ 0.10.0.0 --- * Better error messages when the "impossible" happens :b
Plot-ho-matic.cabal view
@@ -1,5 +1,5 @@ name:                Plot-ho-matic-version:             0.10.0.0+version:             0.10.1.0 synopsis:            Real-time line plotter for generic data license:             BSD3 license-file:        LICENSE
src/PlotHo.hs view
@@ -13,6 +13,7 @@          runPlotter        , PlotterOptions(..)        , Channel+       , AxisType(..)        , XAxisType(..)        , newHistoryChannel        , Meta@@ -29,7 +30,7 @@ import PlotHo.Channel ( newChannel ) import PlotHo.HistoryChannel ( Meta, XAxisType(..), newHistoryChannel, newHistoryChannel' ) import PlotHo.Plotter ( runPlotter )-import PlotHo.PlotTypes ( Channel, PlotterOptions(..) )+import PlotHo.PlotTypes ( AxisType(..), Channel, PlotterOptions(..) )  -- $simple --
src/PlotHo/GraphWidget.hs view
@@ -89,7 +89,7 @@   signalSelector <- newSignalSelectorArea elements redraw    largestRangeMVar <- CC.newMVar (XY defaultHistoryRange defaultHistoryRange)-  optionsWidget <- makeOptionsWidget largestRangeMVar redraw+  optionsWidget <- makeOptionsWidget options largestRangeMVar redraw    let handleDraw :: Render ()       handleDraw = do
src/PlotHo/OptionsWidget.hs view
@@ -24,8 +24,8 @@     , owGetAxes :: IO (Axes Double)     } -makeOptionsWidget :: CC.MVar (XY (Double, Double)) -> IO () -> IO OptionsWidget-makeOptionsWidget largestRangeMVar redraw = do+makeOptionsWidget :: PlotterOptions -> CC.MVar (XY (Double, Double)) -> IO () -> IO OptionsWidget+makeOptionsWidget plotterOptions largestRangeMVar redraw = do   -- user selectable range   xRangeEntry <- Gtk.entryNew   yRangeEntry <- Gtk.entryNew@@ -69,12 +69,7 @@   -- linear or log scaling on the x and y axis?   let updateScaling scalingSelector scalingRef = do         k <- Gtk.comboBoxGetActive scalingSelector-        _ <- case k of-          0 -> writeIORef scalingRef LinearScalingAutoRange-          1 -> writeIORef scalingRef LinearScalingHistoryRange-          2 -> writeIORef scalingRef LinearScalingManualRange-          3 -> writeIORef scalingRef LogScaling-          _ -> error "the \"impossible\" happened: scaling comboBox index should be < 4"+        writeIORef scalingRef (toEnum k)         redraw    xScalingSelector <- Gtk.comboBoxNewText@@ -83,13 +78,16 @@         ["linear (auto)", "linear (history)", "linear (manual)", "logarithmic (auto)"]   mapM_ (Gtk.comboBoxAppendText xScalingSelector . T.pack) scalingOptions   mapM_ (Gtk.comboBoxAppendText yScalingSelector . T.pack) scalingOptions-  Gtk.comboBoxSetActive xScalingSelector 0-  Gtk.comboBoxSetActive yScalingSelector 0++  Gtk.comboBoxSetActive xScalingSelector (fromEnum (defaultXAxis plotterOptions))+  Gtk.comboBoxSetActive yScalingSelector (fromEnum (defaultYAxis plotterOptions))+   xScalingBox <- labeledWidget "x scaling:" xScalingSelector   yScalingBox <- labeledWidget "y scaling:" yScalingSelector -  xScalingRef <- newIORef LinearScalingAutoRange-  yScalingRef <- newIORef LinearScalingAutoRange+  xScalingRef <- newIORef (defaultXAxis plotterOptions)+  yScalingRef <- newIORef (defaultYAxis plotterOptions)+   updateScaling xScalingSelector xScalingRef   updateScaling yScalingSelector yScalingRef   void $ on xScalingSelector Gtk.changed (updateScaling xScalingSelector xScalingRef)@@ -107,18 +105,18 @@   vbox <- Gtk.vBoxNew False 4    Gtk.set vbox-    [ Gtk.containerChild := xScalingBox+    [ Gtk.containerChild := resetXHistoryButton+    , Gtk.boxChildPacking   resetXHistoryButton := Gtk.PackNatural+    , Gtk.containerChild := xScalingBox     , Gtk.boxChildPacking   xScalingBox := Gtk.PackNatural     , Gtk.containerChild := xRangeBox     , Gtk.boxChildPacking   xRangeBox := Gtk.PackNatural-    , Gtk.containerChild := resetXHistoryButton-    , Gtk.boxChildPacking   resetXHistoryButton := Gtk.PackNatural+    , Gtk.containerChild := resetYHistoryButton+    , Gtk.boxChildPacking   resetYHistoryButton := Gtk.PackNatural     , Gtk.containerChild := yScalingBox     , Gtk.boxChildPacking   yScalingBox := Gtk.PackNatural     , Gtk.containerChild := yRangeBox     , Gtk.boxChildPacking   yRangeBox := Gtk.PackNatural-    , Gtk.containerChild := resetYHistoryButton-    , Gtk.boxChildPacking   resetYHistoryButton := Gtk.PackNatural     ]    return
src/PlotHo/PlotTypes.hs view
@@ -63,10 +63,11 @@        )  data AxisType-  = LogScaling-  | LinearScalingAutoRange+  = LinearScalingAutoRange   | LinearScalingHistoryRange   | LinearScalingManualRange+  | LogScaling+  deriving (Enum)  defaultHistoryRange :: (Double, Double) defaultHistoryRange = (read "Infinity", - read "Infinity")@@ -109,10 +110,14 @@ data PlotterOptions   = PlotterOptions     { maxDrawRate :: Double -- ^ limit the draw frequency to this number in Hz+    , defaultXAxis :: AxisType+    , defaultYAxis :: AxisType     }  instance Default PlotterOptions where   def =     PlotterOptions     { maxDrawRate = 40+    , defaultXAxis = LinearScalingAutoRange+    , defaultYAxis = LinearScalingAutoRange     }