packages feed

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
  }