Gtk2HsContentsIndex
Graphics.UI.Gtk.Signals
Description

These functions are used to connect signals to widgets. They are auto- matically created through HookGenerator.hs which takes a list of possible function signatures that are included in the GTK sources (gtkmarshal.list).

  • The object system in the second version of GTK is based on GObject from GLIB. This base class is rather primitive in that it only implements ref and unref methods (and others that are not interesting to us). If the marshall list mentions OBJECT it refers to an instance of this GObject which is automatically wrapped with a ref and unref call. Structures which are not derived from GObject have to be passed as BOXED which gives the signal connect function a possiblity to do the conversion into a proper ForeignPtr type. In special cases the signal connect function use a PTR type which will then be mangled in the user function directly. The latter is needed if a signal delivers a pointer to a string and its length in a separate integer.

TODO

  • Check if we need all prototypes mentioned in gtkmarshal.list.
Synopsis
connect_BOXED__BOOL :: GObjectClass obj => SignalName -> (Ptr a -> IO a) -> ConnectAfter -> obj -> (a -> IO Bool) -> IO (ConnectId obj)
connect_BOXED_BOXED__BOOL :: GObjectClass obj => SignalName -> (Ptr a -> IO a) -> (Ptr b -> IO b) -> ConnectAfter -> obj -> (a -> b -> IO Bool) -> IO (ConnectId obj)
connect_ENUM__BOOL :: (Enum a, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> IO Bool) -> IO (ConnectId obj)
connect_ENUM_INT__BOOL :: (Enum a, Num b, Integral b, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> b -> IO Bool) -> IO (ConnectId obj)
connect_OBJECT_WORD_FLAGS__BOOL :: (GObjectClass a', Num b, Enum c, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a' -> b -> c -> IO Bool) -> IO (ConnectId obj)
connect_OBJECT_INT_INT_WORD__BOOL :: (GObjectClass a', Num b, Integral b, Num c, Integral c, Num d, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a' -> b -> c -> d -> IO Bool) -> IO (ConnectId obj)
connect_OBJECT_STRING_STRING_BOXED__BOOL :: (GObjectClass a', GObjectClass obj) => SignalName -> (Ptr b -> IO b) -> ConnectAfter -> obj -> (a' -> String -> String -> b -> IO Bool) -> IO (ConnectId obj)
connect_OBJECT_BOXED__BOOL :: (GObjectClass a', GObjectClass obj) => SignalName -> (Ptr b -> IO b) -> ConnectAfter -> obj -> (a' -> b -> IO Bool) -> IO (ConnectId obj)
connect_OBJECT_BOXED_BOXED__BOOL :: (GObjectClass a', GObjectClass obj) => SignalName -> (Ptr b -> IO b) -> (Ptr c -> IO c) -> ConnectAfter -> obj -> (a' -> b -> c -> IO Bool) -> IO (ConnectId obj)
connect_OBJECT_STRING_STRING__BOOL :: (GObjectClass a', GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a' -> String -> String -> IO Bool) -> IO (ConnectId obj)
connect_INT_INT__BOOL :: (Num a, Integral a, Num b, Integral b, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> b -> IO Bool) -> IO (ConnectId obj)
connect_INT_INT_INT__BOOL :: (Num a, Integral a, Num b, Integral b, Num c, Integral c, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> b -> c -> IO Bool) -> IO (ConnectId obj)
connect_WORD__BOOL :: (Num a, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> IO Bool) -> IO (ConnectId obj)
connect_NONE__BOOL :: GObjectClass obj => SignalName -> ConnectAfter -> obj -> IO Bool -> IO (ConnectId obj)
connect_BOOL__BOOL :: GObjectClass obj => SignalName -> ConnectAfter -> obj -> (Bool -> IO Bool) -> IO (ConnectId obj)
connect_BOOL_BOOL_BOOL__BOOL :: GObjectClass obj => SignalName -> ConnectAfter -> obj -> (Bool -> Bool -> Bool -> IO Bool) -> IO (ConnectId obj)
connect_ENUM__ENUM :: (Enum a, Enum b, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> IO b) -> IO (ConnectId obj)
connect_PTR__INT :: (Num b, Integral b, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (Ptr a -> IO b) -> IO (ConnectId obj)
connect_BOOL__NONE :: GObjectClass obj => SignalName -> ConnectAfter -> obj -> (Bool -> IO ()) -> IO (ConnectId obj)
connect_ENUM__NONE :: (Enum a, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> IO ()) -> IO (ConnectId obj)
connect_INT__NONE :: (Num a, Integral a, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> IO ()) -> IO (ConnectId obj)
connect_INT_BOOL__NONE :: (Num a, Integral a, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> Bool -> IO ()) -> IO (ConnectId obj)
connect_INT_INT__NONE :: (Num a, Integral a, Num b, Integral b, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> b -> IO ()) -> IO (ConnectId obj)
connect_NONE__NONE :: GObjectClass obj => SignalName -> ConnectAfter -> obj -> IO () -> IO (ConnectId obj)
connect_STRING_INT_PTR__NONE :: (Num a, Integral a, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (String -> a -> Ptr b -> IO ()) -> IO (ConnectId obj)
connect_DOUBLE__STRING :: GObjectClass obj => SignalName -> ConnectAfter -> obj -> (Double -> IO String) -> IO (ConnectId obj)
connect_DOUBLE__NONE :: GObjectClass obj => SignalName -> ConnectAfter -> obj -> (Double -> IO ()) -> IO (ConnectId obj)
connect_BOOL_BOOL_BOOL__NONE :: GObjectClass obj => SignalName -> ConnectAfter -> obj -> (Bool -> Bool -> Bool -> IO ()) -> IO (ConnectId obj)
connect_BOXED__NONE :: GObjectClass obj => SignalName -> (Ptr a -> IO a) -> ConnectAfter -> obj -> (a -> IO ()) -> IO (ConnectId obj)
connect_BOXED_BOXED__NONE :: GObjectClass obj => SignalName -> (Ptr a -> IO a) -> (Ptr b -> IO b) -> ConnectAfter -> obj -> (a -> b -> IO ()) -> IO (ConnectId obj)
connect_BOXED_BOXED_PTR__NONE :: GObjectClass obj => SignalName -> (Ptr a -> IO a) -> (Ptr b -> IO b) -> ConnectAfter -> obj -> (a -> b -> Ptr c -> IO ()) -> IO (ConnectId obj)
connect_BOXED_OBJECT__NONE :: (GObjectClass b', GObjectClass obj) => SignalName -> (Ptr a -> IO a) -> ConnectAfter -> obj -> (a -> b' -> IO ()) -> IO (ConnectId obj)
connect_BOXED_STRING_INT__NONE :: (Num b, Integral b, GObjectClass obj) => SignalName -> (Ptr a -> IO a) -> ConnectAfter -> obj -> (a -> String -> b -> IO ()) -> IO (ConnectId obj)
connect_BOXED_WORD__NONE :: (Num b, GObjectClass obj) => SignalName -> (Ptr a -> IO a) -> ConnectAfter -> obj -> (a -> b -> IO ()) -> IO (ConnectId obj)
connect_BOXED_WORD_FLAGS__NONE :: (Num b, Enum c, GObjectClass obj) => SignalName -> (Ptr a -> IO a) -> ConnectAfter -> obj -> (a -> b -> c -> IO ()) -> IO (ConnectId obj)
connect_BOXED_WORD_WORD__NONE :: (Num b, Num c, GObjectClass obj) => SignalName -> (Ptr a -> IO a) -> ConnectAfter -> obj -> (a -> b -> c -> IO ()) -> IO (ConnectId obj)
connect_ENUM_BOOL__NONE :: (Enum a, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> Bool -> IO ()) -> IO (ConnectId obj)
connect_ENUM_ENUM__NONE :: (Enum a, Enum b, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> b -> IO ()) -> IO (ConnectId obj)
connect_ENUM_FLOAT__NONE :: (Enum a, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> Float -> IO ()) -> IO (ConnectId obj)
connect_ENUM_FLOAT_BOOL__NONE :: (Enum a, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> Float -> Bool -> IO ()) -> IO (ConnectId obj)
connect_ENUM_INT__NONE :: (Enum a, Num b, Integral b, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> b -> IO ()) -> IO (ConnectId obj)
connect_ENUM_INT_BOOL__NONE :: (Enum a, Num b, Integral b, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> b -> Bool -> IO ()) -> IO (ConnectId obj)
connect_INT_INT_BOXED__NONE :: (Num a, Integral a, Num b, Integral b, GObjectClass obj) => SignalName -> (Ptr c -> IO c) -> ConnectAfter -> obj -> (a -> b -> c -> IO ()) -> IO (ConnectId obj)
connect_INT_INT_INT__NONE :: (Num a, Integral a, Num b, Integral b, Num c, Integral c, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> b -> c -> IO ()) -> IO (ConnectId obj)
connect_OBJECT__NONE :: (GObjectClass a', GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a' -> IO ()) -> IO (ConnectId obj)
connect_OBJECT_BOOL__NONE :: (GObjectClass a', GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a' -> Bool -> IO ()) -> IO (ConnectId obj)
connect_OBJECT_BOXED_BOXED__NONE :: (GObjectClass a', GObjectClass obj) => SignalName -> (Ptr b -> IO b) -> (Ptr c -> IO c) -> ConnectAfter -> obj -> (a' -> b -> c -> IO ()) -> IO (ConnectId obj)
connect_OBJECT_BOXED_WORD_WORD__NONE :: (GObjectClass a', Num c, Num d, GObjectClass obj) => SignalName -> (Ptr b -> IO b) -> ConnectAfter -> obj -> (a' -> b -> c -> d -> IO ()) -> IO (ConnectId obj)
connect_OBJECT_INT_INT__NONE :: (GObjectClass a', Num b, Integral b, Num c, Integral c, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a' -> b -> c -> IO ()) -> IO (ConnectId obj)
connect_OBJECT_INT_INT_BOXED_WORD_WORD__NONE :: (GObjectClass a', Num b, Integral b, Num c, Integral c, Num e, Num f, GObjectClass obj) => SignalName -> (Ptr d -> IO d) -> ConnectAfter -> obj -> (a' -> b -> c -> d -> e -> f -> IO ()) -> IO (ConnectId obj)
connect_OBJECT_OBJECT__NONE :: (GObjectClass a', GObjectClass b', GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a' -> b' -> IO ()) -> IO (ConnectId obj)
connect_OBJECT_STRING_STRING__NONE :: (GObjectClass a', GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a' -> String -> String -> IO ()) -> IO (ConnectId obj)
connect_OBJECT_WORD__NONE :: (GObjectClass a', Num b, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a' -> b -> IO ()) -> IO (ConnectId obj)
connect_OBJECT_WORD_FLAGS__NONE :: (GObjectClass a', Num b, Enum c, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a' -> b -> c -> IO ()) -> IO (ConnectId obj)
connect_PTR__NONE :: GObjectClass obj => SignalName -> ConnectAfter -> obj -> (Ptr a -> IO ()) -> IO (ConnectId obj)
connect_PTR_INT__NONE :: (Num b, Integral b, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (Ptr a -> b -> IO ()) -> IO (ConnectId obj)
connect_PTR_BOOL__NONE :: GObjectClass obj => SignalName -> ConnectAfter -> obj -> (Ptr a -> Bool -> IO ()) -> IO (ConnectId obj)
connect_PTR_PTR_PTR__NONE :: GObjectClass obj => SignalName -> ConnectAfter -> obj -> (Ptr a -> Ptr b -> Ptr c -> IO ()) -> IO (ConnectId obj)
connect_PTR_WORD__NONE :: (Num b, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (Ptr a -> b -> IO ()) -> IO (ConnectId obj)
connect_STRING__NONE :: GObjectClass obj => SignalName -> ConnectAfter -> obj -> (String -> IO ()) -> IO (ConnectId obj)
connect_STRING_STRING__NONE :: GObjectClass obj => SignalName -> ConnectAfter -> obj -> (String -> String -> IO ()) -> IO (ConnectId obj)
connect_STRING_WORD_FLAGS__NONE :: (Num a, Enum b, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (String -> a -> b -> IO ()) -> IO (ConnectId obj)
connect_WORD_FLAGS_BOXED__NONE :: (Num a, Enum b, GObjectClass obj) => SignalName -> (Ptr c -> IO c) -> ConnectAfter -> obj -> (a -> b -> c -> IO ()) -> IO (ConnectId obj)
connect_WORD_WORD__NONE :: (Num a, Num b, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> b -> IO ()) -> IO (ConnectId obj)
connect_WORD_STRING__NONE :: (Num a, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> String -> IO ()) -> IO (ConnectId obj)
connect_WORD_BOXED_WORD_FLAGS_FLAGS__NONE :: (Num a, Num c, Enum d, Enum e, GObjectClass obj) => SignalName -> (Ptr b -> IO b) -> ConnectAfter -> obj -> (a -> b -> c -> d -> e -> IO ()) -> IO (ConnectId obj)
connect_WORD_OBJECT_WORD_FLAGS_FLAGS__NONE :: (Num a, GObjectClass b', Num c, Enum d, Enum e, GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a -> b' -> c -> d -> e -> IO ()) -> IO (ConnectId obj)
connect_BOXED_PTR_INT__NONE :: (Num c, Integral c, GObjectClass obj) => SignalName -> (Ptr a -> IO a) -> ConnectAfter -> obj -> (a -> Ptr b -> c -> IO ()) -> IO (ConnectId obj)
connect_PTR_STRING__NONE :: GObjectClass obj => SignalName -> ConnectAfter -> obj -> (Ptr a -> String -> IO ()) -> IO (ConnectId obj)
connect_STRING_PTR__NONE :: GObjectClass obj => SignalName -> ConnectAfter -> obj -> (String -> Ptr a -> IO ()) -> IO (ConnectId obj)
connect_STRING__BOOL :: GObjectClass obj => SignalName -> ConnectAfter -> obj -> (String -> IO Bool) -> IO (ConnectId obj)
type SignalName = String
type ConnectAfter = Bool
data ConnectId o
disconnect :: GObjectClass obj => ConnectId obj -> IO ()
Produced by Haddock version 0.6