Beispiel #1
0
static void
handle_preference_init_string (void)
{
    MetaStringPreference *cursor = preferences_string;

    while (cursor->base.key != NULL)
    {
        char *value;

        /* Complex keys have a mapping function to check validity */
        if (cursor->handler)
        {
            if (cursor->target)
                meta_bug ("%s has both a target and a handler\n", cursor->base.key);

            g_settings_get_mapped (SETTINGS (cursor->base.schema),
                                   cursor->base.key, cursor->handler, NULL);
        }
        else
        {
            if (!cursor->target)
                meta_bug ("%s must have handler or target\n", cursor->base.key);

            if (*(cursor->target))
                g_free (*(cursor->target));

            value = g_settings_get_string (SETTINGS (cursor->base.schema),
                                           cursor->base.key);

            *(cursor->target) = value;
        }

        ++cursor;
    }
}
Beispiel #2
0
/**
 * games_settings_get_keyval:
 * @settings: a #GSettings
 * @key: the key name
 * @keyval: (out):
 * @modifiers: (out):
 *
 * Returns the keyboard key associated with @key in @group, or 0 if
 * the value could not be parsed as a keyval.
 *
 * Returns: a keyboard key value
 */
void
games_settings_get_keyval (GSettings *settings,
                           const char *key,
                           guint *keyval,
                           GdkModifierType *modifiers)
{
  KeyEntry entry;

  g_return_if_fail (G_IS_SETTINGS (settings));
  g_return_if_fail (key != NULL && key[0] != '\0');

  g_settings_get_mapped (settings, key, (GSettingsGetMapping) variant_to_keyval, &entry);
  if (keyval)
    *keyval = entry.keyval;
  if (modifiers)
    *modifiers = entry.modifiers;
}
Beispiel #3
0
static void
handle_preference_update_string (GSettings *settings,
                                 gchar *key)
{
    MetaStringPreference *cursor = preferences_string;
    char *value;
    gboolean inform_listeners = FALSE;

    while (cursor->base.key != NULL && strcmp (key, cursor->base.key) != 0)
        ++cursor;

    if (cursor->base.key==NULL)
        /* Didn't recognise that key. */
        return;

    /* Complex keys have a mapping function to check validity */
    if (cursor->handler)
    {
        if (cursor->target)
            meta_bug ("%s has both a target and a handler\n", cursor->base.key);

        g_settings_get_mapped (SETTINGS (cursor->base.schema),
                               cursor->base.key, cursor->handler, NULL);
    }
    else
    {
        if (!cursor->target)
            meta_bug ("%s must have handler or target\n", cursor->base.key);

        value = g_settings_get_string (SETTINGS (cursor->base.schema),
                                       cursor->base.key);
        inform_listeners = (g_strcmp0 (value, *(cursor->target)) != 0);

        if (*(cursor->target))
            g_free (*(cursor->target));

        *(cursor->target) = value;
    }

    if (inform_listeners)
        queue_changed (cursor->base.pref);
}