{-# LANGUAGE ConstraintKinds, GADTs, FlexibleContexts, MultiParamTypeClasses #-}
{-# LANGUAGE TypeOperators #-}
module Reflex.GI.Gtk.Input
(
MonadGtkSource(eventFromSignalWith)
, eventOnSignal
, eventOnSignal0
, eventFromSignalWith0
, eventOnSignal1
, eventFromSignalWith1
, eventOnSignal0R
, eventFromSignalWith0R
, eventOnSignal1R
, eventFromSignalWith1R
, behaviorOnSignal
, behaviorFromSignalWith
, behaviorOnSignal1
, behaviorFromSignalWith1
, behaviorOnSignal1R
, behaviorFromSignalWith1R
, dynamicOnSignal
, dynamicFromSignalWith
, dynamicOnSignal1
, dynamicFromSignalWith1
, dynamicOnSignal1R
, dynamicFromSignalWith1R
, eventOnAttribute
, eventFromAttributeWith
, behaviorOnAttribute
, behaviorFromAttributeWith
, dynamicOnAttribute
, dynamicFromAttributeWith
, FireAsync(..)
, Registerer
) where
import Data.GI.Base (GObject)
import Data.GI.Base.Attributes ( AttrGetC
, AttrLabel
, AttrLabelProxy
, get
)
import Data.GI.Base.Signals ( GObjectNotifySignalInfo
, HaskellCallbackType
, SignalHandlerId
, SignalInfo
, SignalProxy(PropertyNotify)
, on
)
import GHC.TypeLits (KnownSymbol)
import Reflex ( Behavior
, Dynamic
, Event
, MonadHold
, TriggerEvent
, hold
, holdDyn
)
import Reflex.GI.Gtk.Run.Class ( MonadRunGtk
, runGtk
)
class ( MonadRunGtk m
, TriggerEvent t m
) => MonadGtkSource t m where
eventFromSignalWith :: ( GObject object
, SignalInfo info
)
=> Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
type Registerer object info =
object -> SignalProxy object info -> HaskellCallbackType info -> IO SignalHandlerId
data FireAsync = FireAsync
| FireSync
deriving (Int -> FireAsync -> ShowS
[FireAsync] -> ShowS
FireAsync -> String
(Int -> FireAsync -> ShowS)
-> (FireAsync -> String)
-> ([FireAsync] -> ShowS)
-> Show FireAsync
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FireAsync -> ShowS
showsPrec :: Int -> FireAsync -> ShowS
$cshow :: FireAsync -> String
show :: FireAsync -> String
$cshowList :: [FireAsync] -> ShowS
showList :: [FireAsync] -> ShowS
Show, ReadPrec [FireAsync]
ReadPrec FireAsync
Int -> ReadS FireAsync
ReadS [FireAsync]
(Int -> ReadS FireAsync)
-> ReadS [FireAsync]
-> ReadPrec FireAsync
-> ReadPrec [FireAsync]
-> Read FireAsync
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS FireAsync
readsPrec :: Int -> ReadS FireAsync
$creadList :: ReadS [FireAsync]
readList :: ReadS [FireAsync]
$creadPrec :: ReadPrec FireAsync
readPrec :: ReadPrec FireAsync
$creadListPrec :: ReadPrec [FireAsync]
readListPrec :: ReadPrec [FireAsync]
Read, FireAsync -> FireAsync -> Bool
(FireAsync -> FireAsync -> Bool)
-> (FireAsync -> FireAsync -> Bool) -> Eq FireAsync
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FireAsync -> FireAsync -> Bool
== :: FireAsync -> FireAsync -> Bool
$c/= :: FireAsync -> FireAsync -> Bool
/= :: FireAsync -> FireAsync -> Bool
Eq)
eventOnSignal :: ( MonadGtkSource t m
, GObject object
, SignalInfo info
)
=> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
eventOnSignal :: forall t (m :: * -> *) object info a.
(MonadGtkSource t m, GObject object, SignalInfo info) =>
object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
eventOnSignal = Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
forall object info a.
(GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
forall t (m :: * -> *) object info a.
(MonadGtkSource t m, GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
eventFromSignalWith Registerer object info
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> IO SignalHandlerId
forall object info (m :: * -> *).
(GObject object, MonadIO m, SignalInfo info) =>
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> m SignalHandlerId
on FireAsync
FireSync
eventFromSignalWith0 :: ( MonadGtkSource t m
, GObject object
, SignalInfo info
, HaskellCallbackType info ~ IO ()
)
=> Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> m (Event t ())
eventFromSignalWith0 :: forall t (m :: * -> *) object info.
(MonadGtkSource t m, GObject object, SignalInfo info,
HaskellCallbackType info ~ IO ()) =>
Registerer object info
-> FireAsync -> object -> SignalProxy object info -> m (Event t ())
eventFromSignalWith0 Registerer object info
register FireAsync
sync object
object SignalProxy object info
signal =
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((() -> IO ()) -> HaskellCallbackType info)
-> m (Event t ())
forall object info a.
(GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
forall t (m :: * -> *) object info a.
(MonadGtkSource t m, GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
eventFromSignalWith Registerer object info
register FireAsync
sync object
object SignalProxy object info
signal ((() -> IO ()) -> () -> IO ()
forall a b. (a -> b) -> a -> b
$ ())
eventOnSignal0 :: ( MonadGtkSource t m
, HaskellCallbackType info ~ IO ()
, GObject object
, SignalInfo info
)
=> object
-> SignalProxy object info
-> m (Event t ())
eventOnSignal0 :: forall t (m :: * -> *) info object.
(MonadGtkSource t m, HaskellCallbackType info ~ IO (),
GObject object, SignalInfo info) =>
object -> SignalProxy object info -> m (Event t ())
eventOnSignal0 = Registerer object info
-> FireAsync -> object -> SignalProxy object info -> m (Event t ())
forall t (m :: * -> *) object info.
(MonadGtkSource t m, GObject object, SignalInfo info,
HaskellCallbackType info ~ IO ()) =>
Registerer object info
-> FireAsync -> object -> SignalProxy object info -> m (Event t ())
eventFromSignalWith0 Registerer object info
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> IO SignalHandlerId
forall object info (m :: * -> *).
(GObject object, MonadIO m, SignalInfo info) =>
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> m SignalHandlerId
on FireAsync
FireSync
eventFromSignalWith1 :: ( MonadGtkSource t m
, HaskellCallbackType info ~ (a -> IO ())
, GObject object
, SignalInfo info
)
=> Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> m (Event t a)
eventFromSignalWith1 :: forall t (m :: * -> *) info a object.
(MonadGtkSource t m, HaskellCallbackType info ~ (a -> IO ()),
GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync -> object -> SignalProxy object info -> m (Event t a)
eventFromSignalWith1 Registerer object info
register FireAsync
sync object
object SignalProxy object info
signal =
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
forall object info a.
(GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
forall t (m :: * -> *) object info a.
(MonadGtkSource t m, GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
eventFromSignalWith Registerer object info
register FireAsync
sync object
object SignalProxy object info
signal (a -> IO ()) -> HaskellCallbackType info
(a -> IO ()) -> a -> IO ()
forall a. a -> a
id
eventOnSignal1 :: ( MonadGtkSource t m
, HaskellCallbackType info ~ (a -> IO ())
, GObject object
, SignalInfo info
)
=> object
-> SignalProxy object info
-> m (Event t a)
eventOnSignal1 :: forall t (m :: * -> *) info a object.
(MonadGtkSource t m, HaskellCallbackType info ~ (a -> IO ()),
GObject object, SignalInfo info) =>
object -> SignalProxy object info -> m (Event t a)
eventOnSignal1 = Registerer object info
-> FireAsync -> object -> SignalProxy object info -> m (Event t a)
forall t (m :: * -> *) info a object.
(MonadGtkSource t m, HaskellCallbackType info ~ (a -> IO ()),
GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync -> object -> SignalProxy object info -> m (Event t a)
eventFromSignalWith1 Registerer object info
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> IO SignalHandlerId
forall object info (m :: * -> *).
(GObject object, MonadIO m, SignalInfo info) =>
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> m SignalHandlerId
on FireAsync
FireSync
eventFromSignalWith0R :: ( MonadGtkSource t m
, HaskellCallbackType info ~ IO b
, GObject object
, SignalInfo info
)
=> Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> b
-> m (Event t ())
eventFromSignalWith0R :: forall t (m :: * -> *) info b object.
(MonadGtkSource t m, HaskellCallbackType info ~ IO b,
GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> b
-> m (Event t ())
eventFromSignalWith0R Registerer object info
register FireAsync
sync object
obj SignalProxy object info
signal b
x =
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((() -> IO ()) -> HaskellCallbackType info)
-> m (Event t ())
forall object info a.
(GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
forall t (m :: * -> *) object info a.
(MonadGtkSource t m, GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
eventFromSignalWith Registerer object info
register FireAsync
sync object
obj SignalProxy object info
signal (((() -> IO ()) -> HaskellCallbackType info) -> m (Event t ()))
-> ((() -> IO ()) -> HaskellCallbackType info) -> m (Event t ())
forall a b. (a -> b) -> a -> b
$ \() -> IO ()
fire -> b
x b -> IO () -> IO b
forall a b. a -> IO b -> IO a
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ () -> IO ()
fire ()
eventOnSignal0R :: ( MonadGtkSource t m
, HaskellCallbackType info ~ IO b
, GObject object
, SignalInfo info
)
=> object
-> SignalProxy object info
-> b
-> m (Event t ())
eventOnSignal0R :: forall t (m :: * -> *) info b object.
(MonadGtkSource t m, HaskellCallbackType info ~ IO b,
GObject object, SignalInfo info) =>
object -> SignalProxy object info -> b -> m (Event t ())
eventOnSignal0R = Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> b
-> m (Event t ())
forall t (m :: * -> *) info b object.
(MonadGtkSource t m, HaskellCallbackType info ~ IO b,
GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> b
-> m (Event t ())
eventFromSignalWith0R Registerer object info
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> IO SignalHandlerId
forall object info (m :: * -> *).
(GObject object, MonadIO m, SignalInfo info) =>
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> m SignalHandlerId
on FireAsync
FireSync
eventFromSignalWith1R :: ( MonadGtkSource t m
, HaskellCallbackType info ~ (a -> IO b)
, GObject object
, SignalInfo info
)
=> Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> b
-> m (Event t a)
eventFromSignalWith1R :: forall t (m :: * -> *) info a b object.
(MonadGtkSource t m, HaskellCallbackType info ~ (a -> IO b),
GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> b
-> m (Event t a)
eventFromSignalWith1R Registerer object info
register FireAsync
sync object
obj SignalProxy object info
signal b
r =
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
forall object info a.
(GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
forall t (m :: * -> *) object info a.
(MonadGtkSource t m, GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
eventFromSignalWith Registerer object info
register FireAsync
sync object
obj SignalProxy object info
signal (((a -> IO ()) -> HaskellCallbackType info) -> m (Event t a))
-> ((a -> IO ()) -> HaskellCallbackType info) -> m (Event t a)
forall a b. (a -> b) -> a -> b
$ \a -> IO ()
fire a
v -> b
r b -> IO () -> IO b
forall a b. a -> IO b -> IO a
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ a -> IO ()
fire a
v
eventOnSignal1R :: ( MonadGtkSource t m
, HaskellCallbackType info ~ (a -> IO b)
, GObject object
, SignalInfo info
)
=> object
-> SignalProxy object info
-> b
-> m (Event t a)
eventOnSignal1R :: forall t (m :: * -> *) info a b object.
(MonadGtkSource t m, HaskellCallbackType info ~ (a -> IO b),
GObject object, SignalInfo info) =>
object -> SignalProxy object info -> b -> m (Event t a)
eventOnSignal1R = Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> b
-> m (Event t a)
forall t (m :: * -> *) info a b object.
(MonadGtkSource t m, HaskellCallbackType info ~ (a -> IO b),
GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> b
-> m (Event t a)
eventFromSignalWith1R Registerer object info
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> IO SignalHandlerId
forall object info (m :: * -> *).
(GObject object, MonadIO m, SignalInfo info) =>
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> m SignalHandlerId
on FireAsync
FireSync
behaviorFromSignalWith :: ( MonadGtkSource t m
, MonadHold t m
, GObject object
, SignalInfo info
)
=> Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Behavior t a)
behaviorFromSignalWith :: forall t (m :: * -> *) object info a.
(MonadGtkSource t m, MonadHold t m, GObject object,
SignalInfo info) =>
Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Behavior t a)
behaviorFromSignalWith Registerer object info
register FireAsync
sync a
initial object
object SignalProxy object info
signal (a -> IO ()) -> HaskellCallbackType info
f =
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
forall object info a.
(GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
forall t (m :: * -> *) object info a.
(MonadGtkSource t m, GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
eventFromSignalWith Registerer object info
register FireAsync
sync object
object SignalProxy object info
signal (a -> IO ()) -> HaskellCallbackType info
f m (Event t a)
-> (Event t a -> m (Behavior t a)) -> m (Behavior t a)
forall a b. m a -> (a -> m b) -> m b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= a -> Event t a -> m (Behavior t a)
forall a. a -> Event t a -> m (Behavior t a)
forall {k} (t :: k) (m :: * -> *) a.
MonadHold t m =>
a -> Event t a -> m (Behavior t a)
hold a
initial
behaviorOnSignal :: ( MonadGtkSource t m
, MonadHold t m
, GObject object
, SignalInfo info
)
=> a
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Behavior t a)
behaviorOnSignal :: forall t (m :: * -> *) object info a.
(MonadGtkSource t m, MonadHold t m, GObject object,
SignalInfo info) =>
a
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Behavior t a)
behaviorOnSignal = Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Behavior t a)
forall t (m :: * -> *) object info a.
(MonadGtkSource t m, MonadHold t m, GObject object,
SignalInfo info) =>
Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Behavior t a)
behaviorFromSignalWith Registerer object info
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> IO SignalHandlerId
forall object info (m :: * -> *).
(GObject object, MonadIO m, SignalInfo info) =>
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> m SignalHandlerId
on FireAsync
FireSync
behaviorFromSignalWith1 :: ( MonadGtkSource t m
, MonadHold t m
, HaskellCallbackType info ~ (a -> IO ())
, GObject object
, SignalInfo info
)
=> Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> m (Behavior t a)
behaviorFromSignalWith1 :: forall t (m :: * -> *) info a object.
(MonadGtkSource t m, MonadHold t m,
HaskellCallbackType info ~ (a -> IO ()), GObject object,
SignalInfo info) =>
Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> m (Behavior t a)
behaviorFromSignalWith1 Registerer object info
register FireAsync
sync a
initial object
object SignalProxy object info
signal =
Registerer object info
-> FireAsync -> object -> SignalProxy object info -> m (Event t a)
forall t (m :: * -> *) info a object.
(MonadGtkSource t m, HaskellCallbackType info ~ (a -> IO ()),
GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync -> object -> SignalProxy object info -> m (Event t a)
eventFromSignalWith1 Registerer object info
register FireAsync
sync object
object SignalProxy object info
signal m (Event t a)
-> (Event t a -> m (Behavior t a)) -> m (Behavior t a)
forall a b. m a -> (a -> m b) -> m b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= a -> Event t a -> m (Behavior t a)
forall a. a -> Event t a -> m (Behavior t a)
forall {k} (t :: k) (m :: * -> *) a.
MonadHold t m =>
a -> Event t a -> m (Behavior t a)
hold a
initial
behaviorOnSignal1 :: ( MonadGtkSource t m
, MonadHold t m
, HaskellCallbackType info ~ (a -> IO ())
, GObject object
, SignalInfo info
)
=> a
-> object
-> SignalProxy object info
-> m (Behavior t a)
behaviorOnSignal1 :: forall t (m :: * -> *) info a object.
(MonadGtkSource t m, MonadHold t m,
HaskellCallbackType info ~ (a -> IO ()), GObject object,
SignalInfo info) =>
a -> object -> SignalProxy object info -> m (Behavior t a)
behaviorOnSignal1 = Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> m (Behavior t a)
forall t (m :: * -> *) info a object.
(MonadGtkSource t m, MonadHold t m,
HaskellCallbackType info ~ (a -> IO ()), GObject object,
SignalInfo info) =>
Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> m (Behavior t a)
behaviorFromSignalWith1 Registerer object info
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> IO SignalHandlerId
forall object info (m :: * -> *).
(GObject object, MonadIO m, SignalInfo info) =>
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> m SignalHandlerId
on FireAsync
FireSync
behaviorFromSignalWith1R :: ( MonadGtkSource t m
, MonadHold t m
, HaskellCallbackType info ~ (a -> IO b)
, GObject object
, SignalInfo info
)
=> Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> b
-> m (Behavior t a)
behaviorFromSignalWith1R :: forall t (m :: * -> *) info a b object.
(MonadGtkSource t m, MonadHold t m,
HaskellCallbackType info ~ (a -> IO b), GObject object,
SignalInfo info) =>
Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> b
-> m (Behavior t a)
behaviorFromSignalWith1R Registerer object info
register FireAsync
sync a
initial object
object SignalProxy object info
signal b
result =
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> b
-> m (Event t a)
forall t (m :: * -> *) info a b object.
(MonadGtkSource t m, HaskellCallbackType info ~ (a -> IO b),
GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> b
-> m (Event t a)
eventFromSignalWith1R Registerer object info
register FireAsync
sync object
object SignalProxy object info
signal b
result m (Event t a)
-> (Event t a -> m (Behavior t a)) -> m (Behavior t a)
forall a b. m a -> (a -> m b) -> m b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= a -> Event t a -> m (Behavior t a)
forall a. a -> Event t a -> m (Behavior t a)
forall {k} (t :: k) (m :: * -> *) a.
MonadHold t m =>
a -> Event t a -> m (Behavior t a)
hold a
initial
behaviorOnSignal1R :: ( MonadGtkSource t m
, MonadHold t m
, HaskellCallbackType info ~ (a -> IO b)
, GObject object
, SignalInfo info
)
=> a
-> object
-> SignalProxy object info
-> b
-> m (Behavior t a)
behaviorOnSignal1R :: forall t (m :: * -> *) info a b object.
(MonadGtkSource t m, MonadHold t m,
HaskellCallbackType info ~ (a -> IO b), GObject object,
SignalInfo info) =>
a -> object -> SignalProxy object info -> b -> m (Behavior t a)
behaviorOnSignal1R = Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> b
-> m (Behavior t a)
forall t (m :: * -> *) info a b object.
(MonadGtkSource t m, MonadHold t m,
HaskellCallbackType info ~ (a -> IO b), GObject object,
SignalInfo info) =>
Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> b
-> m (Behavior t a)
behaviorFromSignalWith1R Registerer object info
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> IO SignalHandlerId
forall object info (m :: * -> *).
(GObject object, MonadIO m, SignalInfo info) =>
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> m SignalHandlerId
on FireAsync
FireSync
dynamicFromSignalWith :: ( MonadGtkSource t m
, MonadHold t m
, GObject object
, SignalInfo info
)
=> Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Dynamic t a)
dynamicFromSignalWith :: forall t (m :: * -> *) object info a.
(MonadGtkSource t m, MonadHold t m, GObject object,
SignalInfo info) =>
Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Dynamic t a)
dynamicFromSignalWith Registerer object info
register FireAsync
sync a
initial object
object SignalProxy object info
signal (a -> IO ()) -> HaskellCallbackType info
f =
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
forall object info a.
(GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
forall t (m :: * -> *) object info a.
(MonadGtkSource t m, GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
eventFromSignalWith Registerer object info
register FireAsync
sync object
object SignalProxy object info
signal (a -> IO ()) -> HaskellCallbackType info
f m (Event t a) -> (Event t a -> m (Dynamic t a)) -> m (Dynamic t a)
forall a b. m a -> (a -> m b) -> m b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= a -> Event t a -> m (Dynamic t a)
forall a. a -> Event t a -> m (Dynamic t a)
forall {k} (t :: k) (m :: * -> *) a.
MonadHold t m =>
a -> Event t a -> m (Dynamic t a)
holdDyn a
initial
dynamicOnSignal :: ( MonadGtkSource t m
, MonadHold t m
, GObject object
, SignalInfo info
)
=> a
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Dynamic t a)
dynamicOnSignal :: forall t (m :: * -> *) object info a.
(MonadGtkSource t m, MonadHold t m, GObject object,
SignalInfo info) =>
a
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Dynamic t a)
dynamicOnSignal = Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Dynamic t a)
forall t (m :: * -> *) object info a.
(MonadGtkSource t m, MonadHold t m, GObject object,
SignalInfo info) =>
Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Dynamic t a)
dynamicFromSignalWith Registerer object info
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> IO SignalHandlerId
forall object info (m :: * -> *).
(GObject object, MonadIO m, SignalInfo info) =>
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> m SignalHandlerId
on FireAsync
FireSync
dynamicFromSignalWith1 :: ( MonadGtkSource t m
, MonadHold t m
, HaskellCallbackType info ~ (a -> IO ())
, GObject object
, SignalInfo info
)
=> Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> m (Dynamic t a)
dynamicFromSignalWith1 :: forall t (m :: * -> *) info a object.
(MonadGtkSource t m, MonadHold t m,
HaskellCallbackType info ~ (a -> IO ()), GObject object,
SignalInfo info) =>
Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> m (Dynamic t a)
dynamicFromSignalWith1 Registerer object info
register FireAsync
sync a
initial object
object SignalProxy object info
signal =
Registerer object info
-> FireAsync -> object -> SignalProxy object info -> m (Event t a)
forall t (m :: * -> *) info a object.
(MonadGtkSource t m, HaskellCallbackType info ~ (a -> IO ()),
GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync -> object -> SignalProxy object info -> m (Event t a)
eventFromSignalWith1 Registerer object info
register FireAsync
sync object
object SignalProxy object info
signal m (Event t a) -> (Event t a -> m (Dynamic t a)) -> m (Dynamic t a)
forall a b. m a -> (a -> m b) -> m b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= a -> Event t a -> m (Dynamic t a)
forall a. a -> Event t a -> m (Dynamic t a)
forall {k} (t :: k) (m :: * -> *) a.
MonadHold t m =>
a -> Event t a -> m (Dynamic t a)
holdDyn a
initial
dynamicOnSignal1 :: ( MonadGtkSource t m
, MonadHold t m
, HaskellCallbackType info ~ (a -> IO ())
, GObject object
, SignalInfo info
)
=> a
-> object
-> SignalProxy object info
-> m (Dynamic t a)
dynamicOnSignal1 :: forall t (m :: * -> *) info a object.
(MonadGtkSource t m, MonadHold t m,
HaskellCallbackType info ~ (a -> IO ()), GObject object,
SignalInfo info) =>
a -> object -> SignalProxy object info -> m (Dynamic t a)
dynamicOnSignal1 = Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> m (Dynamic t a)
forall t (m :: * -> *) info a object.
(MonadGtkSource t m, MonadHold t m,
HaskellCallbackType info ~ (a -> IO ()), GObject object,
SignalInfo info) =>
Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> m (Dynamic t a)
dynamicFromSignalWith1 Registerer object info
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> IO SignalHandlerId
forall object info (m :: * -> *).
(GObject object, MonadIO m, SignalInfo info) =>
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> m SignalHandlerId
on FireAsync
FireSync
dynamicFromSignalWith1R :: ( MonadGtkSource t m
, MonadHold t m
, HaskellCallbackType info ~ (a -> IO b)
, GObject object
, SignalInfo info
)
=> Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> b
-> m (Dynamic t a)
dynamicFromSignalWith1R :: forall t (m :: * -> *) info a b object.
(MonadGtkSource t m, MonadHold t m,
HaskellCallbackType info ~ (a -> IO b), GObject object,
SignalInfo info) =>
Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> b
-> m (Dynamic t a)
dynamicFromSignalWith1R Registerer object info
register FireAsync
sync a
initial object
object SignalProxy object info
signal b
result =
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> b
-> m (Event t a)
forall t (m :: * -> *) info a b object.
(MonadGtkSource t m, HaskellCallbackType info ~ (a -> IO b),
GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> b
-> m (Event t a)
eventFromSignalWith1R Registerer object info
register FireAsync
sync object
object SignalProxy object info
signal b
result m (Event t a) -> (Event t a -> m (Dynamic t a)) -> m (Dynamic t a)
forall a b. m a -> (a -> m b) -> m b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= a -> Event t a -> m (Dynamic t a)
forall a. a -> Event t a -> m (Dynamic t a)
forall {k} (t :: k) (m :: * -> *) a.
MonadHold t m =>
a -> Event t a -> m (Dynamic t a)
holdDyn a
initial
dynamicOnSignal1R :: ( MonadGtkSource t m
, MonadHold t m
, HaskellCallbackType info ~ (a -> IO b)
, GObject object
, SignalInfo info
)
=> a
-> object
-> SignalProxy object info
-> b
-> m (Dynamic t a)
dynamicOnSignal1R :: forall t (m :: * -> *) info a b object.
(MonadGtkSource t m, MonadHold t m,
HaskellCallbackType info ~ (a -> IO b), GObject object,
SignalInfo info) =>
a -> object -> SignalProxy object info -> b -> m (Dynamic t a)
dynamicOnSignal1R = Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> b
-> m (Dynamic t a)
forall t (m :: * -> *) info a b object.
(MonadGtkSource t m, MonadHold t m,
HaskellCallbackType info ~ (a -> IO b), GObject object,
SignalInfo info) =>
Registerer object info
-> FireAsync
-> a
-> object
-> SignalProxy object info
-> b
-> m (Dynamic t a)
dynamicFromSignalWith1R Registerer object info
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> IO SignalHandlerId
forall object info (m :: * -> *).
(GObject object, MonadIO m, SignalInfo info) =>
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> m SignalHandlerId
on FireAsync
FireSync
eventFromAttributeWith :: ( MonadGtkSource t m
, AttrGetC info object attr value
, GObject object
, KnownSymbol (AttrLabel info)
)
=> Registerer object GObjectNotifySignalInfo
-> FireAsync
-> object
-> AttrLabelProxy attr
-> m (Event t value)
eventFromAttributeWith :: forall t (m :: * -> *) info object (attr :: Symbol) value.
(MonadGtkSource t m, AttrGetC info object attr value,
GObject object, KnownSymbol (AttrLabel info)) =>
Registerer object GObjectNotifySignalInfo
-> FireAsync -> object -> AttrLabelProxy attr -> m (Event t value)
eventFromAttributeWith Registerer object GObjectNotifySignalInfo
register FireAsync
sync object
object AttrLabelProxy attr
attr =
Registerer object GObjectNotifySignalInfo
-> FireAsync
-> object
-> SignalProxy object GObjectNotifySignalInfo
-> ((value -> IO ())
-> HaskellCallbackType GObjectNotifySignalInfo)
-> m (Event t value)
forall object info a.
(GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
forall t (m :: * -> *) object info a.
(MonadGtkSource t m, GObject object, SignalInfo info) =>
Registerer object info
-> FireAsync
-> object
-> SignalProxy object info
-> ((a -> IO ()) -> HaskellCallbackType info)
-> m (Event t a)
eventFromSignalWith Registerer object GObjectNotifySignalInfo
register FireAsync
sync object
object (AttrLabelProxy attr -> SignalProxy object GObjectNotifySignalInfo
forall info1 (propName :: Symbol) object (pl :: Symbol).
(info1 ~ ResolveAttribute propName object, AttrInfo info1,
pl ~ AttrLabel info1, KnownSymbol pl) =>
AttrLabelProxy propName
-> SignalProxy object GObjectNotifySignalInfo
PropertyNotify AttrLabelProxy attr
attr) (((value -> IO ()) -> HaskellCallbackType GObjectNotifySignalInfo)
-> m (Event t value))
-> ((value -> IO ())
-> HaskellCallbackType GObjectNotifySignalInfo)
-> m (Event t value)
forall a b. (a -> b) -> a -> b
$ \value -> IO ()
fire GParamSpec
_ ->
object -> AttrLabelProxy attr -> IO value
forall info (attr :: Symbol) obj result (m :: * -> *).
(AttrGetC info obj attr result, MonadIO m) =>
obj -> AttrLabelProxy attr -> m result
get object
object AttrLabelProxy attr
attr IO value -> (value -> IO ()) -> IO ()
forall a b. IO a -> (a -> IO b) -> IO b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= value -> IO ()
fire
eventOnAttribute :: ( MonadGtkSource t m
, AttrGetC info object attr value
, GObject object
, KnownSymbol (AttrLabel info)
)
=> object
-> AttrLabelProxy attr
-> m (Event t value)
eventOnAttribute :: forall t (m :: * -> *) info object (attr :: Symbol) value.
(MonadGtkSource t m, AttrGetC info object attr value,
GObject object, KnownSymbol (AttrLabel info)) =>
object -> AttrLabelProxy attr -> m (Event t value)
eventOnAttribute = Registerer object GObjectNotifySignalInfo
-> FireAsync -> object -> AttrLabelProxy attr -> m (Event t value)
forall t (m :: * -> *) info object (attr :: Symbol) value.
(MonadGtkSource t m, AttrGetC info object attr value,
GObject object, KnownSymbol (AttrLabel info)) =>
Registerer object GObjectNotifySignalInfo
-> FireAsync -> object -> AttrLabelProxy attr -> m (Event t value)
eventFromAttributeWith Registerer object GObjectNotifySignalInfo
object
-> SignalProxy object GObjectNotifySignalInfo
-> ((?self::object) => HaskellCallbackType GObjectNotifySignalInfo)
-> IO SignalHandlerId
forall object info (m :: * -> *).
(GObject object, MonadIO m, SignalInfo info) =>
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> m SignalHandlerId
on FireAsync
FireSync
behaviorFromAttributeWith :: ( MonadGtkSource t m
, MonadHold t m
, AttrGetC info object attr value
, GObject object
, KnownSymbol (AttrLabel info)
)
=> Registerer object GObjectNotifySignalInfo
-> FireAsync
-> object
-> AttrLabelProxy attr
-> m (Behavior t value)
behaviorFromAttributeWith :: forall t (m :: * -> *) info object (attr :: Symbol) value.
(MonadGtkSource t m, MonadHold t m,
AttrGetC info object attr value, GObject object,
KnownSymbol (AttrLabel info)) =>
Registerer object GObjectNotifySignalInfo
-> FireAsync
-> object
-> AttrLabelProxy attr
-> m (Behavior t value)
behaviorFromAttributeWith Registerer object GObjectNotifySignalInfo
register FireAsync
sync object
object AttrLabelProxy attr
attr = do
value
initial <- IO value -> m value
forall a. IO a -> m a
forall (m :: * -> *) a. MonadRunGtk m => IO a -> m a
runGtk (IO value -> m value) -> IO value -> m value
forall a b. (a -> b) -> a -> b
$ object -> AttrLabelProxy attr -> IO value
forall info (attr :: Symbol) obj result (m :: * -> *).
(AttrGetC info obj attr result, MonadIO m) =>
obj -> AttrLabelProxy attr -> m result
get object
object AttrLabelProxy attr
attr
Registerer object GObjectNotifySignalInfo
-> FireAsync -> object -> AttrLabelProxy attr -> m (Event t value)
forall t (m :: * -> *) info object (attr :: Symbol) value.
(MonadGtkSource t m, AttrGetC info object attr value,
GObject object, KnownSymbol (AttrLabel info)) =>
Registerer object GObjectNotifySignalInfo
-> FireAsync -> object -> AttrLabelProxy attr -> m (Event t value)
eventFromAttributeWith Registerer object GObjectNotifySignalInfo
register FireAsync
sync object
object AttrLabelProxy attr
attr m (Event t value)
-> (Event t value -> m (Behavior t value)) -> m (Behavior t value)
forall a b. m a -> (a -> m b) -> m b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= value -> Event t value -> m (Behavior t value)
forall a. a -> Event t a -> m (Behavior t a)
forall {k} (t :: k) (m :: * -> *) a.
MonadHold t m =>
a -> Event t a -> m (Behavior t a)
hold value
initial
behaviorOnAttribute :: ( MonadGtkSource t m
, MonadHold t m
, AttrGetC info object attr value
, GObject object
, KnownSymbol (AttrLabel info)
)
=> object
-> AttrLabelProxy attr
-> m (Behavior t value)
behaviorOnAttribute :: forall t (m :: * -> *) info object (attr :: Symbol) value.
(MonadGtkSource t m, MonadHold t m,
AttrGetC info object attr value, GObject object,
KnownSymbol (AttrLabel info)) =>
object -> AttrLabelProxy attr -> m (Behavior t value)
behaviorOnAttribute = Registerer object GObjectNotifySignalInfo
-> FireAsync
-> object
-> AttrLabelProxy attr
-> m (Behavior t value)
forall t (m :: * -> *) info object (attr :: Symbol) value.
(MonadGtkSource t m, MonadHold t m,
AttrGetC info object attr value, GObject object,
KnownSymbol (AttrLabel info)) =>
Registerer object GObjectNotifySignalInfo
-> FireAsync
-> object
-> AttrLabelProxy attr
-> m (Behavior t value)
behaviorFromAttributeWith Registerer object GObjectNotifySignalInfo
object
-> SignalProxy object GObjectNotifySignalInfo
-> ((?self::object) => HaskellCallbackType GObjectNotifySignalInfo)
-> IO SignalHandlerId
forall object info (m :: * -> *).
(GObject object, MonadIO m, SignalInfo info) =>
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> m SignalHandlerId
on FireAsync
FireSync
dynamicFromAttributeWith :: ( MonadGtkSource t m
, MonadHold t m
, AttrGetC info object attr value
, GObject object
, KnownSymbol (AttrLabel info)
)
=> Registerer object GObjectNotifySignalInfo
-> FireAsync
-> object
-> AttrLabelProxy attr
-> m (Dynamic t value)
dynamicFromAttributeWith :: forall t (m :: * -> *) info object (attr :: Symbol) value.
(MonadGtkSource t m, MonadHold t m,
AttrGetC info object attr value, GObject object,
KnownSymbol (AttrLabel info)) =>
Registerer object GObjectNotifySignalInfo
-> FireAsync
-> object
-> AttrLabelProxy attr
-> m (Dynamic t value)
dynamicFromAttributeWith Registerer object GObjectNotifySignalInfo
register FireAsync
sync object
object AttrLabelProxy attr
attr = do
value
initial <- IO value -> m value
forall a. IO a -> m a
forall (m :: * -> *) a. MonadRunGtk m => IO a -> m a
runGtk (IO value -> m value) -> IO value -> m value
forall a b. (a -> b) -> a -> b
$ object -> AttrLabelProxy attr -> IO value
forall info (attr :: Symbol) obj result (m :: * -> *).
(AttrGetC info obj attr result, MonadIO m) =>
obj -> AttrLabelProxy attr -> m result
get object
object AttrLabelProxy attr
attr
Registerer object GObjectNotifySignalInfo
-> FireAsync -> object -> AttrLabelProxy attr -> m (Event t value)
forall t (m :: * -> *) info object (attr :: Symbol) value.
(MonadGtkSource t m, AttrGetC info object attr value,
GObject object, KnownSymbol (AttrLabel info)) =>
Registerer object GObjectNotifySignalInfo
-> FireAsync -> object -> AttrLabelProxy attr -> m (Event t value)
eventFromAttributeWith Registerer object GObjectNotifySignalInfo
register FireAsync
sync object
object AttrLabelProxy attr
attr m (Event t value)
-> (Event t value -> m (Dynamic t value)) -> m (Dynamic t value)
forall a b. m a -> (a -> m b) -> m b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= value -> Event t value -> m (Dynamic t value)
forall a. a -> Event t a -> m (Dynamic t a)
forall {k} (t :: k) (m :: * -> *) a.
MonadHold t m =>
a -> Event t a -> m (Dynamic t a)
holdDyn value
initial
dynamicOnAttribute :: ( MonadGtkSource t m
, MonadHold t m
, AttrGetC info object attr value
, GObject object
, KnownSymbol (AttrLabel info)
)
=> object
-> AttrLabelProxy attr
-> m (Dynamic t value)
dynamicOnAttribute :: forall t (m :: * -> *) info object (attr :: Symbol) value.
(MonadGtkSource t m, MonadHold t m,
AttrGetC info object attr value, GObject object,
KnownSymbol (AttrLabel info)) =>
object -> AttrLabelProxy attr -> m (Dynamic t value)
dynamicOnAttribute = Registerer object GObjectNotifySignalInfo
-> FireAsync
-> object
-> AttrLabelProxy attr
-> m (Dynamic t value)
forall t (m :: * -> *) info object (attr :: Symbol) value.
(MonadGtkSource t m, MonadHold t m,
AttrGetC info object attr value, GObject object,
KnownSymbol (AttrLabel info)) =>
Registerer object GObjectNotifySignalInfo
-> FireAsync
-> object
-> AttrLabelProxy attr
-> m (Dynamic t value)
dynamicFromAttributeWith Registerer object GObjectNotifySignalInfo
object
-> SignalProxy object GObjectNotifySignalInfo
-> ((?self::object) => HaskellCallbackType GObjectNotifySignalInfo)
-> IO SignalHandlerId
forall object info (m :: * -> *).
(GObject object, MonadIO m, SignalInfo info) =>
object
-> SignalProxy object info
-> ((?self::object) => HaskellCallbackType info)
-> m SignalHandlerId
on FireAsync
FireSync