какую функцию 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