module System.GIO.Signals (
module System.Glib.Signals,
connect_NONE__NONE,
connect_STRING_STRING_STRING_ENUM__NONE,
connect_OBJECT_OBJECT_ENUM__NONE,
connect_ENUM__NONE,
connect_OBJECT__NONE,
connect_MOBJECT_MOBJECT_ENUM__NONE,
) where
import Control.Monad (liftM)
import System.Glib.FFI
import System.Glib.UTFString (peekUTFString,maybePeekUTFString)
import System.Glib.GError (failOnGError)
import System.Glib.Signals
import System.Glib.GObject
connect_NONE__NONE ::
GObjectClass obj => SignalName ->
ConnectAfter -> obj ->
(IO ()) ->
IO (ConnectId obj)
connect_NONE__NONE signal after obj user =
connectGeneric signal after obj action
where action :: Ptr GObject -> IO ()
action _ =
failOnGError $
user
connect_STRING_STRING_STRING_ENUM__NONE ::
(Enum d, GObjectClass obj) => SignalName ->
ConnectAfter -> obj ->
(String -> String -> String -> d -> IO ()) ->
IO (ConnectId obj)
connect_STRING_STRING_STRING_ENUM__NONE signal after obj user =
connectGeneric signal after obj action
where action :: Ptr GObject -> CString -> CString -> CString -> Int -> IO ()
action _ str1 str2 str3 enum4 =
failOnGError $
peekUTFString str3 >>= \str3' ->
peekUTFString str2 >>= \str2' ->
peekUTFString str1 >>= \str1' ->
user str1' str2' str3' (toEnum enum4)
connect_OBJECT_OBJECT_ENUM__NONE ::
(GObjectClass a', GObjectClass b', Enum c, GObjectClass obj) => SignalName ->
ConnectAfter -> obj ->
(a' -> b' -> c -> IO ()) ->
IO (ConnectId obj)
connect_OBJECT_OBJECT_ENUM__NONE signal after obj user =
connectGeneric signal after obj action
where action :: Ptr GObject -> Ptr GObject -> Ptr GObject -> Int -> IO ()
action _ obj1 obj2 enum3 =
failOnGError $
makeNewGObject (GObject, objectUnref) (return obj2) >>= \obj2' ->
makeNewGObject (GObject, objectUnref) (return obj1) >>= \obj1' ->
user (unsafeCastGObject obj1') (unsafeCastGObject obj2') (toEnum enum3)
connect_ENUM__NONE ::
(Enum a, GObjectClass obj) => SignalName ->
ConnectAfter -> obj ->
(a -> IO ()) ->
IO (ConnectId obj)
connect_ENUM__NONE signal after obj user =
connectGeneric signal after obj action
where action :: Ptr GObject -> Int -> IO ()
action _ enum1 =
failOnGError $
user (toEnum enum1)
connect_OBJECT__NONE ::
(GObjectClass a', GObjectClass obj) => SignalName ->
ConnectAfter -> obj ->
(a' -> IO ()) ->
IO (ConnectId obj)
connect_OBJECT__NONE signal after obj user =
connectGeneric signal after obj action
where action :: Ptr GObject -> Ptr GObject -> IO ()
action _ obj1 =
failOnGError $
makeNewGObject (GObject, objectUnref) (return obj1) >>= \obj1' ->
user (unsafeCastGObject obj1')
connect_MOBJECT_MOBJECT_ENUM__NONE ::
(GObjectClass a', GObjectClass b', Enum c, GObjectClass obj) => SignalName ->
ConnectAfter -> obj ->
(Maybe a' -> Maybe b' -> c -> IO ()) ->
IO (ConnectId obj)
connect_MOBJECT_MOBJECT_ENUM__NONE signal after obj user =
connectGeneric signal after obj action
where action :: Ptr GObject -> Ptr GObject -> Ptr GObject -> Int -> IO ()
action _ obj1 obj2 enum3 =
failOnGError $
maybeNull (makeNewGObject (GObject, objectUnref)) (return obj2) >>= \obj2' ->
maybeNull (makeNewGObject (GObject, objectUnref)) (return obj1) >>= \obj1' ->
user (liftM unsafeCastGObject obj1') (liftM unsafeCastGObject obj2') (toEnum enum3)