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 )