-- GENERATED by C->Haskell Compiler, version 0.13.12 (gtk2hs branch) "Bin IO", 27 May 2012 (Haskell) -- Edit the ORIGNAL .chs file instead! {-# LINE 1 "./System/Gnome/GConf/Signals.chs" #-} {-# OPTIONS_HADDOCK hide #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- -*-haskell-*- -- -------------------- automatically generated file - do not edit ------------ -- Callback installers for the GIMP Toolkit (GTK) Binding for Haskell -- -- Author : Axel Simon -- -- Created: 1 July 2000 -- -- Copyright (C) 2000-2005 Axel Simon -- -- This library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- This library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- #hide -- 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 possibility 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. -- module System.Gnome.GConf.Signals ( module System.Glib.Signals, connect_GLIBSTRING_PTR__NONE, ) where import Control.Monad (liftM) import System.Glib.FFI import System.Glib.UTFString (peekUTFString,maybePeekUTFString) import qualified System.Glib.UTFString as Glib import System.Glib.GError (failOnGError) import System.Glib.Signals {-# LINE 54 "./System/Gnome/GConf/Signals.chs" #-} import System.Glib.GObject {-# LINE 55 "./System/Gnome/GConf/Signals.chs" #-} {-# LINE 58 "./System/Gnome/GConf/Signals.chs" #-} -- Here are the generators that turn a Haskell function into -- a C function pointer. The fist Argument is always the widget, -- the last one is the user g_pointer. Both are ignored. connect_GLIBSTRING_PTR__NONE :: (Glib.GlibString a', GObjectClass obj) => SignalName -> ConnectAfter -> obj -> (a' -> Ptr b -> IO ()) -> IO (ConnectId obj) connect_GLIBSTRING_PTR__NONE signal after obj user = connectGeneric signal after obj action where action :: Ptr GObject -> CString -> Ptr () -> IO () action _ str1 ptr2 = failOnGError $ peekUTFString str1 >>= \str1' -> user str1' (castPtr ptr2)