{-# LANGUAGE CPP, ForeignFunctionInterface #-} -- vim:filetype=haskell: -- -- XXX: Should we consider property names to be encoded in UTF-8 too -- (string values are already encoded to / decoded from UTF-8). {- | Core functionalities for libxfconf. There is actually only one core function : 'xfconfListChannels'. Access to the C functions xfconf_init() and xfconf_shutdown() are available in the "System.XFCE.Xfconf.Unsafe" module and should, in most cases, not be used in Haskell. For more information, see: http:\/\/docs.xfce.org\/api\/xfconf\/xfconf-xfconf.html -} #include {# context lib="xfconf-0" prefix="xfconf" #} module System.XFCE.Xfconf.Core ( xfconfListChannels, ) where import Control.Exception (bracket_) import System.Glib.UTFString import System.XFCE.Xfconf.FFI {#import System.XFCE.Xfconf.Unsafe #} {---------------------------------------------------------------------- -- Core ----------------------------------------------------------------------} -- | List the names of available channels. xfconfListChannels :: IO [String] xfconfListChannels = bracket_ xfconfInit xfconfShutdown $ {#call unsafe xfconf_list_channels #} >>= readUTFStringArray0 -- TODO: implement xfconf_named_struct_register