From: Andy S. <And...@co...> - 2010-08-15 19:11:03
|
diffing dir... Sun Aug 15 14:03:38 EDT 2010 Andy Stewart <laz...@gm...> * Just left withGObject in Base.chs (other functions use glib functions replace) Ignore-this: 27ac454fc22e55415848de4ed5df4c15 { hunk ./gio/System/GIO/Base.chs 33 - hunk ./gio/System/GIO/Base.chs 36 - hunk ./gio/System/GIO/Base.chs 38 -type Offset = {# type goffset #} - -cToFlags :: (Integral int, Flags flags) - => int - -> [flags] -cToFlags = toFlags . fromIntegral -cFromFlags :: (Integral int, Flags flags) - => [flags] - -> int -cFromFlags = fromIntegral . fromFlags - -cToEnum :: (Integral int, Enum enum) - => int - -> enum -cToEnum = toEnum . fromIntegral -cFromEnum :: (Integral int, Enum enum) - => enum - -> int -cFromEnum = fromIntegral . fromEnum - hunk ./gio/System/GIO/Base.chs 46 -peekGObject :: GObjectClass obj - => Ptr obj - -> IO obj -peekGObject cObject = do - do cObjectRef $ castPtr cObject - takeGObject cObject -foreign import ccall unsafe "&g_object_unref" - objectFinalizer :: FunPtr (Ptr () -> IO ()) -foreign import ccall unsafe "g_object_ref" - cObjectRef :: Ptr () - -> IO (Ptr ()) - -takeGObject :: GObjectClass obj - => Ptr obj - -> IO obj -takeGObject cObject = - liftM (unsafeCastGObject . GObject . castForeignPtr) $ - do newForeignPtr (castPtr cObject) objectFinalizer - -type AsyncReadyCallback = GObject -> AsyncResult -> IO () -type CAsyncReadyCallback = Ptr GObject -> Ptr AsyncResult -> Ptr () -> IO () -foreign import ccall "wrapper" - makeAsyncReadyCallback :: CAsyncReadyCallback - -> IO {# type GAsyncReadyCallback #} - -marshalAsyncReadyCallback :: AsyncReadyCallback -> IO {# type GAsyncReadyCallback #} -marshalAsyncReadyCallback asyncReadyCallback = - makeAsyncReadyCallback cAsyncReadyCallback - where cAsyncReadyCallback :: CAsyncReadyCallback - cAsyncReadyCallback cObject cAsyncResult cCallback = do - object <- peekGObject cObject - asyncResult <- peekGObject cAsyncResult - asyncReadyCallback object asyncResult - freeHaskellFunPtr (castPtrToFunPtr cCallback) - -{# enum GFileAttributeInfoFlags as FileAttributeInfoFlags {underscoreToCase} with prefix = "G" deriving (Eq, Ord, Bounded, Read, Show) #} -instance Flags FileAttributeInfoFlags } |