-- | Publishes the main elements of a toggle button module Graphics.UI.Gtk.Reactive.SpinButton where import Control.GFunctor import Data.ReactiveValue import Graphics.UI.Gtk import Graphics.UI.Gtk.Reactive.Property spinButtonValueIntReactive :: SpinButton -> ReactiveFieldReadWrite IO Int spinButtonValueIntReactive e = double_int <$$> reactivePropertyH e onValueSpinned spinButtonValue where double_int = bijection (round, fromIntegral) spinButtonAdjustmentReactive :: SpinButton -> ReactiveFieldReadWrite IO Adjustment spinButtonAdjustmentReactive = (`passiveProperty` spinButtonAdjustment) spinButtonValueIntEditReactive :: SpinButton -> ReactiveFieldReadWrite IO Int spinButtonValueIntEditReactive e = double_int <$$> reactivePropertyH e handler spinButtonValue where double_int = bijection (round, fromIntegral) handler = \s i -> do s `onValueSpinned` i s `onEditableChanged` i -- import Control.Monad -- spinButtonActiveReactive :: SpinButton -> ReactiveFieldReadWrite IO Int -- spinButtonActiveReactive e = ReactiveFieldReadWrite setter getter notifier -- where getter = spinButtonGetValueAsInt e -- setter = spinButtonSetValue e . fromIntegral -- notifier = void . (onValueSpinned e)