tinytools-vty-0.1.0.0: src/Potato/Flow/Vty/ToolOptions.hs
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE RecursiveDo #-}
module Potato.Flow.Vty.ToolOptions (
ToolOptionsWidgetConfig(..)
, ToolOptionsWidget(..)
, holdToolOptionsWidget
) where
import Relude
import Potato.Flow.Controller
import Potato.Flow.Vty.Common
import Potato.Reflex.Vty.Helpers
import Control.Monad.Fix
import Control.Monad.NodeId
import Reflex
data ToolOptionsWidgetConfig t = ToolOptionsWidgetConfig {
_toolOptionsWidgetConfig_tool :: Dynamic t Tool
, _toolOptionsWidgetConfig_widthDyn :: Dynamic t Int
}
data ToolOptionsWidget t = ToolOptionsWidget {
_toolOptionsWidget_setOption :: Event t ()
, _toolOptionsWidget_heightDyn :: Dynamic t Int
}
holdToolOptionsWidget :: forall t m. (PostBuild t m, MonadWidget t m)
=> ToolOptionsWidgetConfig t
-> m (ToolOptionsWidget t)
holdToolOptionsWidget ToolOptionsWidgetConfig {..} = mdo
return ToolOptionsWidget {
_toolOptionsWidget_setOption = never
, _toolOptionsWidget_heightDyn = constDyn 0
}