какую функцию g_variant использовать для кода типа: as/type-name: String array?

Я пытаюсь выяснить, присутствует ли данное расширение под. Вот фрагмент кода C, который нуждается в изменениях:

      static gboolean
get_extension_state (GValue   *value,
                     GVariant *variant,
                     gpointer  user_data)
{
  const char *enabled_extensions;
  gboolean extension_state;

  enabled_extensions = g_variant_get_string (variant,NULL);
  extension_state = (g_strcmp0 (enabled_extensions, "user-theme@gnome-shell-extensions.gcampax.github.com") == 0);
  g_value_set_boolean (value, extension_state);

  return TRUE;
}

static GVariant *
set_extension_state (const GValue       *value,
                     const GVariantType *expected_type,
                     gpointer            user_data)
{
  gboolean extension_state;
  CcExtensionsPanel *self = user_data;
  gchar *commandline = NULL;
  GVariant *ret = NULL;

  extension_state = g_value_get_boolean (value);
  if (extension_state)
    {
      ret = g_variant_new_string (ENABLED_EXTENSIONS); 
      commandline = g_strdup_printf ("gnome-extensions enable user-theme@gnome-shell-extensions.gcampax.github.com");
      g_spawn_command_line_async (commandline, NULL);
      g_free (commandline);
      
    }
  else
    {
      commandline = g_strdup_printf ("gnome-extensions disable user-theme@gnome-shell-extensions.gcampax.github.com");
      g_spawn_command_line_async (commandline, NULL);
      g_free (commandline);
    }
}

Ищу функции на замену g_variant_get_string, g_strcmp0, g_variant_new_string в приведенном выше фрагменте кода с функциями на основе массива как org.gnome.shell.enabled-extensions тип String Array/as

0 ответов

Другие вопросы по тегам