{-# LINE 1 "src/Stopgap/System/GLib/Signal.hsc" #-}
{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE BlockArguments #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
module Stopgap.System.GLib.Signal where
import Foreign.Ptr
import Foreign.C.String
import Control.Monad.ST
import Data.String
import Data.CairoContext
import Stopgap.Data.Ptr
import Stopgap.System.GLib.Object qualified as G.Object
import Stopgap.System.GLib.Callback qualified as G.Callback
import Stopgap.Graphics.UI.Gdk.Event.Button qualified as Gdk.Event.Button
import Stopgap.Graphics.UI.Gdk.Event.Motion qualified as Gdk.Event.Motion
newtype Signal = Signal String deriving Int -> Signal -> ShowS
[Signal] -> ShowS
Signal -> String
(Int -> Signal -> ShowS)
-> (Signal -> String) -> ([Signal] -> ShowS) -> Show Signal
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Signal -> ShowS
showsPrec :: Int -> Signal -> ShowS
$cshow :: Signal -> String
show :: Signal -> String
$cshowList :: [Signal] -> ShowS
showList :: [Signal] -> ShowS
Show
instance IsString Signal where fromString :: String -> Signal
fromString = String -> Signal
Signal
connect_ab :: (G.Object.IsO a, IsPtr b) =>
a -> Signal -> (a -> b -> IO ()) -> b -> IO ()
connect_ab :: forall a b.
(IsO a, IsPtr b) =>
a -> Signal -> (a -> b -> IO ()) -> b -> IO ()
connect_ab a
o (Signal String
sig) a -> b -> IO ()
h b
ud = String -> (CString -> IO ()) -> IO ()
forall a. String -> (CString -> IO a) -> IO a
withCString String
sig \CString
csig -> do
ch <- (a -> b -> IO ()) -> IO (C (Ptr (Tag a) -> Ptr (Tag b) -> IO ()))
forall a b.
(IsPtr a, IsPtr b) =>
(a -> b -> IO ()) -> IO (C (Ptr (Tag a) -> Ptr (Tag b) -> IO ()))
G.Callback.c_ab a -> b -> IO ()
h
c_g_signal_connect (toPtr o) csig ch (toPtr ud)
connect_ab_bool :: (G.Object.IsO a, IsPtr b) =>
a -> Signal -> (a -> b -> IO Bool) -> b -> IO ()
connect_ab_bool :: forall a b.
(IsO a, IsPtr b) =>
a -> Signal -> (a -> b -> IO Bool) -> b -> IO ()
connect_ab_bool a
o (Signal String
sig) a -> b -> IO Bool
h b
ud = String -> (CString -> IO ()) -> IO ()
forall a. String -> (CString -> IO a) -> IO a
withCString String
sig \CString
csig -> do
ch <- (a -> b -> IO Bool)
-> IO (C (Ptr (Tag a) -> Ptr (Tag b) -> IO Int32))
forall a b.
(IsPtr a, IsPtr b) =>
(a -> b -> IO Bool)
-> IO (C (Ptr (Tag a) -> Ptr (Tag b) -> IO Int32))
G.Callback.c_ab_bool a -> b -> IO Bool
h
c_g_signal_connect (toPtr o) csig ch (toPtr ud)
connect_void_void :: G.Object.IsO a => a -> Signal -> IO () -> Null -> IO ()
connect_void_void :: forall a. IsO a => a -> Signal -> IO () -> Null -> IO ()
connect_void_void a
o (Signal String
sig) IO ()
h Null
Null = String -> (CString -> IO ()) -> IO ()
forall a. String -> (CString -> IO a) -> IO a
withCString String
sig \CString
csig -> do
ch <- IO () -> IO (C (IO ()))
G.Callback.c_void_void IO ()
h
c_g_signal_connect (toPtr o) csig ch nullPtr
connect_self_cairo_ud :: (G.Object.IsO a, IsPtr b) =>
a -> Signal -> (a -> CairoT r RealWorld -> b -> IO Bool) -> b -> IO ()
connect_self_cairo_ud :: forall a b r.
(IsO a, IsPtr b) =>
a
-> Signal
-> (a -> CairoT r RealWorld -> b -> IO Bool)
-> b
-> IO ()
connect_self_cairo_ud a
o (Signal String
sig) a -> CairoT r RealWorld -> b -> IO Bool
h b
ud = String -> (CString -> IO ()) -> IO ()
forall a. String -> (CString -> IO a) -> IO a
withCString String
sig \CString
csig -> do
ch <- (a -> CairoT r RealWorld -> b -> IO Bool)
-> IO
(C (Ptr (Tag a)
-> Ptr (CairoT r RealWorld) -> Ptr (Tag b) -> IO Int32))
forall a b r.
(IsPtr a, IsPtr b) =>
(a -> CairoT r RealWorld -> b -> IO Bool)
-> IO
(C (Ptr (Tag a)
-> Ptr (CairoT r RealWorld) -> Ptr (Tag b) -> IO Int32))
G.Callback.c_self_cairo_ud a -> CairoT r RealWorld -> b -> IO Bool
h
c_g_signal_connect (toPtr o) csig ch (toPtr ud)
connect_self_button_ud :: (G.Object.IsO a, IsPtr b) =>
a -> Signal -> (a -> Gdk.Event.Button.B -> b -> IO Bool) -> b -> IO ()
connect_self_button_ud :: forall a b.
(IsO a, IsPtr b) =>
a -> Signal -> (a -> B -> b -> IO Bool) -> b -> IO ()
connect_self_button_ud a
o (Signal String
sig) a -> B -> b -> IO Bool
h b
ud = String -> (CString -> IO ()) -> IO ()
forall a. String -> (CString -> IO a) -> IO a
withCString String
sig \CString
csig -> do
ch <- (a -> B -> b -> IO Bool)
-> IO (C (Ptr (Tag a) -> Ptr B -> Ptr (Tag b) -> IO Int32))
forall a b.
(IsPtr a, IsPtr b) =>
(a -> B -> b -> IO Bool)
-> IO (C (Ptr (Tag a) -> Ptr B -> Ptr (Tag b) -> IO Int32))
G.Callback.c_self_button_ud a -> B -> b -> IO Bool
h
c_g_signal_connect (toPtr o) csig ch (toPtr ud)
connect_self_motion_ud :: (G.Object.IsO a, IsPtr b) =>
a -> Signal -> (a -> Gdk.Event.Motion.M -> b -> IO Bool) -> b -> IO ()
connect_self_motion_ud :: forall a b.
(IsO a, IsPtr b) =>
a -> Signal -> (a -> M -> b -> IO Bool) -> b -> IO ()
connect_self_motion_ud a
o (Signal String
sig) a -> M -> b -> IO Bool
h b
ud = String -> (CString -> IO ()) -> IO ()
forall a. String -> (CString -> IO a) -> IO a
withCString String
sig \CString
csig -> do
ch <- (a -> M -> b -> IO Bool)
-> IO (C (Ptr (Tag a) -> Ptr M -> Ptr (Tag b) -> IO Int32))
forall a b.
(IsPtr a, IsPtr b) =>
(a -> M -> b -> IO Bool)
-> IO (C (Ptr (Tag a) -> Ptr M -> Ptr (Tag b) -> IO Int32))
G.Callback.c_self_motion_ud a -> M -> b -> IO Bool
h
c_g_signal_connect (toPtr o) csig ch (toPtr ud)
foreign import capi "gtk/gtk.h g_signal_connect" c_g_signal_connect ::
Ptr a -> CString -> G.Callback.C fun -> Ptr b -> IO ()