module Bindings.GObject.Signals where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word
import Bindings.GLib
import Bindings.GObject.TypeInformation
import Bindings.GObject.Closures
data C'GSignalInvocationHint = C'GSignalInvocationHint{
c'GSignalInvocationHint'signal_id :: C'guint
,
c'GSignalInvocationHint'detail :: C'GQuark
,
c'GSignalInvocationHint'run_type :: C'GSignalFlags
} deriving (Eq,Show)
instance Storable C'GSignalInvocationHint where
sizeOf _ = 12
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- peekByteOff p 8
return $ C'GSignalInvocationHint v0 v1 v2
poke p (C'GSignalInvocationHint v0 v1 v2) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
pokeByteOff p 8 v2
return ()
type C'GSignalAccumulator = FunPtr (Ptr C'GSignalInvocationHint -> Ptr C'GValue -> Ptr C'GValue -> C'gpointer -> IO C'gboolean)
foreign import ccall "wrapper" mk'GSignalAccumulator
:: (Ptr C'GSignalInvocationHint -> Ptr C'GValue -> Ptr C'GValue -> C'gpointer -> IO C'gboolean) -> IO C'GSignalAccumulator
foreign import ccall "dynamic" mK'GSignalAccumulator
:: C'GSignalAccumulator -> (Ptr C'GSignalInvocationHint -> Ptr C'GValue -> Ptr C'GValue -> C'gpointer -> IO C'gboolean)
type C'GSignalCMarshaller = C'GClosureMarshal
type C'GSignalEmissionHook = FunPtr (Ptr C'GSignalInvocationHint -> C'guint -> Ptr C'GValue -> C'gpointer -> IO C'gboolean)
foreign import ccall "wrapper" mk'GSignalEmissionHook
:: (Ptr C'GSignalInvocationHint -> C'guint -> Ptr C'GValue -> C'gpointer -> IO C'gboolean) -> IO C'GSignalEmissionHook
foreign import ccall "dynamic" mK'GSignalEmissionHook
:: C'GSignalEmissionHook -> (Ptr C'GSignalInvocationHint -> C'guint -> Ptr C'GValue -> C'gpointer -> IO C'gboolean)
type C'GSignalFlags = CUInt
c'G_SIGNAL_RUN_FIRST = 1
c'G_SIGNAL_RUN_FIRST :: (Num a) => a
c'G_SIGNAL_RUN_LAST = 2
c'G_SIGNAL_RUN_LAST :: (Num a) => a
c'G_SIGNAL_RUN_CLEANUP = 4
c'G_SIGNAL_RUN_CLEANUP :: (Num a) => a
c'G_SIGNAL_NO_RECURSE = 8
c'G_SIGNAL_NO_RECURSE :: (Num a) => a
c'G_SIGNAL_DETAILED = 16
c'G_SIGNAL_DETAILED :: (Num a) => a
c'G_SIGNAL_ACTION = 32
c'G_SIGNAL_ACTION :: (Num a) => a
c'G_SIGNAL_NO_HOOKS = 64
c'G_SIGNAL_NO_HOOKS :: (Num a) => a
type C'GSignalMatchType = CUInt
c'G_SIGNAL_MATCH_ID = 1
c'G_SIGNAL_MATCH_ID :: (Num a) => a
c'G_SIGNAL_MATCH_DETAIL = 2
c'G_SIGNAL_MATCH_DETAIL :: (Num a) => a
c'G_SIGNAL_MATCH_CLOSURE = 4
c'G_SIGNAL_MATCH_CLOSURE :: (Num a) => a
c'G_SIGNAL_MATCH_FUNC = 8
c'G_SIGNAL_MATCH_FUNC :: (Num a) => a
c'G_SIGNAL_MATCH_DATA = 16
c'G_SIGNAL_MATCH_DATA :: (Num a) => a
c'G_SIGNAL_MATCH_UNBLOCKED = 32
c'G_SIGNAL_MATCH_UNBLOCKED :: (Num a) => a
data C'GSignalQuery = C'GSignalQuery{
c'GSignalQuery'signal_id :: C'guint
,
c'GSignalQuery'signal_name :: Ptr C'gchar
,
c'GSignalQuery'itype :: C'GType
,
c'GSignalQuery'signal_flags :: C'GSignalFlags
,
c'GSignalQuery'return_type :: C'GType
,
c'GSignalQuery'n_params :: C'guint
,
c'GSignalQuery'param_types :: Ptr C'GType
} deriving (Eq,Show)
instance Storable C'GSignalQuery where
sizeOf _ = 28
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- peekByteOff p 8
v3 <- peekByteOff p 12
v4 <- peekByteOff p 16
v5 <- peekByteOff p 20
v6 <- peekByteOff p 24
return $ C'GSignalQuery v0 v1 v2 v3 v4 v5 v6
poke p (C'GSignalQuery v0 v1 v2 v3 v4 v5 v6) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
pokeByteOff p 8 v2
pokeByteOff p 12 v3
pokeByteOff p 16 v4
pokeByteOff p 20 v5
pokeByteOff p 24 v6
return ()
c'G_SIGNAL_TYPE_STATIC_SCOPE = 1
c'G_SIGNAL_TYPE_STATIC_SCOPE :: (Num a) => a
c'G_SIGNAL_MATCH_MASK = 63
c'G_SIGNAL_MATCH_MASK :: (Num a) => a
c'G_SIGNAL_FLAGS_MASK = 127
c'G_SIGNAL_FLAGS_MASK :: (Num a) => a
foreign import ccall "g_signal_newv" c'g_signal_newv
:: Ptr C'gchar -> C'GType -> C'GSignalFlags -> Ptr C'GClosure -> C'GSignalAccumulator -> C'gpointer -> C'GSignalCMarshaller -> C'GType -> C'guint -> Ptr C'GType -> IO C'guint
foreign import ccall "&g_signal_newv" p'g_signal_newv
:: FunPtr (Ptr C'gchar -> C'GType -> C'GSignalFlags -> Ptr C'GClosure -> C'GSignalAccumulator -> C'gpointer -> C'GSignalCMarshaller -> C'GType -> C'guint -> Ptr C'GType -> IO C'guint)
foreign import ccall "g_signal_query" c'g_signal_query
:: C'guint -> Ptr C'GSignalQuery -> IO ()
foreign import ccall "&g_signal_query" p'g_signal_query
:: FunPtr (C'guint -> Ptr C'GSignalQuery -> IO ())
foreign import ccall "g_signal_lookup" c'g_signal_lookup
:: Ptr C'gchar -> C'GType -> IO C'guint
foreign import ccall "&g_signal_lookup" p'g_signal_lookup
:: FunPtr (Ptr C'gchar -> C'GType -> IO C'guint)
foreign import ccall "g_signal_name" c'g_signal_name
:: C'guint -> IO (Ptr C'gchar)
foreign import ccall "&g_signal_name" p'g_signal_name
:: FunPtr (C'guint -> IO (Ptr C'gchar))
foreign import ccall "g_signal_list_ids" c'g_signal_list_ids
:: C'GType -> Ptr C'guint -> IO (Ptr C'guint)
foreign import ccall "&g_signal_list_ids" p'g_signal_list_ids
:: FunPtr (C'GType -> Ptr C'guint -> IO (Ptr C'guint))
foreign import ccall "g_signal_emitv" c'g_signal_emitv
:: Ptr C'GValue -> C'guint -> C'GQuark -> Ptr C'GValue -> IO ()
foreign import ccall "&g_signal_emitv" p'g_signal_emitv
:: FunPtr (Ptr C'GValue -> C'guint -> C'GQuark -> Ptr C'GValue -> IO ())
foreign import ccall "inline_g_signal_connect" c'g_signal_connect
:: C'gpointer -> Ptr C'gchar -> C'GCallback -> C'gpointer -> IO C'gulong
foreign import ccall "inline_g_signal_connect_after" c'g_signal_connect_after
:: C'gpointer -> Ptr C'gchar -> C'GCallback -> C'gpointer -> IO C'gulong
foreign import ccall "inline_g_signal_connect_swapped" c'g_signal_connect_swapped
:: C'gpointer -> Ptr C'gchar -> C'GCallback -> C'gpointer -> IO C'gulong
foreign import ccall "g_signal_connect_object" c'g_signal_connect_object
:: C'gpointer -> Ptr C'gchar -> C'GCallback -> C'gpointer -> C'GConnectFlags -> IO C'gulong
foreign import ccall "&g_signal_connect_object" p'g_signal_connect_object
:: FunPtr (C'gpointer -> Ptr C'gchar -> C'GCallback -> C'gpointer -> C'GConnectFlags -> IO C'gulong)
type C'GConnectFlags = CUInt
c'G_CONNECT_AFTER = 1
c'G_CONNECT_AFTER :: (Num a) => a
c'G_CONNECT_SWAPPED = 2
c'G_CONNECT_SWAPPED :: (Num a) => a
foreign import ccall "g_signal_connect_data" c'g_signal_connect_data
:: C'gpointer -> Ptr C'gchar -> C'GCallback -> C'gpointer -> C'GClosureNotify -> C'GConnectFlags -> IO C'gulong
foreign import ccall "&g_signal_connect_data" p'g_signal_connect_data
:: FunPtr (C'gpointer -> Ptr C'gchar -> C'GCallback -> C'gpointer -> C'GClosureNotify -> C'GConnectFlags -> IO C'gulong)
foreign import ccall "g_signal_connect_closure" c'g_signal_connect_closure
:: C'gpointer -> Ptr C'gchar -> Ptr C'GClosure -> C'gboolean -> IO C'gulong
foreign import ccall "&g_signal_connect_closure" p'g_signal_connect_closure
:: FunPtr (C'gpointer -> Ptr C'gchar -> Ptr C'GClosure -> C'gboolean -> IO C'gulong)
foreign import ccall "g_signal_connect_closure_by_id" c'g_signal_connect_closure_by_id
:: C'gpointer -> C'guint -> C'GQuark -> Ptr C'GClosure -> C'gboolean -> IO C'gulong
foreign import ccall "&g_signal_connect_closure_by_id" p'g_signal_connect_closure_by_id
:: FunPtr (C'gpointer -> C'guint -> C'GQuark -> Ptr C'GClosure -> C'gboolean -> IO C'gulong)
foreign import ccall "g_signal_handler_block" c'g_signal_handler_block
:: C'gpointer -> C'gulong -> IO ()
foreign import ccall "&g_signal_handler_block" p'g_signal_handler_block
:: FunPtr (C'gpointer -> C'gulong -> IO ())
foreign import ccall "g_signal_handler_unblock" c'g_signal_handler_unblock
:: C'gpointer -> C'gulong -> IO ()
foreign import ccall "&g_signal_handler_unblock" p'g_signal_handler_unblock
:: FunPtr (C'gpointer -> C'gulong -> IO ())
foreign import ccall "g_signal_handler_disconnect" c'g_signal_handler_disconnect
:: C'gpointer -> C'gulong -> IO ()
foreign import ccall "&g_signal_handler_disconnect" p'g_signal_handler_disconnect
:: FunPtr (C'gpointer -> C'gulong -> IO ())
foreign import ccall "g_signal_handler_find" c'g_signal_handler_find
:: C'gpointer -> C'GSignalMatchType -> C'guint -> C'GQuark -> Ptr C'GClosure -> C'gpointer -> C'gpointer -> IO C'gulong
foreign import ccall "&g_signal_handler_find" p'g_signal_handler_find
:: FunPtr (C'gpointer -> C'GSignalMatchType -> C'guint -> C'GQuark -> Ptr C'GClosure -> C'gpointer -> C'gpointer -> IO C'gulong)
foreign import ccall "g_signal_handlers_block_matched" c'g_signal_handlers_block_matched
:: C'gpointer -> C'GSignalMatchType -> C'guint -> C'GQuark -> Ptr C'GClosure -> C'gpointer -> C'gpointer -> IO C'guint
foreign import ccall "&g_signal_handlers_block_matched" p'g_signal_handlers_block_matched
:: FunPtr (C'gpointer -> C'GSignalMatchType -> C'guint -> C'GQuark -> Ptr C'GClosure -> C'gpointer -> C'gpointer -> IO C'guint)
foreign import ccall "g_signal_handlers_unblock_matched" c'g_signal_handlers_unblock_matched
:: C'gpointer -> C'GSignalMatchType -> C'guint -> C'GQuark -> Ptr C'GClosure -> C'gpointer -> C'gpointer -> IO C'guint
foreign import ccall "&g_signal_handlers_unblock_matched" p'g_signal_handlers_unblock_matched
:: FunPtr (C'gpointer -> C'GSignalMatchType -> C'guint -> C'GQuark -> Ptr C'GClosure -> C'gpointer -> C'gpointer -> IO C'guint)
foreign import ccall "g_signal_handlers_disconnect_matched" c'g_signal_handlers_disconnect_matched
:: C'gpointer -> C'GSignalMatchType -> C'guint -> C'GQuark -> Ptr C'GClosure -> C'gpointer -> C'gpointer -> IO C'guint
foreign import ccall "&g_signal_handlers_disconnect_matched" p'g_signal_handlers_disconnect_matched
:: FunPtr (C'gpointer -> C'GSignalMatchType -> C'guint -> C'GQuark -> Ptr C'GClosure -> C'gpointer -> C'gpointer -> IO C'guint)
foreign import ccall "g_signal_handler_is_connected" c'g_signal_handler_is_connected
:: C'gpointer -> C'gulong -> IO C'gboolean
foreign import ccall "&g_signal_handler_is_connected" p'g_signal_handler_is_connected
:: FunPtr (C'gpointer -> C'gulong -> IO C'gboolean)
foreign import ccall "inline_g_signal_handlers_block_by_func" c'g_signal_handlers_block_by_func
:: C'gpointer -> C'gpointer -> C'gpointer -> IO C'guint
foreign import ccall "inline_g_signal_handlers_unblock_by_func" c'g_signal_handlers_unblock_by_func
:: C'gpointer -> C'gpointer -> C'gpointer -> IO C'guint
foreign import ccall "inline_g_signal_handlers_disconnect_by_func" c'g_signal_handlers_disconnect_by_func
:: C'gpointer -> C'gpointer -> C'gpointer -> IO C'guint
foreign import ccall "g_signal_has_handler_pending" c'g_signal_has_handler_pending
:: C'gpointer -> C'guint -> C'GQuark -> C'gboolean -> IO C'gboolean
foreign import ccall "&g_signal_has_handler_pending" p'g_signal_has_handler_pending
:: FunPtr (C'gpointer -> C'guint -> C'GQuark -> C'gboolean -> IO C'gboolean)
foreign import ccall "g_signal_stop_emission" c'g_signal_stop_emission
:: C'gpointer -> C'guint -> C'GQuark -> IO ()
foreign import ccall "&g_signal_stop_emission" p'g_signal_stop_emission
:: FunPtr (C'gpointer -> C'guint -> C'GQuark -> IO ())
foreign import ccall "g_signal_stop_emission_by_name" c'g_signal_stop_emission_by_name
:: C'gpointer -> Ptr C'gchar -> IO ()
foreign import ccall "&g_signal_stop_emission_by_name" p'g_signal_stop_emission_by_name
:: FunPtr (C'gpointer -> Ptr C'gchar -> IO ())
foreign import ccall "g_signal_override_class_closure" c'g_signal_override_class_closure
:: C'guint -> C'GType -> Ptr C'GClosure -> IO ()
foreign import ccall "&g_signal_override_class_closure" p'g_signal_override_class_closure
:: FunPtr (C'guint -> C'GType -> Ptr C'GClosure -> IO ())
foreign import ccall "g_signal_chain_from_overridden" c'g_signal_chain_from_overridden
:: Ptr C'GValue -> Ptr C'GValue -> IO ()
foreign import ccall "&g_signal_chain_from_overridden" p'g_signal_chain_from_overridden
:: FunPtr (Ptr C'GValue -> Ptr C'GValue -> IO ())
foreign import ccall "g_signal_override_class_handler" c'g_signal_override_class_handler
:: Ptr C'gchar -> C'GType -> C'GCallback -> IO ()
foreign import ccall "&g_signal_override_class_handler" p'g_signal_override_class_handler
:: FunPtr (Ptr C'gchar -> C'GType -> C'GCallback -> IO ())
foreign import ccall "g_signal_add_emission_hook" c'g_signal_add_emission_hook
:: C'guint -> C'GQuark -> C'GSignalEmissionHook -> C'gpointer -> C'GDestroyNotify -> IO C'gulong
foreign import ccall "&g_signal_add_emission_hook" p'g_signal_add_emission_hook
:: FunPtr (C'guint -> C'GQuark -> C'GSignalEmissionHook -> C'gpointer -> C'GDestroyNotify -> IO C'gulong)
foreign import ccall "g_signal_remove_emission_hook" c'g_signal_remove_emission_hook
:: C'guint -> C'gulong -> IO ()
foreign import ccall "&g_signal_remove_emission_hook" p'g_signal_remove_emission_hook
:: FunPtr (C'guint -> C'gulong -> IO ())
foreign import ccall "g_signal_parse_name" c'g_signal_parse_name
:: Ptr C'gchar -> C'GType -> Ptr C'guint -> Ptr C'GQuark -> C'gboolean -> IO C'gboolean
foreign import ccall "&g_signal_parse_name" p'g_signal_parse_name
:: FunPtr (Ptr C'gchar -> C'GType -> Ptr C'guint -> Ptr C'GQuark -> C'gboolean -> IO C'gboolean)
foreign import ccall "g_signal_get_invocation_hint" c'g_signal_get_invocation_hint
:: C'gpointer -> IO (Ptr C'GSignalInvocationHint)
foreign import ccall "&g_signal_get_invocation_hint" p'g_signal_get_invocation_hint
:: FunPtr (C'gpointer -> IO (Ptr C'GSignalInvocationHint))
foreign import ccall "g_signal_type_cclosure_new" c'g_signal_type_cclosure_new
:: C'GType -> C'guint -> IO (Ptr C'GClosure)
foreign import ccall "&g_signal_type_cclosure_new" p'g_signal_type_cclosure_new
:: FunPtr (C'GType -> C'guint -> IO (Ptr C'GClosure))
foreign import ccall "g_signal_accumulator_true_handled" c'g_signal_accumulator_true_handled
:: Ptr C'GSignalInvocationHint -> Ptr C'GValue -> Ptr C'GValue -> C'gpointer -> IO C'gboolean
foreign import ccall "&g_signal_accumulator_true_handled" p'g_signal_accumulator_true_handled
:: FunPtr (Ptr C'GSignalInvocationHint -> Ptr C'GValue -> Ptr C'GValue -> C'gpointer -> IO C'gboolean)