lhae-0.0.2: src/View.hs
module View (View(..),Info(..),onGrid,isGridOpen
,info)
where
import qualified Graphics.UI.WX as WX
import qualified View.Component.Grid as Grid
import qualified View.Component.TextWindow as TextWindow
import qualified View.Component.Notebook as Notebook
data View = View { frame :: WX.Frame ()
, formulaInput :: TextWindow.TextWindow
, notebook :: Notebook.Notebook
, current :: WX.Var (Maybe Grid.Grid)
}
data Info = Info { numDataRows :: IO Int
, numDataColumns :: IO Int
}
onGrid :: View -> (Grid.Grid -> IO a) -> IO a
onGrid view f = WX.varGet (current view) >>= \(Just grid) -> f grid
isGridOpen :: View -> IO Bool
isGridOpen view = do
current <- WX.varGet $ current view
return $ case current of
Nothing -> False
_ -> True
info :: View -> Info
info view = Info { numDataRows = onGrid view Grid.numDataRows
, numDataColumns = onGrid view Grid.numDataColumns
}