packages feed

keera-hails-reactive-gtk-0.6.0: src/Graphics/UI/Gtk/Reactive/TextView.hs

-- | Publishes the main elements of a text view as reactive fields
--
-- Copyright   : (C) Keera Studios Ltd, 2013
-- License     : BSD3
-- Maintainer  : support@keera.co.uk
module Graphics.UI.Gtk.Reactive.TextView where

import Control.Monad (void)
import Graphics.UI.Gtk
import Data.ReactiveValue

textViewTextReactive :: TextView -> ReactiveFieldReadWrite IO String
textViewTextReactive e = ReactiveFieldReadWrite setter getter notifier
 where getter     = get e textViewBuffer >>= (`get` textBufferText)
       setter v   = get e textViewBuffer >>= (\b -> set b [textBufferText := v])
       notifier p = get e textViewBuffer >>= (\b -> void (on b bufferChanged p))