Gnome2-GConf
view release on metacpan or search on metacpan
xs/GConfEngine.xs view on Meta::CPAN
const gchar * key
GConfValue * value
PREINIT:
GError *err = NULL;
CODE:
RETVAL = gconf_engine_set (engine, key, value, &err);
gconf_value_free (value); /* leaks otherwise */
if (err)
gperl_croak_gerror (NULL, err);
OUTPUT:
RETVAL
=for apidoc
Unset the given key.
=cut
gboolean
gconf_engine_unset (engine, key)
GConfEngine * engine
const gchar * key
PREINIT:
GError *err = NULL;
CODE:
RETVAL = gconf_engine_unset (engine, key, &err);
if (err)
gperl_croak_gerror (NULL, err);
OUTPUT:
RETVAL
=for apidoc
Associate a schema to a key.
$schema_key should have a schema (if $key stores a value) or a dir full of
schemas (if $key stores a directory name)
=cut
gboolean
gconf_engine_associate_schema (engine, key, schema_key)
GConfEngine * engine
const gchar * key
const gchar * schema_key
PREINIT:
GError *err = NULL;
CODE:
RETVAL = gconf_engine_associate_schema (engine, key, schema_key, &err);
if (err)
gperl_croak_gerror (NULL, err);
OUTPUT:
RETVAL
=for apidoc
This method returns an array containing all the entries of a given directory.
=cut
void
gconf_engine_all_entries (engine, dir)
GConfEngine * engine
const gchar * dir
PREINIT:
GError * err = NULL;
GSList * l, * tmp;
PPCODE:
l = gconf_engine_all_entries (engine, dir, &err);
if (err)
gperl_croak_gerror (NULL, err);
for (tmp = l; tmp != NULL; tmp = tmp->next)
XPUSHs (sv_2mortal (newSVGChar (gconf_entry_get_key(tmp->data))));
g_slist_free (l);
=for apidoc
This method returns an array containing all the directories in a given directory.
=cut
void
gconf_engine_all_dirs (engine, dir)
GConfEngine * engine
const gchar * dir
PREINIT:
GError * err = NULL;
GSList * l, * tmp;
PPCODE:
l = gconf_engine_all_dirs (engine, dir, &err);
if (err)
gperl_croak_gerror (NULL, err);
for (tmp = l; tmp != NULL; tmp = tmp->next)
XPUSHs (sv_2mortal (newSVGChar (tmp->data)));
g_slist_free (l);
##void gconf_engine_suggest_sync (GConfEngine *conf,
## GError **err);
void
gconf_engine_suggest_sync (engine)
GConfEngine * engine
PREINIT:
GError *err = NULL;
CODE:
gconf_engine_suggest_sync (engine, &err);
if (err)
gperl_croak_gerror (NULL, err);
##gboolean gconf_engine_dir_exists (GConfEngine *conf,
## const gchar *dir,
## GError **err);
gboolean
gconf_engine_dir_exists (engine, dir)
GConfEngine * engine
const gchar * dir
PREINIT:
GError *err = NULL;
CODE:
RETVAL = gconf_engine_dir_exists (engine, dir, &err);
if (err)
gperl_croak_gerror (NULL, err);
OUTPUT:
RETVAL
##void gconf_engine_remove_dir (GConfEngine* conf,
## const gchar* dir,
## GError** err);
##
void
gconf_engine_remove_dir (engine, dir)
GConfEngine * engine
const gchar * dir
PREINIT:
GError *err = NULL;
CODE:
gconf_engine_remove_dir (engine, dir, &err);
if (err)
gperl_croak_gerror (NULL, err);
##gboolean gconf_engine_key_is_writable (GConfEngine *conf,
## const gchar *key,
## GError **err);
gboolean
gconf_engine_key_is_writable (engine, key)
GConfEngine * engine
const gchar * key
PREINIT:
GError *err = NULL;
CODE:
RETVAL = gconf_engine_key_is_writable (engine, key, &err);
if (err)
gperl_croak_gerror (NULL, err);
OUTPUT:
RETVAL
guint
gconf_engine_notify_add (engine, namespace_section, func, data=NULL)
GConfEngine * engine
const gchar * namespace_section
SV * func
SV * data
PREINIT:
GPerlCallback * callback;
GError * err = NULL;
guint cnxn_id = 0;
CODE:
callback = gconfperl_engine_notify_func_create (func, data);
cnxn_id = gconf_engine_notify_add (engine, namespace_section,
gconfperl_engine_notify_func,
callback,
&err);
if (err)
gperl_croak_gerror (NULL, err);
RETVAL = cnxn_id;
OUTPUT:
RETVAL
void
gconf_engine_notify_remove (GConfEngine * engine, guint cnxn_id)
##/*
## * Higher-level stuff
## */
## gconf-changeset.h
=for apidoc
=for signature boolean = $engine->commit_change_set ($cs, $remove_committed)
=for signature (boolean, changeset) = $engine->commit_change_set ($cs, $remove_committed)
Commit a given L<Gnome2::GConf::ChangeSet>. In scalar context, or if
I<$remove_committed> is FALSE, return a boolean value; otherwise, return the
boolean value and the L<Gnome2::GConf::ChangeSet> I<$cs>, pruned of the
successfully committed changes.
=cut
void
gconf_engine_commit_change_set (engine, cs, remove_committed)
GConfEngine * engine
GConfChangeSet * cs
gboolean remove_committed
PREINIT:
GError * err = NULL;
gboolean res;
PPCODE:
res = gconf_engine_commit_change_set (engine, cs, remove_committed, &err);
if (err) {
gperl_croak_gerror (NULL, err);
}
if ((GIMME_V != G_ARRAY) || (! remove_committed)) {
/* push on the stack the returned boolean value if the user
* wants only that, or if the user does not want to remove
* the successfully committed keys. */
XPUSHs (sv_2mortal (newSViv (res)));
gconf_change_set_unref (cs);
}
else {
/* push on the stack the returned value AND the reduced set. */
XPUSHs (sv_2mortal (newSViv (res)));
XPUSHs (sv_2mortal (newSVGConfChangeSet (cs)));
}
=for apidoc
Create a change set that would revert the given change set for the given L<Gnome2::GConf::Engine>.
=cut
GConfChangeSet *
gconf_engine_reverse_change_set (engine, cs)
GConfEngine * engine
GConfChangeSet * cs
PREINIT:
GError * err = NULL;
CODE:
RETVAL = gconf_engine_reverse_change_set (engine, cs, &err);
if (err)
gperl_croak_gerror (NULL, err);
OUTPUT:
RETVAL
### Gnome2::GConf::Engine::change_set_from_current is really
### change_set_from_currentv for implementation ease, but the calling signature
### is the same of change_set_from_current, so here it goes.
=for apidoc
=for arg key (__hide__)
=for arg ... list of keys to add to the changeset
Create a L<Gnome2::GConf::ChangeSet> from a list of keys inside the GConf
database.
=cut
GConfChangeSet *
gconf_engine_change_set_from_current (engine, key, ...)
GConfEngine * engine
PREINIT:
char ** keys;
int i;
GError * err = NULL;
CODE:
keys = g_new0 (char *, items - 1);
for (i = 1; i < items; i++)
keys[i-1] = SvPV_nolen (ST (i));
RETVAL = gconf_engine_change_set_from_currentv (engine, (const gchar **) keys, &err);
g_free(keys);
if (err)
gperl_croak_gerror (NULL, err);
OUTPUT:
RETVAL
( run in 1.141 second using v1.01-cache-2.11-cpan-5511b514fd6 )