Safe Haskell | None |
---|---|
Language | Haskell98 |
GConf is a system for maintaining program configuration information.
The main difference between GConf and traditional configuration file API's is that GConf is 'live'. Applications can be notified of changes in their configuration, it allows desktop wide setting to be propogated without restarting all applications, or multiple instances of a single application to synchronise their configuration. It is similar in many ways to the Win32 Registry with its directory-like structure.
This module only binds the client library which is the only interface that normal applications should need. Only special GConf apps need lower level access.
- Some low level functions have not been bound
eg
gconf_client_get_for_engine
- data GConf
- data GConfPreloadType
- data GConfError
- gconfGetDefault :: IO GConf
- gconfAddDir :: GConf -> String -> IO ()
- gconfRemoveDir :: GConf -> String -> IO ()
- gconfNotifyAdd :: (GConfValueClass value, GlibString string) => GConf -> String -> (string -> value -> IO ()) -> IO GConfConnectId
- gconfNotifyRemove :: GConf -> GConfConnectId -> IO ()
- onValueChanged :: GlibString string => GConf -> (string -> Maybe GConfValueDyn -> IO ()) -> IO (ConnectId GConf)
- afterValueChanged :: GlibString string => GConf -> (string -> Maybe GConfValueDyn -> IO ()) -> IO (ConnectId GConf)
- gconfGet :: (GConfValueClass value, GlibString string) => GConf -> string -> IO value
- gconfSet :: (GConfValueClass value, GlibString string) => GConf -> string -> value -> IO ()
- gconfGetWithoutDefault :: GConfValueClass value => GConf -> String -> IO value
- gconfGetDefaultFromSchema :: GConfValueClass value => GConf -> String -> IO value
- gconfUnset :: GlibString string => GConf -> string -> IO ()
- gconfClearCache :: GConf -> IO ()
- gconfPreload :: GConf -> String -> GConfPreloadType -> IO ()
- gconfSuggestSync :: GConf -> IO ()
- gconfAllEntries :: GlibString string => GConf -> string -> IO [(string, GConfValueDyn)]
- gconfAllDirs :: GlibString string => GConf -> string -> IO [string]
- gconfDirExists :: GConf -> String -> IO Bool
- class GConfValueClass value
- class GConfValueClass value => GConfPrimitiveValueClass value
- data GConfValue
- data GConfValueDyn
Data types
data GConfError Source
The GError exceptions that can be thrown by functions in this module
Creation operation
gconfGetDefault :: IO GConf Source
Create a new GConf object using the default configuration engine.
Registering for change notifications
gconfAddDir :: GConf -> String -> IO () Source
Add a directory to the list of directories the GConf will watch. You should use gconfNotifyAdd to associate change handlers with specific keys.
- Added directories may not overlap. That is, if you add "/foo", you may
not add "/foo/bar". However you can add "/foo" and "/bar". You can
also add "/foo" multiple times; if you add a directory multiple times, it
will not be removed until you call
gconfRemoveDir
an equal number of times. - Note that the watch is recursive, all keys below the given directory will be watched. So it would be a bad idea to watch the root "/".
gconfRemoveDir :: GConf -> String -> IO () Source
Remove a directory from the list created with gconfAddDir
. If any
notifications have been added below this directory with gconfNotifyAdd
,
those notifications will be disabled until you re-add the removed directory.
- Note that if a directory has been added multiple times, you must remove it the same number of times before the remove takes effect.
gconfNotifyAdd :: (GConfValueClass value, GlibString string) => GConf -> String -> (string -> value -> IO ()) -> IO GConfConnectId Source
gconfNotifyRemove :: GConf -> GConfConnectId -> IO () Source
onValueChanged :: GlibString string => GConf -> (string -> Maybe GConfValueDyn -> IO ()) -> IO (ConnectId GConf) Source
afterValueChanged :: GlibString string => GConf -> (string -> Maybe GConfValueDyn -> IO ()) -> IO (ConnectId GConf) Source
Getting and setting configuration values
:: (GConfValueClass value, GlibString string) | |
=> GConf | |
-> string | Name of the key |
-> IO value |
Gets the value of a configuration key.
:: (GConfValueClass value, GlibString string) | |
=> GConf | |
-> string | Name of the key |
-> value | New value |
-> IO () |
Sets the value of a configuration key.
gconfGetWithoutDefault :: GConfValueClass value => GConf -> String -> IO value Source
Gets the value of a configuration key.
Same as gconfGet
, but doesn't look for a default value if the key is
unset.
gconfGetDefaultFromSchema :: GConfValueClass value => GConf -> String -> IO value Source
Returns the default value stored in the key's schema, if the key has a
schema associated and the schema exists and the schema contains a default
value. Note that gconfSet
already returns the default value if no other
value is found, so normally you do not need this function.
gconfUnset :: GlibString string => GConf -> string -> IO () Source
Unsets the value of key; if key is already unset, has no effect. An error
of note is GconfErrorOverridden
, indicating that the system administrator
has "forced" a value for this key.
Caching control
gconfClearCache :: GConf -> IO () Source
Dumps everything out of the GConf client-side cache. If you know you're done using the GConf for a while, you can call this function to save some memory.
gconfPreload :: GConf -> String -> GConfPreloadType -> IO () Source
Preloads a directory. Normally you do this when you call
gconfAddDirWithPreload
, but if you've called gconfClearCache
there may
be a reason to do it again.
gconfSuggestSync :: GConf -> IO () Source
Suggests to gconfd that you've just finished a block of changes, and it
would be an optimal time to sync to permanent storage. This is only a
suggestion; and gconfd will eventually sync even if you don't call
gconfSuggestSync
. This function is just a "hint" provided to gconfd to
maximize efficiency and minimize data loss.
Navigation
gconfAllEntries :: GlibString string => GConf -> string -> IO [(string, GConfValueDyn)] Source
gconfAllDirs :: GlibString string => GConf -> string -> IO [string] Source
GConfValue
class GConfValueClass value Source
Class of types which can be kept by GConf
unsafeMarshalFromGConfValue, typeofGConfValue, marshalToGConfValue
GConfValueClass Bool Source | |
GConfValueClass Double Source | |
GConfValueClass Int Source | |
GlibString string => GConfValueClass string Source | |
GConfValueClass GConfValueDyn Source | |
GConfPrimitiveValueClass a => GConfValueClass [a] Source | |
GConfValueClass value => GConfValueClass (Maybe value) Source | |
(GConfPrimitiveValueClass a, GConfPrimitiveValueClass b) => GConfValueClass (a, b) Source |
class GConfValueClass value => GConfPrimitiveValueClass value Source
data GConfValue Source
data GConfValueDyn Source
Dynamic version for when the type is not known statically.
GConfValueString Text | |
GConfValueInt Int | |
GConfValueFloat Double | |
GConfValueBool Bool | |
GConfValueSchema | Not supported |
GConfValueList [GConfValueDyn] | Must all be of same primitive type |
GConfValuePair (GConfValueDyn, GConfValueDyn) | Must both be primitive |