module GUI.MLens.Gtk.Interface
( I (..)
, ListLayout (..)
) where
import Control.Monad.Free
import Data.MLens.Ref
data I m
= Label (Free m String)
| Button { label_ :: Free m String
, action_ :: Free m (Maybe (m ()))
}
| Checkbox (Ref m Bool)
| Combobox [String] (Ref m Int)
| Entry (Ref m String)
| List ListLayout [I m]
| Notebook [(String, I m)]
| forall a . Eq a
=> Cell { remember_content_ :: Bool
, underlying_value_ :: m a
, dynamic_interface_ :: a -> I m
}
| Action (m (I m))
data ListLayout
= Horizontal | Vertical