コード例 #1
0
ファイル: gconf-schema.c プロジェクト: BARGAN/gconf
GConfSchema*  
gconf_schema_copy (const GConfSchema* sc)
{
  GConfRealSchema *dest;
  const GConfRealSchema *real;

  real = REAL_SCHEMA (sc);
  dest = (GConfRealSchema*) gconf_schema_new ();

  dest->type = real->type;
  dest->list_type = real->list_type;
  dest->car_type = real->car_type;
  dest->cdr_type = real->cdr_type;

  dest->locale = g_strdup (real->locale);
  
  dest->short_desc = g_strdup (real->short_desc);

  dest->long_desc = g_strdup (real->long_desc);

  dest->owner = g_strdup (real->owner);

  dest->default_value = real->default_value ? gconf_value_copy (real->default_value) : NULL;
  
  return (GConfSchema*) dest;
}
コード例 #2
0
ファイル: xml-dir.c プロジェクト: BARGAN/gconf
static void
listify_foreach(const gchar* key, Entry* e, ListifyData* ld)
{
  GConfValue* val;
  GConfEntry* entry;
  GError* error = NULL;
  
  val = entry_get_value (e, ld->locales, &error);

  if (error != NULL)
    {
      g_assert (val == NULL);
      g_error_free (error);
      return;
    }
  
  entry = gconf_entry_new_nocopy (g_strdup(key),
                                  val ? gconf_value_copy(val) : NULL);
  
  if (entry_get_schema_name (e))
    {
      gconf_entry_set_schema_name (entry, entry_get_schema_name (e));
    }
  
  ld->list = g_slist_prepend(ld->list, entry);
}
コード例 #3
0
ファイル: gconf-schema.c プロジェクト: BARGAN/gconf
void
gconf_schema_set_default_value (GConfSchema* sc, const GConfValue* val)
{
  if (REAL_SCHEMA (sc)->default_value != NULL)
    gconf_value_free (REAL_SCHEMA (sc)->default_value);

  REAL_SCHEMA (sc)->default_value = gconf_value_copy (val);
}
コード例 #4
0
static GConfValue *
cc_ua_panel_toggle_switch (GConfPropertyEditor *peditor,
                           const GConfValue    *value)
{
  GtkWidget *sw;
  gboolean enabled;

  enabled = gconf_value_get_bool (value);
  sw = (GtkWidget*) gconf_property_editor_get_ui_control (peditor);

  gtk_switch_set_active (GTK_SWITCH (sw), enabled);

  return gconf_value_copy (value);
}
コード例 #5
0
ファイル: xml-entry.c プロジェクト: GNOME/gconf
void
entry_set_value(Entry* e, const GConfValue* value)
{
  g_return_if_fail(e != NULL);
  
  entry_sync_if_needed(e);
  
  if (e->cached_value)
    gconf_value_free(e->cached_value);
      
  e->cached_value = gconf_value_copy(value);

  e->dirty = TRUE;
}
コード例 #6
0
ファイル: xml-dir.c プロジェクト: BARGAN/gconf
GConfValue*
dir_get_value   (Dir* d,
                 const gchar* relative_key,
                 const gchar** locales,
                 gchar** schema_name,
                 GError** err)
{
  Entry* e;
  
  if (d->doc == NULL)
    dir_load_doc(d, err);

  if (d->doc == NULL)
    {
      g_return_val_if_fail( (err == NULL) || (*err != NULL), NULL );
      return NULL;
    }
  
  e = g_hash_table_lookup(d->entry_cache, relative_key);

  d->last_access = time(NULL);

  if (e == NULL)
    {
      /* No entry; return */
      return NULL;
    }
  else
    {
      GConfValue* val;

      g_assert(e != NULL);

      val = entry_get_value (e, locales, err);

      /* Get schema name if requested */
      if (schema_name && entry_get_schema_name (e))
        *schema_name = g_strdup (entry_get_schema_name (e));
      
      /* return copy of the value */
      if (val != NULL)
        return gconf_value_copy(val);
      else
        return NULL;
    }
}