oh my god
[haskell-gi:haskell-gi.git] / GI / Typelib.chs
1 module GI.Typelib
2   ( repositoryGetNInfos
3   , repositoryRequire
4   , repositoryLoad
5   )
6 where
7
8 import Foreign
9 import Foreign.C
10
11 import System.Glib.GError
12
13 #include <girepository.h>
14
15 {# pointer *GITypelib as Typelib newtype #}
16 {# pointer *GIRepository as Repository newtype #}
17
18 getDefaultRepository :: IO Repository
19 getDefaultRepository = {# call g_irepository_get_default #}
20
21 nullRepository = Repository nullPtr
22
23 repositoryGetNInfos :: String -> IO CInt
24 repositoryGetNInfos ns = withCString ns $ \nsPtr ->
25     {# call unsafe g_irepository_get_n_infos #} nullRepository nsPtr
26
27 repositoryRequire :: String -> IO Typelib
28 repositoryRequire ns = --version =
29     withCString ns $ \nsPtr ->
30 --    withCString version $ \versionPtr ->
31     propagateGError $ {# call unsafe g_irepository_require #} nullRepository nsPtr nullPtr 0
32
33 repositoryLoad :: Typelib -> IO String
34 repositoryLoad typelib = do
35     ret <- propagateGError $ {# call unsafe g_irepository_load_typelib #} nullRepository typelib 0
36     peekCString ret