From 8e5bc917659288a257d5de9827458039f5498ef5 Mon Sep 17 00:00:00 2001 From: Leonard Kugis Date: Tue, 23 Jan 2018 01:08:38 +0100 Subject: OpenGL rendering added, cleaned up paths --- Release/share/glib-2.0/codegen/__init__.py | 27 - Release/share/glib-2.0/codegen/codegen.py | 3444 -------------------- Release/share/glib-2.0/codegen/codegen_docbook.py | 329 -- Release/share/glib-2.0/codegen/codegen_main.py | 204 -- Release/share/glib-2.0/codegen/config.py | 25 - Release/share/glib-2.0/codegen/dbustypes.py | 424 --- Release/share/glib-2.0/codegen/parser.py | 292 -- Release/share/glib-2.0/codegen/utils.py | 108 - Release/share/glib-2.0/gdb/glib.py | 257 -- Release/share/glib-2.0/gdb/glib_gdb.py | 261 -- Release/share/glib-2.0/gdb/gobject.py | 305 -- Release/share/glib-2.0/gdb/gobject_gdb.py | 295 -- Release/share/glib-2.0/gettext/mkinstalldirs | 162 - Release/share/glib-2.0/gettext/po/Makefile.in.in | 268 -- Release/share/glib-2.0/schemas/gschema.dtd | 73 - Release/share/glib-2.0/schemas/gschemas.compiled | Bin 39637 -> 0 bytes .../schemas/org.freedesktop.Geoclue.gschema.xml | 15 - ...org.gnome.desktop.a11y.applications.gschema.xml | 20 - .../schemas/org.gnome.desktop.a11y.gschema.xml | 21 - .../org.gnome.desktop.a11y.keyboard.gschema.xml | 104 - .../org.gnome.desktop.a11y.magnifier.gschema.xml | 228 -- .../org.gnome.desktop.a11y.mouse.gschema.xml | 60 - .../org.gnome.desktop.app-folders.gschema.xml | 44 - .../org.gnome.desktop.background.gschema.xml | 58 - .../schemas/org.gnome.desktop.calendar.gschema.xml | 10 - .../schemas/org.gnome.desktop.datetime.gschema.xml | 10 - ....gnome.desktop.default-applications.gschema.xml | 72 - .../glib-2.0/schemas/org.gnome.desktop.enums.xml | 150 - .../org.gnome.desktop.input-sources.gschema.xml | 63 - .../org.gnome.desktop.interface.gschema.xml | 231 -- .../schemas/org.gnome.desktop.lockdown.gschema.xml | 74 - .../org.gnome.desktop.media-handling.gschema.xml | 34 - .../org.gnome.desktop.notifications.gschema.xml | 88 - .../org.gnome.desktop.peripherals.gschema.xml | 173 - .../schemas/org.gnome.desktop.privacy.gschema.xml | 63 - .../org.gnome.desktop.screensaver.gschema.xml | 135 - .../org.gnome.desktop.search-providers.gschema.xml | 52 - .../schemas/org.gnome.desktop.session.gschema.xml | 15 - .../schemas/org.gnome.desktop.sound.gschema.xml | 20 - .../org.gnome.desktop.thumbnail-cache.gschema.xml | 13 - .../org.gnome.desktop.thumbnailers.gschema.xml | 25 - .../org.gnome.desktop.wm.keybindings.gschema.xml | 351 -- .../org.gnome.desktop.wm.preferences.gschema.xml | 281 -- .../glib-2.0/schemas/org.gnome.devhelp.gschema.xml | 111 - .../schemas/org.gnome.system.locale.gschema.xml | 11 - .../schemas/org.gnome.system.location.gschema.xml | 24 - .../schemas/org.gnome.system.proxy.gschema.xml | 169 - .../glib-2.0/schemas/org.gtk.Demo.gschema.xml | 26 - .../org.gtk.Settings.ColorChooser.gschema.xml | 26 - .../schemas/org.gtk.Settings.Debug.gschema.xml | 25 - .../org.gtk.Settings.FileChooser.gschema.xml | 153 - .../schemas/org.gtk.exampleapp.gschema.xml | 25 - 52 files changed, 9454 deletions(-) delete mode 100644 Release/share/glib-2.0/codegen/__init__.py delete mode 100644 Release/share/glib-2.0/codegen/codegen.py delete mode 100644 Release/share/glib-2.0/codegen/codegen_docbook.py delete mode 100644 Release/share/glib-2.0/codegen/codegen_main.py delete mode 100644 Release/share/glib-2.0/codegen/config.py delete mode 100644 Release/share/glib-2.0/codegen/dbustypes.py delete mode 100644 Release/share/glib-2.0/codegen/parser.py delete mode 100644 Release/share/glib-2.0/codegen/utils.py delete mode 100644 Release/share/glib-2.0/gdb/glib.py delete mode 100644 Release/share/glib-2.0/gdb/glib_gdb.py delete mode 100644 Release/share/glib-2.0/gdb/gobject.py delete mode 100644 Release/share/glib-2.0/gdb/gobject_gdb.py delete mode 100644 Release/share/glib-2.0/gettext/mkinstalldirs delete mode 100644 Release/share/glib-2.0/gettext/po/Makefile.in.in delete mode 100644 Release/share/glib-2.0/schemas/gschema.dtd delete mode 100644 Release/share/glib-2.0/schemas/gschemas.compiled delete mode 100644 Release/share/glib-2.0/schemas/org.freedesktop.Geoclue.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.applications.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.keyboard.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.magnifier.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.mouse.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.app-folders.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.calendar.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.datetime.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.default-applications.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.enums.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.input-sources.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.lockdown.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.peripherals.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.screensaver.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.session.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.thumbnail-cache.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.wm.keybindings.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.devhelp.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.system.locale.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.system.location.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gnome.system.proxy.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gtk.Demo.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gtk.Settings.ColorChooser.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gtk.Settings.Debug.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml delete mode 100644 Release/share/glib-2.0/schemas/org.gtk.exampleapp.gschema.xml (limited to 'Release/share') diff --git a/Release/share/glib-2.0/codegen/__init__.py b/Release/share/glib-2.0/codegen/__init__.py deleted file mode 100644 index ed3a570..0000000 --- a/Release/share/glib-2.0/codegen/__init__.py +++ /dev/null @@ -1,27 +0,0 @@ -# -*- Mode: Python -*- - -# GDBus - GLib D-Bus Library -# -# Copyright (C) 2008-2011 Red Hat, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General -# Public License along with this library; if not, see . -# -# Author: David Zeuthen - -import os - -builddir = os.environ.get('UNINSTALLED_GLIB_BUILDDIR') - -if builddir is not None: - __path__.append(os.path.abspath(os.path.join(builddir, 'gio', 'gdbus-2.0', 'codegen'))) diff --git a/Release/share/glib-2.0/codegen/codegen.py b/Release/share/glib-2.0/codegen/codegen.py deleted file mode 100644 index 09de619..0000000 --- a/Release/share/glib-2.0/codegen/codegen.py +++ /dev/null @@ -1,3444 +0,0 @@ -# -*- Mode: Python -*- - -# GDBus - GLib D-Bus Library -# -# Copyright (C) 2008-2011 Red Hat, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General -# Public License along with this library; if not, see . -# -# Author: David Zeuthen - -import sys - -from . import config -from . import utils -from . import dbustypes - -# ---------------------------------------------------------------------------------------------------- - -class CodeGenerator: - def __init__(self, ifaces, namespace, interface_prefix, generate_objmanager, generate_autocleanup, docbook_gen, h, c): - self.docbook_gen = docbook_gen - self.generate_objmanager = generate_objmanager - self.generate_autocleanup = generate_autocleanup - self.ifaces = ifaces - self.h = h - self.c = c - self.namespace = namespace - if len(namespace) > 0: - if utils.is_ugly_case(namespace): - self.namespace = namespace.replace('_', '') - self.ns_upper = namespace.upper() + '_' - self.ns_lower = namespace.lower() + '_' - else: - self.ns_upper = utils.camel_case_to_uscore(namespace).upper() + '_' - self.ns_lower = utils.camel_case_to_uscore(namespace).lower() + '_' - else: - self.ns_upper = '' - self.ns_lower = '' - self.interface_prefix = interface_prefix - self.header_guard = self.h.name.upper().replace('.', '_').replace('-', '_').replace('/', '_') - - # ---------------------------------------------------------------------------------------------------- - - def generate_intro(self): - self.c.write('/*\n' - ' * Generated by gdbus-codegen %s. DO NOT EDIT.\n' - ' *\n' - ' * The license of this code is the same as for the source it was derived from.\n' - ' */\n' - '\n' - %(config.VERSION)) - self.c.write('#ifdef HAVE_CONFIG_H\n' - '# include "config.h"\n' - '#endif\n' - '\n' - '#include "%s"\n' - '\n' - '#include \n' - %(self.h.name)) - - self.c.write('#ifdef G_OS_UNIX\n' - '# include \n' - '#endif\n' - '\n') - - self.c.write('typedef struct\n' - '{\n' - ' GDBusArgInfo parent_struct;\n' - ' gboolean use_gvariant;\n' - '} _ExtendedGDBusArgInfo;\n' - '\n') - - self.c.write('typedef struct\n' - '{\n' - ' GDBusMethodInfo parent_struct;\n' - ' const gchar *signal_name;\n' - ' gboolean pass_fdlist;\n' - '} _ExtendedGDBusMethodInfo;\n' - '\n') - - self.c.write('typedef struct\n' - '{\n' - ' GDBusSignalInfo parent_struct;\n' - ' const gchar *signal_name;\n' - '} _ExtendedGDBusSignalInfo;\n' - '\n') - - self.c.write('typedef struct\n' - '{\n' - ' GDBusPropertyInfo parent_struct;\n' - ' const gchar *hyphen_name;\n' - ' gboolean use_gvariant;\n' - '} _ExtendedGDBusPropertyInfo;\n' - '\n') - - self.c.write('typedef struct\n' - '{\n' - ' GDBusInterfaceInfo parent_struct;\n' - ' const gchar *hyphen_name;\n' - '} _ExtendedGDBusInterfaceInfo;\n' - '\n') - - self.c.write('typedef struct\n' - '{\n' - ' const _ExtendedGDBusPropertyInfo *info;\n' - ' guint prop_id;\n' - ' GValue orig_value; /* the value before the change */\n' - '} ChangedProperty;\n' - '\n' - 'static void\n' - '_changed_property_free (ChangedProperty *data)\n' - '{\n' - ' g_value_unset (&data->orig_value);\n' - ' g_free (data);\n' - '}\n' - '\n') - - self.c.write('static gboolean\n' - '_g_strv_equal0 (gchar **a, gchar **b)\n' - '{\n' - ' gboolean ret = FALSE;\n' - ' guint n;\n' - ' if (a == NULL && b == NULL)\n' - ' {\n' - ' ret = TRUE;\n' - ' goto out;\n' - ' }\n' - ' if (a == NULL || b == NULL)\n' - ' goto out;\n' - ' if (g_strv_length (a) != g_strv_length (b))\n' - ' goto out;\n' - ' for (n = 0; a[n] != NULL; n++)\n' - ' if (g_strcmp0 (a[n], b[n]) != 0)\n' - ' goto out;\n' - ' ret = TRUE;\n' - 'out:\n' - ' return ret;\n' - '}\n' - '\n') - - self.c.write('static gboolean\n' - '_g_variant_equal0 (GVariant *a, GVariant *b)\n' - '{\n' - ' gboolean ret = FALSE;\n' - ' if (a == NULL && b == NULL)\n' - ' {\n' - ' ret = TRUE;\n' - ' goto out;\n' - ' }\n' - ' if (a == NULL || b == NULL)\n' - ' goto out;\n' - ' ret = g_variant_equal (a, b);\n' - 'out:\n' - ' return ret;\n' - '}\n' - '\n') - - # simplified - only supports the types we use - self.c.write('G_GNUC_UNUSED static gboolean\n' - '_g_value_equal (const GValue *a, const GValue *b)\n' - '{\n' - ' gboolean ret = FALSE;\n' - ' g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));\n' - ' switch (G_VALUE_TYPE (a))\n' - ' {\n' - ' case G_TYPE_BOOLEAN:\n' - ' ret = (g_value_get_boolean (a) == g_value_get_boolean (b));\n' - ' break;\n' - ' case G_TYPE_UCHAR:\n' - ' ret = (g_value_get_uchar (a) == g_value_get_uchar (b));\n' - ' break;\n' - ' case G_TYPE_INT:\n' - ' ret = (g_value_get_int (a) == g_value_get_int (b));\n' - ' break;\n' - ' case G_TYPE_UINT:\n' - ' ret = (g_value_get_uint (a) == g_value_get_uint (b));\n' - ' break;\n' - ' case G_TYPE_INT64:\n' - ' ret = (g_value_get_int64 (a) == g_value_get_int64 (b));\n' - ' break;\n' - ' case G_TYPE_UINT64:\n' - ' ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));\n' - ' break;\n' - ' case G_TYPE_DOUBLE:\n' - ' {\n' - ' /* Avoid -Wfloat-equal warnings by doing a direct bit compare */\n' - ' gdouble da = g_value_get_double (a);\n' - ' gdouble db = g_value_get_double (b);\n' - ' ret = memcmp (&da, &db, sizeof (gdouble)) == 0;\n' - ' }\n' - ' break;\n' - ' case G_TYPE_STRING:\n' - ' ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);\n' - ' break;\n' - ' case G_TYPE_VARIANT:\n' - ' ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));\n' - ' break;\n' - ' default:\n' - ' if (G_VALUE_TYPE (a) == G_TYPE_STRV)\n' - ' ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));\n' - ' else\n' - ' g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));\n' - ' break;\n' - ' }\n' - ' return ret;\n' - '}\n' - '\n') - - self.h.write('/*\n' - ' * Generated by gdbus-codegen %s. DO NOT EDIT.\n' - ' *\n' - ' * The license of this code is the same as for the source it was derived from.\n' - ' */\n' - '\n' - '#ifndef __%s__\n' - '#define __%s__\n' - '\n'%(config.VERSION, self.header_guard, self.header_guard)) - self.h.write('#include \n' - '\n' - 'G_BEGIN_DECLS\n' - '\n') - - # ---------------------------------------------------------------------------------------------------- - - def declare_types(self): - for i in self.ifaces: - self.h.write('\n') - self.h.write('/* ------------------------------------------------------------------------ */\n') - self.h.write('/* Declarations for %s */\n'%i.name) - self.h.write('\n') - - # First the GInterface - self.h.write('#define %sTYPE_%s (%s_get_type ())\n'%(i.ns_upper, i.name_upper, i.name_lower)) - self.h.write('#define %s%s(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), %sTYPE_%s, %s))\n'%(i.ns_upper, i.name_upper, i.ns_upper, i.name_upper, i.camel_name)) - self.h.write('#define %sIS_%s(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), %sTYPE_%s))\n'%(i.ns_upper, i.name_upper, i.ns_upper, i.name_upper)) - self.h.write('#define %s%s_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), %sTYPE_%s, %sIface))\n'%(i.ns_upper, i.name_upper, i.ns_upper, i.name_upper, i.camel_name)) - self.h.write('\n') - self.h.write('struct _%s;\n'%(i.camel_name)) - self.h.write('typedef struct _%s %s;\n'%(i.camel_name, i.camel_name)) - self.h.write('typedef struct _%sIface %sIface;\n'%(i.camel_name, i.camel_name)) - self.h.write('\n') - self.h.write('struct _%sIface\n'%(i.camel_name)) - self.h.write('{\n') - self.h.write(' GTypeInterface parent_iface;\n') - - function_pointers = {} - - # vfuncs for methods - if len(i.methods) > 0: - self.h.write('\n') - for m in i.methods: - unix_fd = False - if utils.lookup_annotation(m.annotations, 'org.gtk.GDBus.C.UnixFD'): - unix_fd = True - key = (m.since, '_method_%s'%m.name_lower) - value = ' gboolean (*handle_%s) (\n'%(m.name_lower) - value += ' %s *object,\n'%(i.camel_name) - value += ' GDBusMethodInvocation *invocation'%() - if unix_fd: - value += ',\n GUnixFDList *fd_list' - for a in m.in_args: - value += ',\n %sarg_%s'%(a.ctype_in, a.name) - value += ');\n\n' - function_pointers[key] = value - - # vfuncs for signals - if len(i.signals) > 0: - self.h.write('\n') - for s in i.signals: - key = (s.since, '_signal_%s'%s.name_lower) - value = ' void (*%s) (\n'%(s.name_lower) - value += ' %s *object'%(i.camel_name) - for a in s.args: - value += ',\n %sarg_%s'%(a.ctype_in, a.name) - value += ');\n\n' - function_pointers[key] = value - - # vfuncs for properties - if len(i.properties) > 0: - self.h.write('\n') - for p in i.properties: - key = (p.since, '_prop_get_%s'%p.name_lower) - value = ' %s (*get_%s) (%s *object);\n\n'%(p.arg.ctype_in, p.name_lower, i.camel_name) - function_pointers[key] = value - - # Sort according to @since tag, then name.. this ensures - # that the function pointers don't change order assuming - # judicious use of @since - # - # Also use a proper version comparison function so e.g. - # 10.0 comes after 2.0. - # - # See https://bugzilla.gnome.org/show_bug.cgi?id=647577#c5 - # for discussion - for key in sorted(function_pointers.keys(), key=utils.version_cmp_key): - self.h.write('%s'%function_pointers[key]) - - self.h.write('};\n') - self.h.write('\n') - if self.generate_autocleanup == 'all': - self.h.write('#if GLIB_CHECK_VERSION(2, 44, 0)\n') - self.h.write('G_DEFINE_AUTOPTR_CLEANUP_FUNC (%s, g_object_unref)\n' % (i.camel_name)) - self.h.write('#endif\n') - self.h.write('\n') - self.h.write('GType %s_get_type (void) G_GNUC_CONST;\n'%(i.name_lower)) - self.h.write('\n') - self.h.write('GDBusInterfaceInfo *%s_interface_info (void);\n'%(i.name_lower)) - self.h.write('guint %s_override_properties (GObjectClass *klass, guint property_id_begin);\n'%(i.name_lower)) - self.h.write('\n') - - # Then method call completion functions - if len(i.methods) > 0: - self.h.write('\n') - self.h.write('/* D-Bus method call completion functions: */\n') - for m in i.methods: - unix_fd = False - if utils.lookup_annotation(m.annotations, 'org.gtk.GDBus.C.UnixFD'): - unix_fd = True - if m.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write('void %s_complete_%s (\n' - ' %s *object,\n' - ' GDBusMethodInvocation *invocation'%(i.name_lower, m.name_lower, i.camel_name)) - if unix_fd: - self.h.write(',\n GUnixFDList *fd_list') - for a in m.out_args: - self.h.write(',\n %s%s'%(a.ctype_in, a.name)) - self.h.write(');\n') - self.h.write('\n') - self.h.write('\n') - - # Then signal emission functions - if len(i.signals) > 0: - self.h.write('\n') - self.h.write('/* D-Bus signal emissions functions: */\n') - for s in i.signals: - if s.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write('void %s_emit_%s (\n' - ' %s *object'%(i.name_lower, s.name_lower, i.camel_name)) - for a in s.args: - self.h.write(',\n %sarg_%s'%(a.ctype_in, a.name)) - self.h.write(');\n') - self.h.write('\n') - self.h.write('\n') - - # Then method call declarations - if len(i.methods) > 0: - self.h.write('\n') - self.h.write('/* D-Bus method calls: */\n') - for m in i.methods: - unix_fd = False - if utils.lookup_annotation(m.annotations, 'org.gtk.GDBus.C.UnixFD'): - unix_fd = True - # async begin - if m.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write('void %s_call_%s (\n' - ' %s *proxy'%(i.name_lower, m.name_lower, i.camel_name)) - for a in m.in_args: - self.h.write(',\n %sarg_%s'%(a.ctype_in, a.name)) - if unix_fd: - self.h.write(',\n GUnixFDList *fd_list') - self.h.write(',\n' - ' GCancellable *cancellable,\n' - ' GAsyncReadyCallback callback,\n' - ' gpointer user_data);\n') - self.h.write('\n') - # async finish - if m.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write('gboolean %s_call_%s_finish (\n' - ' %s *proxy'%(i.name_lower, m.name_lower, i.camel_name)) - for a in m.out_args: - self.h.write(',\n %sout_%s'%(a.ctype_out, a.name)) - if unix_fd: - self.h.write(',\n GUnixFDList **out_fd_list') - self.h.write(',\n' - ' GAsyncResult *res,\n' - ' GError **error);\n') - self.h.write('\n') - # sync - if m.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write('gboolean %s_call_%s_sync (\n' - ' %s *proxy'%(i.name_lower, m.name_lower, i.camel_name)) - for a in m.in_args: - self.h.write(',\n %sarg_%s'%(a.ctype_in, a.name)) - if unix_fd: - self.h.write(',\n GUnixFDList *fd_list') - for a in m.out_args: - self.h.write(',\n %sout_%s'%(a.ctype_out, a.name)) - if unix_fd: - self.h.write(',\n GUnixFDList **out_fd_list') - self.h.write(',\n' - ' GCancellable *cancellable,\n' - ' GError **error);\n') - self.h.write('\n') - self.h.write('\n') - - # Then the property accessor declarations - if len(i.properties) > 0: - self.h.write('\n') - self.h.write('/* D-Bus property accessors: */\n') - for p in i.properties: - # getter - if p.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write('%s%s_get_%s (%s *object);\n'%(p.arg.ctype_in, i.name_lower, p.name_lower, i.camel_name)) - if p.arg.free_func != None: - if p.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write('%s%s_dup_%s (%s *object);\n'%(p.arg.ctype_in_dup, i.name_lower, p.name_lower, i.camel_name)) - # setter - if p.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write('void %s_set_%s (%s *object, %svalue);\n'%(i.name_lower, p.name_lower, i.camel_name, p.arg.ctype_in, )) - self.h.write('\n') - - # Then the proxy - self.h.write('\n') - self.h.write('/* ---- */\n') - self.h.write('\n') - self.h.write('#define %sTYPE_%s_PROXY (%s_proxy_get_type ())\n'%(i.ns_upper, i.name_upper, i.name_lower)) - self.h.write('#define %s%s_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), %sTYPE_%s_PROXY, %sProxy))\n'%(i.ns_upper, i.name_upper, i.ns_upper, i.name_upper, i.camel_name)) - self.h.write('#define %s%s_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), %sTYPE_%s_PROXY, %sProxyClass))\n'%(i.ns_upper, i.name_upper, i.ns_upper, i.name_upper, i.camel_name)) - self.h.write('#define %s%s_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), %sTYPE_%s_PROXY, %sProxyClass))\n'%(i.ns_upper, i.name_upper, i.ns_upper, i.name_upper, i.camel_name)) - self.h.write('#define %sIS_%s_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), %sTYPE_%s_PROXY))\n'%(i.ns_upper, i.name_upper, i.ns_upper, i.name_upper)) - self.h.write('#define %sIS_%s_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), %sTYPE_%s_PROXY))\n'%(i.ns_upper, i.name_upper, i.ns_upper, i.name_upper)) - self.h.write('\n') - self.h.write('typedef struct _%sProxy %sProxy;\n'%(i.camel_name, i.camel_name)) - self.h.write('typedef struct _%sProxyClass %sProxyClass;\n'%(i.camel_name, i.camel_name)) - self.h.write('typedef struct _%sProxyPrivate %sProxyPrivate;\n'%(i.camel_name, i.camel_name)) - self.h.write('\n') - self.h.write('struct _%sProxy\n'%(i.camel_name)) - self.h.write('{\n') - self.h.write(' /*< private >*/\n') - self.h.write(' GDBusProxy parent_instance;\n') - self.h.write(' %sProxyPrivate *priv;\n'%(i.camel_name)) - self.h.write('};\n') - self.h.write('\n') - self.h.write('struct _%sProxyClass\n'%(i.camel_name)) - self.h.write('{\n') - self.h.write(' GDBusProxyClass parent_class;\n') - self.h.write('};\n') - self.h.write('\n') - self.h.write('GType %s_proxy_get_type (void) G_GNUC_CONST;\n'%(i.name_lower)) - self.h.write('\n') - if self.generate_autocleanup in ('objects', 'all'): - self.h.write('#if GLIB_CHECK_VERSION(2, 44, 0)\n') - self.h.write('G_DEFINE_AUTOPTR_CLEANUP_FUNC (%sProxy, g_object_unref)\n' % (i.camel_name)) - self.h.write('#endif\n') - self.h.write('\n') - if i.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write('void %s_proxy_new (\n' - ' GDBusConnection *connection,\n' - ' GDBusProxyFlags flags,\n' - ' const gchar *name,\n' - ' const gchar *object_path,\n' - ' GCancellable *cancellable,\n' - ' GAsyncReadyCallback callback,\n' - ' gpointer user_data);\n' - %(i.name_lower)) - if i.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write('%s *%s_proxy_new_finish (\n' - ' GAsyncResult *res,\n' - ' GError **error);\n' - %(i.camel_name, i.name_lower)) - if i.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write('%s *%s_proxy_new_sync (\n' - ' GDBusConnection *connection,\n' - ' GDBusProxyFlags flags,\n' - ' const gchar *name,\n' - ' const gchar *object_path,\n' - ' GCancellable *cancellable,\n' - ' GError **error);\n' - %(i.camel_name, i.name_lower)) - self.h.write('\n') - if i.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write('void %s_proxy_new_for_bus (\n' - ' GBusType bus_type,\n' - ' GDBusProxyFlags flags,\n' - ' const gchar *name,\n' - ' const gchar *object_path,\n' - ' GCancellable *cancellable,\n' - ' GAsyncReadyCallback callback,\n' - ' gpointer user_data);\n' - %(i.name_lower)) - if i.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write('%s *%s_proxy_new_for_bus_finish (\n' - ' GAsyncResult *res,\n' - ' GError **error);\n' - %(i.camel_name, i.name_lower)) - if i.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write('%s *%s_proxy_new_for_bus_sync (\n' - ' GBusType bus_type,\n' - ' GDBusProxyFlags flags,\n' - ' const gchar *name,\n' - ' const gchar *object_path,\n' - ' GCancellable *cancellable,\n' - ' GError **error);\n' - %(i.camel_name, i.name_lower)) - self.h.write('\n') - - # Then the skeleton - self.h.write('\n') - self.h.write('/* ---- */\n') - self.h.write('\n') - self.h.write('#define %sTYPE_%s_SKELETON (%s_skeleton_get_type ())\n'%(i.ns_upper, i.name_upper, i.name_lower)) - self.h.write('#define %s%s_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), %sTYPE_%s_SKELETON, %sSkeleton))\n'%(i.ns_upper, i.name_upper, i.ns_upper, i.name_upper, i.camel_name)) - self.h.write('#define %s%s_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), %sTYPE_%s_SKELETON, %sSkeletonClass))\n'%(i.ns_upper, i.name_upper, i.ns_upper, i.name_upper, i.camel_name)) - self.h.write('#define %s%s_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), %sTYPE_%s_SKELETON, %sSkeletonClass))\n'%(i.ns_upper, i.name_upper, i.ns_upper, i.name_upper, i.camel_name)) - self.h.write('#define %sIS_%s_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), %sTYPE_%s_SKELETON))\n'%(i.ns_upper, i.name_upper, i.ns_upper, i.name_upper)) - self.h.write('#define %sIS_%s_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), %sTYPE_%s_SKELETON))\n'%(i.ns_upper, i.name_upper, i.ns_upper, i.name_upper)) - self.h.write('\n') - self.h.write('typedef struct _%sSkeleton %sSkeleton;\n'%(i.camel_name, i.camel_name)) - self.h.write('typedef struct _%sSkeletonClass %sSkeletonClass;\n'%(i.camel_name, i.camel_name)) - self.h.write('typedef struct _%sSkeletonPrivate %sSkeletonPrivate;\n'%(i.camel_name, i.camel_name)) - self.h.write('\n') - self.h.write('struct _%sSkeleton\n'%(i.camel_name)) - self.h.write('{\n') - self.h.write(' /*< private >*/\n') - self.h.write(' GDBusInterfaceSkeleton parent_instance;\n') - self.h.write(' %sSkeletonPrivate *priv;\n'%(i.camel_name)) - self.h.write('};\n') - self.h.write('\n') - self.h.write('struct _%sSkeletonClass\n'%(i.camel_name)) - self.h.write('{\n') - self.h.write(' GDBusInterfaceSkeletonClass parent_class;\n') - self.h.write('};\n') - self.h.write('\n') - self.h.write('GType %s_skeleton_get_type (void) G_GNUC_CONST;\n'%(i.name_lower)) - self.h.write('\n') - if self.generate_autocleanup in ('objects', 'all'): - self.h.write('#if GLIB_CHECK_VERSION(2, 44, 0)\n') - self.h.write('G_DEFINE_AUTOPTR_CLEANUP_FUNC (%sSkeleton, g_object_unref)\n' % (i.camel_name)) - self.h.write('#endif\n') - self.h.write('\n') - if i.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write('%s *%s_skeleton_new (void);\n'%(i.camel_name, i.name_lower)) - - self.h.write('\n') - - # Finally, the Object, ObjectProxy, ObjectSkeleton and ObjectManagerClient - if self.generate_objmanager: - self.h.write('\n') - self.h.write('/* ---- */\n') - self.h.write('\n') - self.h.write('#define %sTYPE_OBJECT (%sobject_get_type ())\n'%(self.ns_upper, self.ns_lower)) - self.h.write('#define %sOBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), %sTYPE_OBJECT, %sObject))\n'%(self.ns_upper, self.ns_upper, self.namespace)) - self.h.write('#define %sIS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), %sTYPE_OBJECT))\n'%(self.ns_upper, self.ns_upper)) - self.h.write('#define %sOBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), %sTYPE_OBJECT, %sObject))\n'%(self.ns_upper, self.ns_upper, self.namespace)) - self.h.write('\n') - self.h.write('struct _%sObject;\n'%(self.namespace)) - self.h.write('typedef struct _%sObject %sObject;\n'%(self.namespace, self.namespace)) - self.h.write('typedef struct _%sObjectIface %sObjectIface;\n'%(self.namespace, self.namespace)) - self.h.write('\n') - self.h.write('struct _%sObjectIface\n'%(self.namespace)) - self.h.write('{\n' - ' GTypeInterface parent_iface;\n' - '};\n' - '\n') - self.h.write('GType %sobject_get_type (void) G_GNUC_CONST;\n' - '\n' - %(self.ns_lower)) - for i in self.ifaces: - if i.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write ('%s *%sobject_get_%s (%sObject *object);\n' - %(i.camel_name, self.ns_lower, i.name_upper.lower(), self.namespace)) - for i in self.ifaces: - if i.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write ('%s *%sobject_peek_%s (%sObject *object);\n' - %(i.camel_name, self.ns_lower, i.name_upper.lower(), self.namespace)) - self.h.write('\n') - self.h.write('#define %sTYPE_OBJECT_PROXY (%sobject_proxy_get_type ())\n'%(self.ns_upper, self.ns_lower)) - self.h.write('#define %sOBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), %sTYPE_OBJECT_PROXY, %sObjectProxy))\n'%(self.ns_upper, self.ns_upper, self.namespace)) - self.h.write('#define %sOBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), %sTYPE_OBJECT_PROXY, %sObjectProxyClass))\n'%(self.ns_upper, self.ns_upper, self.namespace)) - self.h.write('#define %sOBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), %sTYPE_OBJECT_PROXY, %sObjectProxyClass))\n'%(self.ns_upper, self.ns_upper, self.namespace)) - self.h.write('#define %sIS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), %sTYPE_OBJECT_PROXY))\n'%(self.ns_upper, self.ns_upper)) - self.h.write('#define %sIS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), %sTYPE_OBJECT_PROXY))\n'%(self.ns_upper, self.ns_upper)) - self.h.write('\n') - self.h.write('typedef struct _%sObjectProxy %sObjectProxy;\n'%(self.namespace, self.namespace)) - self.h.write('typedef struct _%sObjectProxyClass %sObjectProxyClass;\n'%(self.namespace, self.namespace)) - self.h.write('typedef struct _%sObjectProxyPrivate %sObjectProxyPrivate;\n'%(self.namespace, self.namespace)) - self.h.write('\n') - self.h.write('struct _%sObjectProxy\n'%(self.namespace)) - self.h.write('{\n') - self.h.write(' /*< private >*/\n') - self.h.write(' GDBusObjectProxy parent_instance;\n') - self.h.write(' %sObjectProxyPrivate *priv;\n'%(self.namespace)) - self.h.write('};\n') - self.h.write('\n') - self.h.write('struct _%sObjectProxyClass\n'%(self.namespace)) - self.h.write('{\n') - self.h.write(' GDBusObjectProxyClass parent_class;\n') - self.h.write('};\n') - self.h.write('\n') - self.h.write('GType %sobject_proxy_get_type (void) G_GNUC_CONST;\n'%(self.ns_lower)) - self.h.write('\n') - if self.generate_autocleanup in ('objects', 'all'): - self.h.write('#if GLIB_CHECK_VERSION(2, 44, 0)\n') - self.h.write('G_DEFINE_AUTOPTR_CLEANUP_FUNC (%sObjectProxy, g_object_unref)\n' % (self.namespace)) - self.h.write('#endif\n') - self.h.write('\n') - self.h.write('%sObjectProxy *%sobject_proxy_new (GDBusConnection *connection, const gchar *object_path);\n'%(self.namespace, self.ns_lower)) - self.h.write('\n') - self.h.write('#define %sTYPE_OBJECT_SKELETON (%sobject_skeleton_get_type ())\n'%(self.ns_upper, self.ns_lower)) - self.h.write('#define %sOBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), %sTYPE_OBJECT_SKELETON, %sObjectSkeleton))\n'%(self.ns_upper, self.ns_upper, self.namespace)) - self.h.write('#define %sOBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), %sTYPE_OBJECT_SKELETON, %sObjectSkeletonClass))\n'%(self.ns_upper, self.ns_upper, self.namespace)) - self.h.write('#define %sOBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), %sTYPE_OBJECT_SKELETON, %sObjectSkeletonClass))\n'%(self.ns_upper, self.ns_upper, self.namespace)) - self.h.write('#define %sIS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), %sTYPE_OBJECT_SKELETON))\n'%(self.ns_upper, self.ns_upper)) - self.h.write('#define %sIS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), %sTYPE_OBJECT_SKELETON))\n'%(self.ns_upper, self.ns_upper)) - self.h.write('\n') - self.h.write('typedef struct _%sObjectSkeleton %sObjectSkeleton;\n'%(self.namespace, self.namespace)) - self.h.write('typedef struct _%sObjectSkeletonClass %sObjectSkeletonClass;\n'%(self.namespace, self.namespace)) - self.h.write('typedef struct _%sObjectSkeletonPrivate %sObjectSkeletonPrivate;\n'%(self.namespace, self.namespace)) - self.h.write('\n') - self.h.write('struct _%sObjectSkeleton\n'%(self.namespace)) - self.h.write('{\n') - self.h.write(' /*< private >*/\n') - self.h.write(' GDBusObjectSkeleton parent_instance;\n') - self.h.write(' %sObjectSkeletonPrivate *priv;\n'%(self.namespace)) - self.h.write('};\n') - self.h.write('\n') - self.h.write('struct _%sObjectSkeletonClass\n'%(self.namespace)) - self.h.write('{\n') - self.h.write(' GDBusObjectSkeletonClass parent_class;\n') - self.h.write('};\n') - self.h.write('\n') - self.h.write('GType %sobject_skeleton_get_type (void) G_GNUC_CONST;\n'%(self.ns_lower)) - self.h.write('\n') - if self.generate_autocleanup in ('objects', 'all'): - self.h.write('#if GLIB_CHECK_VERSION(2, 44, 0)\n') - self.h.write('G_DEFINE_AUTOPTR_CLEANUP_FUNC (%sObjectSkeleton, g_object_unref)\n' % (self.namespace)) - self.h.write('#endif\n') - self.h.write('\n') - self.h.write('%sObjectSkeleton *%sobject_skeleton_new (const gchar *object_path);\n' - %(self.namespace, self.ns_lower)) - for i in self.ifaces: - if i.deprecated: - self.h.write('G_GNUC_DEPRECATED ') - self.h.write ('void %sobject_skeleton_set_%s (%sObjectSkeleton *object, %s *interface_);\n' - %(self.ns_lower, i.name_upper.lower(), self.namespace, i.camel_name)) - self.h.write('\n') - - self.h.write('/* ---- */\n') - self.h.write('\n') - self.h.write('#define %sTYPE_OBJECT_MANAGER_CLIENT (%sobject_manager_client_get_type ())\n'%(self.ns_upper, self.ns_lower)) - self.h.write('#define %sOBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), %sTYPE_OBJECT_MANAGER_CLIENT, %sObjectManagerClient))\n'%(self.ns_upper, self.ns_upper, self.namespace)) - self.h.write('#define %sOBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), %sTYPE_OBJECT_MANAGER_CLIENT, %sObjectManagerClientClass))\n'%(self.ns_upper, self.ns_upper, self.namespace)) - self.h.write('#define %sOBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), %sTYPE_OBJECT_MANAGER_CLIENT, %sObjectManagerClientClass))\n'%(self.ns_upper, self.ns_upper, self.namespace)) - self.h.write('#define %sIS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), %sTYPE_OBJECT_MANAGER_CLIENT))\n'%(self.ns_upper, self.ns_upper)) - self.h.write('#define %sIS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), %sTYPE_OBJECT_MANAGER_CLIENT))\n'%(self.ns_upper, self.ns_upper)) - self.h.write('\n') - self.h.write('typedef struct _%sObjectManagerClient %sObjectManagerClient;\n'%(self.namespace, self.namespace)) - self.h.write('typedef struct _%sObjectManagerClientClass %sObjectManagerClientClass;\n'%(self.namespace, self.namespace)) - self.h.write('typedef struct _%sObjectManagerClientPrivate %sObjectManagerClientPrivate;\n'%(self.namespace, self.namespace)) - self.h.write('\n') - self.h.write('struct _%sObjectManagerClient\n'%(self.namespace)) - self.h.write('{\n') - self.h.write(' /*< private >*/\n') - self.h.write(' GDBusObjectManagerClient parent_instance;\n') - self.h.write(' %sObjectManagerClientPrivate *priv;\n'%(self.namespace)) - self.h.write('};\n') - self.h.write('\n') - self.h.write('struct _%sObjectManagerClientClass\n'%(self.namespace)) - self.h.write('{\n') - self.h.write(' GDBusObjectManagerClientClass parent_class;\n') - self.h.write('};\n') - self.h.write('\n') - if self.generate_autocleanup in ('objects', 'all'): - self.h.write('#if GLIB_CHECK_VERSION(2, 44, 0)\n') - self.h.write('G_DEFINE_AUTOPTR_CLEANUP_FUNC (%sObjectManagerClient, g_object_unref)\n' % (self.namespace)) - self.h.write('#endif\n') - self.h.write('\n') - self.h.write('GType %sobject_manager_client_get_type (void) G_GNUC_CONST;\n'%(self.ns_lower)) - self.h.write('\n') - self.h.write('GType %sobject_manager_client_get_proxy_type (GDBusObjectManagerClient *manager, const gchar *object_path, const gchar *interface_name, gpointer user_data);\n'%(self.ns_lower)) - self.h.write('\n') - self.h.write('void %sobject_manager_client_new (\n' - ' GDBusConnection *connection,\n' - ' GDBusObjectManagerClientFlags flags,\n' - ' const gchar *name,\n' - ' const gchar *object_path,\n' - ' GCancellable *cancellable,\n' - ' GAsyncReadyCallback callback,\n' - ' gpointer user_data);\n' - %(self.ns_lower)) - self.h.write('GDBusObjectManager *%sobject_manager_client_new_finish (\n' - ' GAsyncResult *res,\n' - ' GError **error);\n' - %(self.ns_lower)) - self.h.write('GDBusObjectManager *%sobject_manager_client_new_sync (\n' - ' GDBusConnection *connection,\n' - ' GDBusObjectManagerClientFlags flags,\n' - ' const gchar *name,\n' - ' const gchar *object_path,\n' - ' GCancellable *cancellable,\n' - ' GError **error);\n' - %(self.ns_lower)) - self.h.write('\n') - self.h.write('void %sobject_manager_client_new_for_bus (\n' - ' GBusType bus_type,\n' - ' GDBusObjectManagerClientFlags flags,\n' - ' const gchar *name,\n' - ' const gchar *object_path,\n' - ' GCancellable *cancellable,\n' - ' GAsyncReadyCallback callback,\n' - ' gpointer user_data);\n' - %(self.ns_lower)) - self.h.write('GDBusObjectManager *%sobject_manager_client_new_for_bus_finish (\n' - ' GAsyncResult *res,\n' - ' GError **error);\n' - %(self.ns_lower)) - self.h.write('GDBusObjectManager *%sobject_manager_client_new_for_bus_sync (\n' - ' GBusType bus_type,\n' - ' GDBusObjectManagerClientFlags flags,\n' - ' const gchar *name,\n' - ' const gchar *object_path,\n' - ' GCancellable *cancellable,\n' - ' GError **error);\n' - %(self.ns_lower)) - self.h.write('\n') - - # ---------------------------------------------------------------------------------------------------- - - def generate_outro(self): - self.h.write('\n' - 'G_END_DECLS\n' - '\n' - '#endif /* __%s__ */\n'%(self.header_guard)) - - # ---------------------------------------------------------------------------------------------------- - - def generate_annotations(self, prefix, annotations): - if annotations == None: - return - - n = 0 - for a in annotations: - #self.generate_annotations('%s_%d'%(prefix, n), a.get_annotations()) - - # skip internal annotations - if a.key.startswith('org.gtk.GDBus'): - continue - - self.c.write('static const GDBusAnnotationInfo %s_%d =\n' - '{\n' - ' -1,\n' - ' (gchar *) "%s",\n' - ' (gchar *) "%s",\n'%(prefix, n, a.key, a.value)) - if len(a.annotations) == 0: - self.c.write(' NULL\n') - else: - self.c.write(' (GDBusAnnotationInfo **) &%s_%d_pointers\n'%(prefix, n)) - self.c.write('};\n' - '\n') - n += 1 - - if n > 0: - self.c.write('static const GDBusAnnotationInfo * const %s_pointers[] =\n' - '{\n'%(prefix)) - m = 0; - for a in annotations: - if a.key.startswith('org.gtk.GDBus'): - continue - self.c.write(' &%s_%d,\n'%(prefix, m)) - m += 1 - self.c.write(' NULL\n' - '};\n' - '\n') - return n - - def generate_args(self, prefix, args): - for a in args: - num_anno = self.generate_annotations('%s_arg_%s_annotation_info'%(prefix, a.name), a.annotations) - - self.c.write('static const _ExtendedGDBusArgInfo %s_%s =\n' - '{\n' - ' {\n' - ' -1,\n' - ' (gchar *) "%s",\n' - ' (gchar *) "%s",\n'%(prefix, a.name, a.name, a.signature)) - if num_anno == 0: - self.c.write(' NULL\n') - else: - self.c.write(' (GDBusAnnotationInfo **) &%s_arg_%s_annotation_info_pointers\n'%(prefix, a.name)) - self.c.write(' },\n') - if not utils.lookup_annotation(a.annotations, 'org.gtk.GDBus.C.ForceGVariant'): - self.c.write(' FALSE\n') - else: - self.c.write(' TRUE\n') - self.c.write('};\n' - '\n') - - if len(args) > 0: - self.c.write('static const _ExtendedGDBusArgInfo * const %s_pointers[] =\n' - '{\n'%(prefix)) - for a in args: - self.c.write(' &%s_%s,\n'%(prefix, a.name)) - self.c.write(' NULL\n' - '};\n' - '\n') - - def generate_introspection_for_interface(self, i): - self.c.write('/* ---- Introspection data for %s ---- */\n' - '\n'%(i.name)) - - if len(i.methods) > 0: - for m in i.methods: - unix_fd = False - if utils.lookup_annotation(m.annotations, 'org.gtk.GDBus.C.UnixFD'): - unix_fd = True - self.generate_args('_%s_method_info_%s_IN_ARG'%(i.name_lower, m.name_lower), m.in_args) - self.generate_args('_%s_method_info_%s_OUT_ARG'%(i.name_lower, m.name_lower), m.out_args) - - num_anno = self.generate_annotations('_%s_method_%s_annotation_info'%(i.name_lower, m.name_lower), m.annotations) - - self.c.write('static const _ExtendedGDBusMethodInfo _%s_method_info_%s =\n' - '{\n' - ' {\n' - ' -1,\n' - ' (gchar *) "%s",\n'%(i.name_lower, m.name_lower, m.name)) - if len(m.in_args) == 0: - self.c.write(' NULL,\n') - else: - self.c.write(' (GDBusArgInfo **) &_%s_method_info_%s_IN_ARG_pointers,\n'%(i.name_lower, m.name_lower)) - if len(m.out_args) == 0: - self.c.write(' NULL,\n') - else: - self.c.write(' (GDBusArgInfo **) &_%s_method_info_%s_OUT_ARG_pointers,\n'%(i.name_lower, m.name_lower)) - if num_anno == 0: - self.c.write(' NULL\n') - else: - self.c.write(' (GDBusAnnotationInfo **) &_%s_method_%s_annotation_info_pointers\n'%(i.name_lower, m.name_lower)) - self.c.write(' },\n' - ' "handle-%s",\n' - ' %s\n' - %(m.name_hyphen, 'TRUE' if unix_fd else 'FALSE')) - self.c.write('};\n' - '\n') - - self.c.write('static const _ExtendedGDBusMethodInfo * const _%s_method_info_pointers[] =\n' - '{\n'%(i.name_lower)) - for m in i.methods: - self.c.write(' &_%s_method_info_%s,\n'%(i.name_lower, m.name_lower)) - self.c.write(' NULL\n' - '};\n' - '\n') - - # --- - - if len(i.signals) > 0: - for s in i.signals: - self.generate_args('_%s_signal_info_%s_ARG'%(i.name_lower, s.name_lower), s.args) - - num_anno = self.generate_annotations('_%s_signal_%s_annotation_info'%(i.name_lower, s.name_lower), s.annotations) - self.c.write('static const _ExtendedGDBusSignalInfo _%s_signal_info_%s =\n' - '{\n' - ' {\n' - ' -1,\n' - ' (gchar *) "%s",\n'%(i.name_lower, s.name_lower, s.name)) - if len(s.args) == 0: - self.c.write(' NULL,\n') - else: - self.c.write(' (GDBusArgInfo **) &_%s_signal_info_%s_ARG_pointers,\n'%(i.name_lower, s.name_lower)) - if num_anno == 0: - self.c.write(' NULL\n') - else: - self.c.write(' (GDBusAnnotationInfo **) &_%s_signal_%s_annotation_info_pointers\n'%(i.name_lower, s.name_lower)) - self.c.write(' },\n' - ' "%s"\n' - %(s.name_hyphen)) - self.c.write('};\n' - '\n') - - self.c.write('static const _ExtendedGDBusSignalInfo * const _%s_signal_info_pointers[] =\n' - '{\n'%(i.name_lower)) - for s in i.signals: - self.c.write(' &_%s_signal_info_%s,\n'%(i.name_lower, s.name_lower)) - self.c.write(' NULL\n' - '};\n' - '\n') - - # --- - - if len(i.properties) > 0: - for p in i.properties: - if p.readable and p.writable: - access = 'G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE' - elif p.readable: - access = 'G_DBUS_PROPERTY_INFO_FLAGS_READABLE' - elif p.writable: - access = 'G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE' - else: - access = 'G_DBUS_PROPERTY_INFO_FLAGS_NONE' - num_anno = self.generate_annotations('_%s_property_%s_annotation_info'%(i.name_lower, p.name_lower), p.annotations) - self.c.write('static const _ExtendedGDBusPropertyInfo _%s_property_info_%s =\n' - '{\n' - ' {\n' - ' -1,\n' - ' (gchar *) "%s",\n' - ' (gchar *) "%s",\n' - ' %s,\n'%(i.name_lower, p.name_lower, p.name, p.arg.signature, access)) - if num_anno == 0: - self.c.write(' NULL\n') - else: - self.c.write(' (GDBusAnnotationInfo **) &_%s_property_%s_annotation_info_pointers\n'%(i.name_lower, p.name_lower)) - self.c.write(' },\n' - ' "%s",\n' - %(p.name_hyphen)) - if not utils.lookup_annotation(p.annotations, 'org.gtk.GDBus.C.ForceGVariant'): - self.c.write(' FALSE\n') - else: - self.c.write(' TRUE\n') - self.c.write('};\n' - '\n') - - self.c.write('static const _ExtendedGDBusPropertyInfo * const _%s_property_info_pointers[] =\n' - '{\n'%(i.name_lower)) - for p in i.properties: - self.c.write(' &_%s_property_info_%s,\n'%(i.name_lower, p.name_lower)) - self.c.write(' NULL\n' - '};\n' - '\n') - - num_anno = self.generate_annotations('_%s_annotation_info'%(i.name_lower), i.annotations) - self.c.write('static const _ExtendedGDBusInterfaceInfo _%s_interface_info =\n' - '{\n' - ' {\n' - ' -1,\n' - ' (gchar *) "%s",\n'%(i.name_lower, i.name)) - if len(i.methods) == 0: - self.c.write(' NULL,\n') - else: - self.c.write(' (GDBusMethodInfo **) &_%s_method_info_pointers,\n'%(i.name_lower)) - if len(i.signals) == 0: - self.c.write(' NULL,\n') - else: - self.c.write(' (GDBusSignalInfo **) &_%s_signal_info_pointers,\n'%(i.name_lower)) - if len(i.properties) == 0: - self.c.write(' NULL,\n') - else: - self.c.write(' (GDBusPropertyInfo **) &_%s_property_info_pointers,\n'%(i.name_lower)) - if num_anno == 0: - self.c.write(' NULL\n') - else: - self.c.write(' (GDBusAnnotationInfo **) &_%s_annotation_info_pointers\n'%(i.name_lower)) - self.c.write(' },\n' - ' "%s",\n' - '};\n' - '\n' - %(i.name_hyphen)) - self.c.write('\n') - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %s_interface_info:\n' - ' *\n' - ' * Gets a machine-readable description of the #%s D-Bus interface.\n' - ' *\n' - ' * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.\n' - %(i.name_lower, i.name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write('GDBusInterfaceInfo *\n' - '%s_interface_info (void)\n' - '{\n' - ' return (GDBusInterfaceInfo *) &_%s_interface_info.parent_struct;\n' - '}\n' - '\n'%(i.name_lower, i.name_lower)) - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %s_override_properties:\n' - ' * @klass: The class structure for a #GObject-derived class.\n' - ' * @property_id_begin: The property id to assign to the first overridden property.\n' - ' *\n' - ' * Overrides all #GObject properties in the #%s interface for a concrete class.\n' - ' * The properties are overridden in the order they are defined.\n' - ' *\n' - ' * Returns: The last property id.\n' - %(i.name_lower, i.camel_name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write('guint\n' - '%s_override_properties (GObjectClass *klass, guint property_id_begin)\n' - '{\n'%(i.name_lower)) - for p in i.properties: - self.c.write (' g_object_class_override_property (klass, property_id_begin++, "%s");\n'%(p.name_hyphen)) - self.c.write(' return property_id_begin - 1;\n' - '}\n' - '\n') - self.c.write('\n') - - # ---------------------------------------------------------------------------------------------------- - - def generate_interface(self, i): - self.c.write('\n') - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %s:\n' - ' *\n' - ' * Abstract interface type for the D-Bus interface #%s.\n' - %(i.camel_name, i.name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write('\n') - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sIface:\n' - ' * @parent_iface: The parent interface.\n' - %(i.camel_name), False)) - - doc_bits = {} - if len(i.methods) > 0: - for m in i.methods: - key = (m.since, '_method_%s'%m.name_lower) - value = '@handle_%s: '%(m.name_lower) - value += 'Handler for the #%s::handle-%s signal.'%(i.camel_name, m.name_hyphen) - doc_bits[key] = value - if len(i.signals) > 0: - for s in i.signals: - key = (s.since, '_signal_%s'%s.name_lower) - value = '@%s: '%(s.name_lower) - value += 'Handler for the #%s::%s signal.'%(i.camel_name, s.name_hyphen) - doc_bits[key] = value - if len(i.properties) > 0: - for p in i.properties: - key = (p.since, '_prop_get_%s'%p.name_lower) - value = '@get_%s: '%(p.name_lower) - value += 'Getter for the #%s:%s property.'%(i.camel_name, p.name_hyphen) - doc_bits[key] = value - for key in sorted(doc_bits.keys(), key=utils.version_cmp_key): - self.c.write(' * %s\n'%doc_bits[key]) - - self.c.write(self.docbook_gen.expand( - ' *\n' - ' * Virtual table for the D-Bus interface #%s.\n' - %(i.name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write('\n') - - self.c.write('typedef %sIface %sInterface;\n'%(i.camel_name, i.camel_name)) - self.c.write('G_DEFINE_INTERFACE (%s, %s, G_TYPE_OBJECT);\n'%(i.camel_name, i.name_lower)) - self.c.write('\n') - - self.c.write('static void\n' - '%s_default_init (%sIface *iface)\n' - '{\n'%(i.name_lower, i.camel_name)); - - if len(i.methods) > 0: - self.c.write(' /* GObject signals for incoming D-Bus method calls: */\n') - for m in i.methods: - unix_fd = False - if utils.lookup_annotation(m.annotations, 'org.gtk.GDBus.C.UnixFD'): - unix_fd = True - self.c.write(self.docbook_gen.expand( - ' /**\n' - ' * %s::handle-%s:\n' - ' * @object: A #%s.\n' - ' * @invocation: A #GDBusMethodInvocation.\n' - %(i.camel_name, m.name_hyphen, i.camel_name), False)) - if unix_fd: - self.c.write (' * @fd_list: (allow-none): A #GUnixFDList or %NULL.\n') - for a in m.in_args: - self.c.write (' * @arg_%s: Argument passed by remote caller.\n'%(a.name)) - self.c.write(self.docbook_gen.expand( - ' *\n' - ' * Signal emitted when a remote caller is invoking the %s.%s() D-Bus method.\n' - ' *\n' - ' * If a signal handler returns %%TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call %s_complete_%s() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %%G_DBUS_ERROR_UNKNOWN_METHOD error is returned.\n' - ' *\n' - ' * Returns: %%TRUE if the invocation was handled, %%FALSE to let other signal handlers run.\n' - %(i.name, m.name, i.name_lower, m.name_lower), False)) - self.write_gtkdoc_deprecated_and_since_and_close(m, self.c, 2) - if unix_fd: - extra_args = 2 - else: - extra_args = 1 - self.c.write(' g_signal_new ("handle-%s",\n' - ' G_TYPE_FROM_INTERFACE (iface),\n' - ' G_SIGNAL_RUN_LAST,\n' - ' G_STRUCT_OFFSET (%sIface, handle_%s),\n' - ' g_signal_accumulator_true_handled,\n' - ' NULL,\n' # accu_data - ' g_cclosure_marshal_generic,\n' - ' G_TYPE_BOOLEAN,\n' - ' %d,\n' - ' G_TYPE_DBUS_METHOD_INVOCATION' - %(m.name_hyphen, i.camel_name, m.name_lower, len(m.in_args) + extra_args)) - if unix_fd: - self.c.write(', G_TYPE_UNIX_FD_LIST') - for a in m.in_args: - self.c.write (', %s'%(a.gtype)) - self.c.write(');\n') - self.c.write('\n') - - if len(i.signals) > 0: - self.c.write(' /* GObject signals for received D-Bus signals: */\n') - for s in i.signals: - self.c.write(self.docbook_gen.expand( - ' /**\n' - ' * %s::%s:\n' - ' * @object: A #%s.\n' - %(i.camel_name, s.name_hyphen, i.camel_name), False)) - for a in s.args: - self.c.write (' * @arg_%s: Argument.\n'%(a.name)) - self.c.write(self.docbook_gen.expand( - ' *\n' - ' * On the client-side, this signal is emitted whenever the D-Bus signal #%s::%s is received.\n' - ' *\n' - ' * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.\n' - %(i.name, s.name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(s, self.c, 2) - self.c.write(' g_signal_new ("%s",\n' - ' G_TYPE_FROM_INTERFACE (iface),\n' - ' G_SIGNAL_RUN_LAST,\n' - ' G_STRUCT_OFFSET (%sIface, %s),\n' - ' NULL,\n' # accumulator - ' NULL,\n' # accu_data - ' g_cclosure_marshal_generic,\n' - ' G_TYPE_NONE,\n' - ' %d' - %(s.name_hyphen, i.camel_name, s.name_lower, len(s.args))) - for a in s.args: - self.c.write (', %s'%(a.gtype)) - self.c.write(');\n') - self.c.write('\n') - - if len(i.properties) > 0: - self.c.write(' /* GObject properties for D-Bus properties: */\n') - for p in i.properties: - if p.readable and p.writable: - hint = 'Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side.' - elif p.readable: - hint = 'Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.' - elif p.writable: - hint = 'Since the D-Bus property for this #GObject property is writable but not readable, it is meaningful to write to it on both the client- and service-side. It is only meaningful, however, to read from it on the service-side.' - else: - raise RuntimeError('Cannot handle property %s that neither readable nor writable'%(p.name)) - self.c.write(self.docbook_gen.expand( - ' /**\n' - ' * %s:%s:\n' - ' *\n' - ' * Represents the D-Bus property #%s:%s.\n' - ' *\n' - ' * %s\n' - %(i.camel_name, p.name_hyphen, i.name, p.name, hint), False)) - self.write_gtkdoc_deprecated_and_since_and_close(p, self.c, 2) - self.c.write(' g_object_interface_install_property (iface,\n') - if p.arg.gtype == 'G_TYPE_VARIANT': - s = 'g_param_spec_variant ("%s", "%s", "%s", G_VARIANT_TYPE ("%s"), NULL'%(p.name_hyphen, p.name, p.name, p.arg.signature) - elif p.arg.signature == 'b': - s = 'g_param_spec_boolean ("%s", "%s", "%s", FALSE'%(p.name_hyphen, p.name, p.name) - elif p.arg.signature == 'y': - s = 'g_param_spec_uchar ("%s", "%s", "%s", 0, 255, 0'%(p.name_hyphen, p.name, p.name) - elif p.arg.signature == 'n': - s = 'g_param_spec_int ("%s", "%s", "%s", G_MININT16, G_MAXINT16, 0'%(p.name_hyphen, p.name, p.name) - elif p.arg.signature == 'q': - s = 'g_param_spec_uint ("%s", "%s", "%s", 0, G_MAXUINT16, 0'%(p.name_hyphen, p.name, p.name) - elif p.arg.signature == 'i': - s = 'g_param_spec_int ("%s", "%s", "%s", G_MININT32, G_MAXINT32, 0'%(p.name_hyphen, p.name, p.name) - elif p.arg.signature == 'u': - s = 'g_param_spec_uint ("%s", "%s", "%s", 0, G_MAXUINT32, 0'%(p.name_hyphen, p.name, p.name) - elif p.arg.signature == 'x': - s = 'g_param_spec_int64 ("%s", "%s", "%s", G_MININT64, G_MAXINT64, 0'%(p.name_hyphen, p.name, p.name) - elif p.arg.signature == 't': - s = 'g_param_spec_uint64 ("%s", "%s", "%s", 0, G_MAXUINT64, 0'%(p.name_hyphen, p.name, p.name) - elif p.arg.signature == 'd': - s = 'g_param_spec_double ("%s", "%s", "%s", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0'%(p.name_hyphen, p.name, p.name) - elif p.arg.signature == 's': - s = 'g_param_spec_string ("%s", "%s", "%s", NULL'%(p.name_hyphen, p.name, p.name) - elif p.arg.signature == 'o': - s = 'g_param_spec_string ("%s", "%s", "%s", NULL'%(p.name_hyphen, p.name, p.name) - elif p.arg.signature == 'g': - s = 'g_param_spec_string ("%s", "%s", "%s", NULL'%(p.name_hyphen, p.name, p.name) - elif p.arg.signature == 'ay': - s = 'g_param_spec_string ("%s", "%s", "%s", NULL'%(p.name_hyphen, p.name, p.name) - elif p.arg.signature == 'as': - s = 'g_param_spec_boxed ("%s", "%s", "%s", G_TYPE_STRV'%(p.name_hyphen, p.name, p.name) - elif p.arg.signature == 'ao': - s = 'g_param_spec_boxed ("%s", "%s", "%s", G_TYPE_STRV'%(p.name_hyphen, p.name, p.name) - elif p.arg.signature == 'aay': - s = 'g_param_spec_boxed ("%s", "%s", "%s", G_TYPE_STRV'%(p.name_hyphen, p.name, p.name) - else: - raise RuntimeError('Unsupported gtype %s for GParamSpec'%(p.arg.gtype)) - self.c.write(' %s, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));'%s); - self.c.write('\n') - - self.c.write('}\n' - '\n') - - # ---------------------------------------------------------------------------------------------------- - - def generate_property_accessors(self, i): - for p in i.properties: - # getter - if p.readable and p.writable: - hint = 'Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.' - elif p.readable: - hint = 'Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.' - elif p.writable: - hint = 'Since this D-Bus property is not readable, it is only meaningful to use this function on the service-side.' - else: - raise RuntimeError('Cannot handle property %s that neither readable nor writable'%(p.name)) - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %s_get_%s: (skip)\n' - ' * @object: A #%s.\n' - ' *\n' - ' * Gets the value of the #%s:%s D-Bus property.\n' - ' *\n' - ' * %s\n' - ' *\n' - %(i.name_lower, p.name_lower, i.camel_name, i.name, p.name, hint), False)) - if p.arg.free_func != None: - self.c.write(' * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use %s_dup_%s() if on another thread.\n' - ' *\n' - ' * Returns: (transfer none): The property value or %%NULL if the property is not set. Do not free the returned value, it belongs to @object.\n' - %(i.name_lower, p.name_lower)) - else: - self.c.write(' * Returns: The property value.\n') - self.write_gtkdoc_deprecated_and_since_and_close(p, self.c, 0) - self.c.write('%s\n' - '%s_get_%s (%s *object)\n' - '{\n'%(p.arg.ctype_in, i.name_lower, p.name_lower, i.camel_name)) - self.c.write(' return %s%s_GET_IFACE (object)->get_%s (object);\n'%(i.ns_upper, i.name_upper, p.name_lower)) - self.c.write('}\n') - self.c.write('\n') - if p.arg.free_func != None: - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %s_dup_%s: (skip)\n' - ' * @object: A #%s.\n' - ' *\n' - ' * Gets a copy of the #%s:%s D-Bus property.\n' - ' *\n' - ' * %s\n' - ' *\n' - ' * Returns: (transfer full): The property value or %%NULL if the property is not set. The returned value should be freed with %s().\n' - %(i.name_lower, p.name_lower, i.camel_name, i.name, p.name, hint, p.arg.free_func), False)) - self.write_gtkdoc_deprecated_and_since_and_close(p, self.c, 0) - self.c.write('%s\n' - '%s_dup_%s (%s *object)\n' - '{\n' - ' %svalue;\n'%(p.arg.ctype_in_dup, i.name_lower, p.name_lower, i.camel_name, p.arg.ctype_in_dup)) - self.c.write(' g_object_get (G_OBJECT (object), "%s", &value, NULL);\n'%(p.name_hyphen)) - self.c.write(' return value;\n') - self.c.write('}\n') - self.c.write('\n') - - # setter - if p.readable and p.writable: - hint = 'Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.' - elif p.readable: - hint = 'Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.' - elif p.writable: - hint = 'Since this D-Bus property is writable, it is meaningful to use this function on both the client- and service-side.' - else: - raise RuntimeError('Cannot handle property %s that neither readable nor writable'%(p.name)) - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %s_set_%s: (skip)\n' - ' * @object: A #%s.\n' - ' * @value: The value to set.\n' - ' *\n' - ' * Sets the #%s:%s D-Bus property to @value.\n' - ' *\n' - ' * %s\n' - %(i.name_lower, p.name_lower, i.camel_name, i.name, p.name, hint), False)) - self.write_gtkdoc_deprecated_and_since_and_close(p, self.c, 0) - self.c.write('void\n' - '%s_set_%s (%s *object, %svalue)\n' - '{\n'%(i.name_lower, p.name_lower, i.camel_name, p.arg.ctype_in, )) - self.c.write(' g_object_set (G_OBJECT (object), "%s", value, NULL);\n'%(p.name_hyphen)) - self.c.write('}\n') - self.c.write('\n') - - # --------------------------------------------------------------------------------------------------- - - def generate_signal_emitters(self, i): - for s in i.signals: - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %s_emit_%s:\n' - ' * @object: A #%s.\n' - %(i.name_lower, s.name_lower, i.camel_name), False)) - for a in s.args: - self.c.write(' * @arg_%s: Argument to pass with the signal.\n'%(a.name)) - self.c.write(self.docbook_gen.expand( - ' *\n' - ' * Emits the #%s::%s D-Bus signal.\n' - %(i.name, s.name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(s, self.c, 0) - self.c.write('void\n' - '%s_emit_%s (\n' - ' %s *object'%(i.name_lower, s.name_lower, i.camel_name)) - for a in s.args: - self.c.write(',\n %sarg_%s'%(a.ctype_in, a.name)) - self.c.write(')\n' - '{\n' - ' g_signal_emit_by_name (object, "%s"'%(s.name_hyphen)) - for a in s.args: - self.c.write(', arg_%s'%a.name) - self.c.write(');\n') - self.c.write('}\n' - '\n') - - # --------------------------------------------------------------------------------------------------- - - def generate_method_calls(self, i): - for m in i.methods: - unix_fd = False - if utils.lookup_annotation(m.annotations, 'org.gtk.GDBus.C.UnixFD'): - unix_fd = True - # async begin - self.c.write('/**\n' - ' * %s_call_%s:\n' - ' * @proxy: A #%sProxy.\n' - %(i.name_lower, m.name_lower, i.camel_name)) - for a in m.in_args: - self.c.write(' * @arg_%s: Argument to pass with the method invocation.\n'%(a.name)) - if unix_fd: - self.c.write(' * @fd_list: (allow-none): A #GUnixFDList or %NULL.\n') - self.c.write(self.docbook_gen.expand( - ' * @cancellable: (allow-none): A #GCancellable or %%NULL.\n' - ' * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %%NULL.\n' - ' * @user_data: User data to pass to @callback.\n' - ' *\n' - ' * Asynchronously invokes the %s.%s() D-Bus method on @proxy.\n' - ' * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from.\n' - ' * You can then call %s_call_%s_finish() to get the result of the operation.\n' - ' *\n' - ' * See %s_call_%s_sync() for the synchronous, blocking version of this method.\n' - %(i.name, m.name, i.name_lower, m.name_lower, i.name_lower, m.name_lower), False)) - self.write_gtkdoc_deprecated_and_since_and_close(m, self.c, 0) - self.c.write('void\n' - '%s_call_%s (\n' - ' %s *proxy'%(i.name_lower, m.name_lower, i.camel_name)) - for a in m.in_args: - self.c.write(',\n %sarg_%s'%(a.ctype_in, a.name)) - if unix_fd: - self.c.write(',\n GUnixFDList *fd_list') - self.c.write(',\n' - ' GCancellable *cancellable,\n' - ' GAsyncReadyCallback callback,\n' - ' gpointer user_data)\n' - '{\n') - if unix_fd: - self.c.write(' g_dbus_proxy_call_with_unix_fd_list (G_DBUS_PROXY (proxy),\n') - else: - self.c.write(' g_dbus_proxy_call (G_DBUS_PROXY (proxy),\n') - self.c.write(' "%s",\n' - ' g_variant_new ("('%(m.name)) - for a in m.in_args: - self.c.write('%s'%(a.format_in)) - self.c.write(')"') - for a in m.in_args: - self.c.write(',\n arg_%s'%(a.name)) - self.c.write('),\n' - ' G_DBUS_CALL_FLAGS_NONE,\n' - ' -1,\n') - if unix_fd: - self.c.write(' fd_list,\n') - self.c.write(' cancellable,\n' - ' callback,\n' - ' user_data);\n') - self.c.write('}\n' - '\n') - # async finish - self.c.write('/**\n' - ' * %s_call_%s_finish:\n' - ' * @proxy: A #%sProxy.\n' - %(i.name_lower, m.name_lower, i.camel_name)) - for a in m.out_args: - self.c.write(' * @out_%s: (out): Return location for return parameter or %%NULL to ignore.\n'%(a.name)) - if unix_fd: - self.c.write(' * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.\n') - self.c.write(self.docbook_gen.expand( - ' * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to %s_call_%s().\n' - ' * @error: Return location for error or %%NULL.\n' - ' *\n' - ' * Finishes an operation started with %s_call_%s().\n' - ' *\n' - ' * Returns: (skip): %%TRUE if the call succeded, %%FALSE if @error is set.\n' - %(i.name_lower, m.name_lower, i.name_lower, m.name_lower), False)) - self.write_gtkdoc_deprecated_and_since_and_close(m, self.c, 0) - self.c.write('gboolean\n' - '%s_call_%s_finish (\n' - ' %s *proxy'%(i.name_lower, m.name_lower, i.camel_name)) - for a in m.out_args: - self.c.write(',\n %sout_%s'%(a.ctype_out, a.name)) - if unix_fd: - self.c.write(',\n GUnixFDList **out_fd_list') - self.c.write(',\n' - ' GAsyncResult *res,\n' - ' GError **error)\n' - '{\n' - ' GVariant *_ret;\n') - if unix_fd: - self.c.write(' _ret = g_dbus_proxy_call_with_unix_fd_list_finish (G_DBUS_PROXY (proxy), out_fd_list, res, error);\n') - else: - self.c.write(' _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);\n') - self.c.write(' if (_ret == NULL)\n' - ' goto _out;\n') - self.c.write(' g_variant_get (_ret,\n' - ' \"(') - for a in m.out_args: - self.c.write('%s'%(a.format_out)) - self.c.write(')"') - for a in m.out_args: - self.c.write(',\n out_%s'%(a.name)) - self.c.write(');\n' - ' g_variant_unref (_ret);\n') - self.c.write('_out:\n' - ' return _ret != NULL;\n' - '}\n' - '\n') - - - # sync - self.c.write('/**\n' - ' * %s_call_%s_sync:\n' - ' * @proxy: A #%sProxy.\n' - %(i.name_lower, m.name_lower, i.camel_name)) - for a in m.in_args: - self.c.write(' * @arg_%s: Argument to pass with the method invocation.\n'%(a.name)) - if unix_fd: - self.c.write(' * @fd_list: (allow-none): A #GUnixFDList or %NULL.\n') - for a in m.out_args: - self.c.write(' * @out_%s: (out): Return location for return parameter or %%NULL to ignore.\n'%(a.name)) - if unix_fd: - self.c.write(' * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.\n') - self.c.write(self.docbook_gen.expand( - ' * @cancellable: (allow-none): A #GCancellable or %%NULL.\n' - ' * @error: Return location for error or %%NULL.\n' - ' *\n' - ' * Synchronously invokes the %s.%s() D-Bus method on @proxy. The calling thread is blocked until a reply is received.\n' - ' *\n' - ' * See %s_call_%s() for the asynchronous version of this method.\n' - ' *\n' - ' * Returns: (skip): %%TRUE if the call succeded, %%FALSE if @error is set.\n' - %(i.name, m.name, i.name_lower, m.name_lower), False)) - self.write_gtkdoc_deprecated_and_since_and_close(m, self.c, 0) - self.c.write('gboolean\n' - '%s_call_%s_sync (\n' - ' %s *proxy'%(i.name_lower, m.name_lower, i.camel_name)) - for a in m.in_args: - self.c.write(',\n %sarg_%s'%(a.ctype_in, a.name)) - if unix_fd: - self.c.write(',\n GUnixFDList *fd_list') - for a in m.out_args: - self.c.write(',\n %sout_%s'%(a.ctype_out, a.name)) - if unix_fd: - self.c.write(',\n GUnixFDList **out_fd_list') - self.c.write(',\n' - ' GCancellable *cancellable,\n' - ' GError **error)\n' - '{\n' - ' GVariant *_ret;\n') - if unix_fd: - self.c.write(' _ret = g_dbus_proxy_call_with_unix_fd_list_sync (G_DBUS_PROXY (proxy),\n') - else: - self.c.write(' _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),\n') - self.c.write(' "%s",\n' - ' g_variant_new ("('%(m.name)) - for a in m.in_args: - self.c.write('%s'%(a.format_in)) - self.c.write(')"') - for a in m.in_args: - self.c.write(',\n arg_%s'%(a.name)) - self.c.write('),\n' - ' G_DBUS_CALL_FLAGS_NONE,\n' - ' -1,\n') - if unix_fd: - self.c.write(' fd_list,\n' - ' out_fd_list,\n') - self.c.write(' cancellable,\n' - ' error);\n' - ' if (_ret == NULL)\n' - ' goto _out;\n') - self.c.write(' g_variant_get (_ret,\n' - ' \"(') - for a in m.out_args: - self.c.write('%s'%(a.format_out)) - self.c.write(')"') - for a in m.out_args: - self.c.write(',\n out_%s'%(a.name)) - self.c.write(');\n' - ' g_variant_unref (_ret);\n') - self.c.write('_out:\n' - ' return _ret != NULL;\n' - '}\n' - '\n') - - # --------------------------------------------------------------------------------------------------- - - def generate_method_completers(self, i): - for m in i.methods: - unix_fd = False - if utils.lookup_annotation(m.annotations, 'org.gtk.GDBus.C.UnixFD'): - unix_fd = True - self.c.write('/**\n' - ' * %s_complete_%s:\n' - ' * @object: A #%s.\n' - ' * @invocation: (transfer full): A #GDBusMethodInvocation.\n' - %(i.name_lower, m.name_lower, i.camel_name)) - if unix_fd: - self.c.write (' * @fd_list: (allow-none): A #GUnixFDList or %NULL.\n') - for a in m.out_args: - self.c.write(' * @%s: Parameter to return.\n'%(a.name)) - self.c.write(self.docbook_gen.expand( - ' *\n' - ' * Helper function used in service implementations to finish handling invocations of the %s.%s() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.\n' - ' *\n' - ' * This method will free @invocation, you cannot use it afterwards.\n' - %(i.name, m.name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(m, self.c, 0) - self.c.write('void\n' - '%s_complete_%s (\n' - ' %s *object,\n' - ' GDBusMethodInvocation *invocation'%(i.name_lower, m.name_lower, i.camel_name)) - if unix_fd: - self.c.write(',\n GUnixFDList *fd_list') - for a in m.out_args: - self.c.write(',\n %s%s'%(a.ctype_in, a.name)) - self.c.write(')\n' - '{\n') - - if unix_fd: - self.c.write(' g_dbus_method_invocation_return_value_with_unix_fd_list (invocation,\n' - ' g_variant_new ("(') - else: - self.c.write(' g_dbus_method_invocation_return_value (invocation,\n' - ' g_variant_new ("(') - for a in m.out_args: - self.c.write('%s'%(a.format_in)) - self.c.write(')"') - for a in m.out_args: - self.c.write(',\n %s'%(a.name)) - if unix_fd: - self.c.write('),\n fd_list);\n') - else: - self.c.write('));\n') - self.c.write('}\n' - '\n') - - # --------------------------------------------------------------------------------------------------- - - def generate_proxy(self, i): - # class boilerplate - self.c.write('/* ------------------------------------------------------------------------ */\n' - '\n') - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sProxy:\n' - ' *\n' - ' * The #%sProxy structure contains only private data and should only be accessed using the provided API.\n' - %(i.camel_name, i.camel_name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write('\n') - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sProxyClass:\n' - ' * @parent_class: The parent class.\n' - ' *\n' - ' * Class structure for #%sProxy.\n' - %(i.camel_name, i.camel_name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write('\n') - - self.c.write('struct _%sProxyPrivate\n' - '{\n' - ' GData *qdata;\n' - '};\n' - '\n'%i.camel_name) - - self.c.write('static void %s_proxy_iface_init (%sIface *iface);\n' - '\n'%(i.name_lower, i.camel_name)) - self.c.write('#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38\n') - self.c.write('G_DEFINE_TYPE_WITH_CODE (%sProxy, %s_proxy, G_TYPE_DBUS_PROXY,\n'%(i.camel_name, i.name_lower)) - self.c.write(' G_ADD_PRIVATE (%sProxy)\n'%(i.camel_name)) - self.c.write(' G_IMPLEMENT_INTERFACE (%sTYPE_%s, %s_proxy_iface_init));\n\n'%(i.ns_upper, i.name_upper, i.name_lower)) - self.c.write('#else\n') - self.c.write('G_DEFINE_TYPE_WITH_CODE (%sProxy, %s_proxy, G_TYPE_DBUS_PROXY,\n'%(i.camel_name, i.name_lower)) - self.c.write(' G_IMPLEMENT_INTERFACE (%sTYPE_%s, %s_proxy_iface_init));\n\n'%(i.ns_upper, i.name_upper, i.name_lower)) - self.c.write('#endif\n') - - # finalize - self.c.write('static void\n' - '%s_proxy_finalize (GObject *object)\n' - '{\n'%(i.name_lower)) - self.c.write(' %sProxy *proxy = %s%s_PROXY (object);\n'%(i.camel_name, i.ns_upper, i.name_upper)) - self.c.write(' g_datalist_clear (&proxy->priv->qdata);\n') - self.c.write(' G_OBJECT_CLASS (%s_proxy_parent_class)->finalize (object);\n' - '}\n' - '\n'%(i.name_lower)) - - # property accessors - # - # Note that we are guaranteed that prop_id starts at 1 and is - # laid out in the same order as introspection data pointers - # - self.c.write('static void\n' - '%s_proxy_get_property (GObject *object,\n' - ' guint prop_id,\n' - ' GValue *value,\n' - ' GParamSpec *pspec G_GNUC_UNUSED)\n' - '{\n'%(i.name_lower)) - if len(i.properties) > 0: - self.c.write(' const _ExtendedGDBusPropertyInfo *info;\n' - ' GVariant *variant;\n' - ' g_assert (prop_id != 0 && prop_id - 1 < %d);\n' - ' info = _%s_property_info_pointers[prop_id - 1];\n' - ' variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name);\n' - ' if (info->use_gvariant)\n' - ' {\n' - ' g_value_set_variant (value, variant);\n' - ' }\n' - ' else\n' - ' {\n' - # could be that we don't have the value in cache - in that case, we do - # nothing and the user gets the default value for the GType - ' if (variant != NULL)\n' - ' g_dbus_gvariant_to_gvalue (variant, value);\n' - ' }\n' - ' if (variant != NULL)\n' - ' g_variant_unref (variant);\n' - %(len(i.properties), i.name_lower)) - self.c.write('}\n' - '\n') - if len(i.properties) > 0: - self.c.write('static void\n' - '%s_proxy_set_property_cb (GDBusProxy *proxy,\n' - ' GAsyncResult *res,\n' - ' gpointer user_data)\n' - '{\n'%(i.name_lower)) - self.c.write(' const _ExtendedGDBusPropertyInfo *info = user_data;\n' - ' GError *error;\n' - ' GVariant *_ret;\n' - ' error = NULL;\n' - ' _ret = g_dbus_proxy_call_finish (proxy, res, &error);\n' - ' if (!_ret)\n' - ' {\n' - ' g_warning ("Error setting property \'%%s\' on interface %s: %%s (%%s, %%d)",\n' - ' info->parent_struct.name, \n' - ' error->message, g_quark_to_string (error->domain), error->code);\n' - ' g_error_free (error);\n' - ' }\n' - ' else\n' - ' {\n' - ' g_variant_unref (_ret);\n' - ' }\n' - %(i.name)) - self.c.write('}\n' - '\n') - self.c.write('static void\n' - '%s_proxy_set_property (GObject *object,\n' - ' guint prop_id,\n' - ' const GValue *value,\n' - ' GParamSpec *pspec G_GNUC_UNUSED)\n' - '{\n'%(i.name_lower)) - if len(i.properties) > 0: - self.c.write(' const _ExtendedGDBusPropertyInfo *info;\n' - ' GVariant *variant;\n' - ' g_assert (prop_id != 0 && prop_id - 1 < %d);\n' - ' info = _%s_property_info_pointers[prop_id - 1];\n' - ' variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature));\n' - ' g_dbus_proxy_call (G_DBUS_PROXY (object),\n' - ' "org.freedesktop.DBus.Properties.Set",\n' - ' g_variant_new ("(ssv)", "%s", info->parent_struct.name, variant),\n' - ' G_DBUS_CALL_FLAGS_NONE,\n' - ' -1,\n' - ' NULL, (GAsyncReadyCallback) %s_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct);\n' - ' g_variant_unref (variant);\n' - %(len(i.properties), i.name_lower, i.name, i.name_lower)) - self.c.write('}\n' - '\n') - - # signal received - self.c.write('static void\n' - '%s_proxy_g_signal (GDBusProxy *proxy,\n' - ' const gchar *sender_name G_GNUC_UNUSED,\n' - ' const gchar *signal_name,\n' - ' GVariant *parameters)\n' - '{\n'%(i.name_lower)) - self.c.write(' _ExtendedGDBusSignalInfo *info;\n' - ' GVariantIter iter;\n' - ' GVariant *child;\n' - ' GValue *paramv;\n' - ' guint num_params;\n' - ' guint n;\n' - ' guint signal_id;\n'); - # Note: info could be NULL if we are talking to a newer version of the interface - self.c.write(' info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_%s_interface_info.parent_struct, signal_name);\n' - ' if (info == NULL)\n' - ' return;\n' - %(i.name_lower)) - self.c.write (' num_params = g_variant_n_children (parameters);\n' - ' paramv = g_new0 (GValue, num_params + 1);\n' - ' g_value_init (¶mv[0], %sTYPE_%s);\n' - ' g_value_set_object (¶mv[0], proxy);\n' - %(i.ns_upper, i.name_upper)) - self.c.write(' g_variant_iter_init (&iter, parameters);\n' - ' n = 1;\n' - ' while ((child = g_variant_iter_next_value (&iter)) != NULL)\n' - ' {\n' - ' _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];\n' - ' if (arg_info->use_gvariant)\n' - ' {\n' - ' g_value_init (¶mv[n], G_TYPE_VARIANT);\n' - ' g_value_set_variant (¶mv[n], child);\n' - ' n++;\n' - ' }\n' - ' else\n' - ' g_dbus_gvariant_to_gvalue (child, ¶mv[n++]);\n' - ' g_variant_unref (child);\n' - ' }\n' - ) - self.c.write(' signal_id = g_signal_lookup (info->signal_name, %sTYPE_%s);\n' - %(i.ns_upper, i.name_upper)) - self.c.write(' g_signal_emitv (paramv, signal_id, 0, NULL);\n') - self.c.write(' for (n = 0; n < num_params + 1; n++)\n' - ' g_value_unset (¶mv[n]);\n' - ' g_free (paramv);\n') - self.c.write('}\n' - '\n') - - # property changed - self.c.write('static void\n' - '%s_proxy_g_properties_changed (GDBusProxy *_proxy,\n' - ' GVariant *changed_properties,\n' - ' const gchar *const *invalidated_properties)\n' - '{\n'%(i.name_lower)) - # Note: info could be NULL if we are talking to a newer version of the interface - self.c.write(' %sProxy *proxy = %s%s_PROXY (_proxy);\n' - ' guint n;\n' - ' const gchar *key;\n' - ' GVariantIter *iter;\n' - ' _ExtendedGDBusPropertyInfo *info;\n' - ' g_variant_get (changed_properties, "a{sv}", &iter);\n' - ' while (g_variant_iter_next (iter, "{&sv}", &key, NULL))\n' - ' {\n' - ' info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_%s_interface_info.parent_struct, key);\n' - ' g_datalist_remove_data (&proxy->priv->qdata, key);\n' - ' if (info != NULL)\n' - ' g_object_notify (G_OBJECT (proxy), info->hyphen_name);\n' - ' }\n' - ' g_variant_iter_free (iter);\n' - ' for (n = 0; invalidated_properties[n] != NULL; n++)\n' - ' {\n' - ' info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_%s_interface_info.parent_struct, invalidated_properties[n]);\n' - ' g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);\n' - ' if (info != NULL)\n' - ' g_object_notify (G_OBJECT (proxy), info->hyphen_name);\n' - ' }\n' - '}\n' - '\n' - %(i.camel_name, i.ns_upper, i.name_upper, - i.name_lower, i.name_lower)) - - # property vfuncs - for p in i.properties: - nul_value = '0' - if p.arg.free_func != None: - nul_value = 'NULL' - self.c.write('static %s\n' - '%s_proxy_get_%s (%s *object)\n' - '{\n' - ' %sProxy *proxy = %s%s_PROXY (object);\n' - ' GVariant *variant;\n' - ' %svalue = %s;\n'%(p.arg.ctype_in, i.name_lower, p.name_lower, i.camel_name, - i.camel_name, i.ns_upper, i.name_upper, - p.arg.ctype_in, nul_value)) - # For some property types, we have to free the returned - # value (or part of it, e.g. the container) because of how - # GVariant works.. see https://bugzilla.gnome.org/show_bug.cgi?id=657100 - # for details - # - free_container = False; - if p.arg.gvariant_get == 'g_variant_get_strv' or p.arg.gvariant_get == 'g_variant_get_objpathv' or p.arg.gvariant_get == 'g_variant_get_bytestring_array': - free_container = True; - # If already using an old value for strv, objpathv, bytestring_array (see below), - # then just return that... that way the result from multiple consecutive calls - # to the getter are valid as long as they're freed - # - if free_container: - self.c.write(' value = g_datalist_get_data (&proxy->priv->qdata, \"%s\");\n' - ' if (value != NULL)\n' - ' return value;\n' - %(p.name)) - self.c.write(' variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), \"%s\");\n'%(p.name)) - if p.arg.gtype == 'G_TYPE_VARIANT': - self.c.write(' value = variant;\n') - self.c.write(' if (variant != NULL)\n') - self.c.write(' g_variant_unref (variant);\n') - else: - self.c.write(' if (variant != NULL)\n' - ' {\n') - extra_len = '' - if p.arg.gvariant_get == 'g_variant_get_string' or p.arg.gvariant_get == 'g_variant_get_strv' or p.arg.gvariant_get == 'g_variant_get_objv' or p.arg.gvariant_get == 'g_variant_get_bytestring_array': - extra_len = ', NULL' - self.c.write(' value = %s (variant%s);\n'%(p.arg.gvariant_get, extra_len)) - if free_container: - self.c.write(' g_datalist_set_data_full (&proxy->priv->qdata, \"%s\", (gpointer) value, g_free);\n' - %(p.name)) - self.c.write(' g_variant_unref (variant);\n') - self.c.write(' }\n') - self.c.write(' return value;\n') - self.c.write('}\n') - self.c.write('\n') - - # class boilerplate - self.c.write('static void\n' - '%s_proxy_init (%sProxy *proxy)\n' - '{\n' - '#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38\n' - ' proxy->priv = %s_proxy_get_instance_private (proxy);\n' - '#else\n' - ' proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, %sTYPE_%s_PROXY, %sProxyPrivate);\n' - '#endif\n\n' - ' g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), %s_interface_info ());\n' - '}\n' - '\n' - %(i.name_lower, i.camel_name, - i.name_lower, - i.ns_upper, i.name_upper, i.camel_name, - i.name_lower)) - self.c.write('static void\n' - '%s_proxy_class_init (%sProxyClass *klass)\n' - '{\n' - ' GObjectClass *gobject_class;\n' - ' GDBusProxyClass *proxy_class;\n' - '\n' - ' gobject_class = G_OBJECT_CLASS (klass);\n' - ' gobject_class->finalize = %s_proxy_finalize;\n' - ' gobject_class->get_property = %s_proxy_get_property;\n' - ' gobject_class->set_property = %s_proxy_set_property;\n' - '\n' - ' proxy_class = G_DBUS_PROXY_CLASS (klass);\n' - ' proxy_class->g_signal = %s_proxy_g_signal;\n' - ' proxy_class->g_properties_changed = %s_proxy_g_properties_changed;\n' - '\n'%(i.name_lower, i.camel_name, - i.name_lower, i.name_lower, i.name_lower, i.name_lower, i.name_lower)) - if len(i.properties) > 0: - self.c.write(' %s_override_properties (gobject_class, 1);\n\n'%(i.name_lower)) - self.c.write('#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38\n' - ' g_type_class_add_private (klass, sizeof (%sProxyPrivate));\n' - '#endif\n'%(i.camel_name)) - self.c.write('}\n' - '\n') - - self.c.write('static void\n' - '%s_proxy_iface_init (%sIface *iface)\n' - '{\n'%(i.name_lower, i.camel_name)) - for p in i.properties: - self.c.write(' iface->get_%s = %s_proxy_get_%s;\n'%(p.name_lower, i.name_lower, p.name_lower)) - self.c.write('}\n' - '\n') - - # constructors - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %s_proxy_new:\n' - ' * @connection: A #GDBusConnection.\n' - ' * @flags: Flags from the #GDBusProxyFlags enumeration.\n' - ' * @name: (allow-none): A bus name (well-known or unique) or %%NULL if @connection is not a message bus connection.\n' - ' * @object_path: An object path.\n' - ' * @cancellable: (allow-none): A #GCancellable or %%NULL.\n' - ' * @callback: A #GAsyncReadyCallback to call when the request is satisfied.\n' - ' * @user_data: User data to pass to @callback.\n' - ' *\n' - ' * Asynchronously creates a proxy for the D-Bus interface #%s. See g_dbus_proxy_new() for more details.\n' - ' *\n' - ' * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from.\n' - ' * You can then call %s_proxy_new_finish() to get the result of the operation.\n' - ' *\n' - ' * See %s_proxy_new_sync() for the synchronous, blocking version of this constructor.\n' - %(i.name_lower, i.name, i.name_lower, i.name_lower), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write('void\n' - '%s_proxy_new (\n' - ' GDBusConnection *connection,\n' - ' GDBusProxyFlags flags,\n' - ' const gchar *name,\n' - ' const gchar *object_path,\n' - ' GCancellable *cancellable,\n' - ' GAsyncReadyCallback callback,\n' - ' gpointer user_data)\n' - '{\n' - ' g_async_initable_new_async (%sTYPE_%s_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "%s", NULL);\n' - '}\n' - '\n' - %(i.name_lower, i.ns_upper, i.name_upper, i.name)) - self.c.write('/**\n' - ' * %s_proxy_new_finish:\n' - ' * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to %s_proxy_new().\n' - ' * @error: Return location for error or %%NULL\n' - ' *\n' - ' * Finishes an operation started with %s_proxy_new().\n' - ' *\n' - ' * Returns: (transfer full) (type %sProxy): The constructed proxy object or %%NULL if @error is set.\n' - %(i.name_lower, i.name_lower, i.name_lower, i.camel_name)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write('%s *\n' - '%s_proxy_new_finish (\n' - ' GAsyncResult *res,\n' - ' GError **error)\n' - '{\n' - ' GObject *ret;\n' - ' GObject *source_object;\n' - ' source_object = g_async_result_get_source_object (res);\n' - ' ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);\n' - ' g_object_unref (source_object);\n' - ' if (ret != NULL)\n' - ' return %s%s (ret);\n' - ' else\n' - ' return NULL;\n' - '}\n' - '\n' - %(i.camel_name, i.name_lower, i.ns_upper, i.name_upper)) - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %s_proxy_new_sync:\n' - ' * @connection: A #GDBusConnection.\n' - ' * @flags: Flags from the #GDBusProxyFlags enumeration.\n' - ' * @name: (allow-none): A bus name (well-known or unique) or %%NULL if @connection is not a message bus connection.\n' - ' * @object_path: An object path.\n' - ' * @cancellable: (allow-none): A #GCancellable or %%NULL.\n' - ' * @error: Return location for error or %%NULL\n' - ' *\n' - ' * Synchronously creates a proxy for the D-Bus interface #%s. See g_dbus_proxy_new_sync() for more details.\n' - ' *\n' - ' * The calling thread is blocked until a reply is received.\n' - ' *\n' - ' * See %s_proxy_new() for the asynchronous version of this constructor.\n' - ' *\n' - ' * Returns: (transfer full) (type %sProxy): The constructed proxy object or %%NULL if @error is set.\n' - %(i.name_lower, i.name, i.name_lower, i.camel_name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write('%s *\n' - '%s_proxy_new_sync (\n' - ' GDBusConnection *connection,\n' - ' GDBusProxyFlags flags,\n' - ' const gchar *name,\n' - ' const gchar *object_path,\n' - ' GCancellable *cancellable,\n' - ' GError **error)\n' - '{\n' - ' GInitable *ret;\n' - ' ret = g_initable_new (%sTYPE_%s_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "%s", NULL);\n' - ' if (ret != NULL)\n' - ' return %s%s (ret);\n' - ' else\n' - ' return NULL;\n' - '}\n' - '\n' - %(i.camel_name, i.name_lower, i.ns_upper, i.name_upper, i.name, i.ns_upper, i.name_upper)) - self.c.write('\n') - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %s_proxy_new_for_bus:\n' - ' * @bus_type: A #GBusType.\n' - ' * @flags: Flags from the #GDBusProxyFlags enumeration.\n' - ' * @name: A bus name (well-known or unique).\n' - ' * @object_path: An object path.\n' - ' * @cancellable: (allow-none): A #GCancellable or %%NULL.\n' - ' * @callback: A #GAsyncReadyCallback to call when the request is satisfied.\n' - ' * @user_data: User data to pass to @callback.\n' - ' *\n' - ' * Like %s_proxy_new() but takes a #GBusType instead of a #GDBusConnection.\n' - ' *\n' - ' * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from.\n' - ' * You can then call %s_proxy_new_for_bus_finish() to get the result of the operation.\n' - ' *\n' - ' * See %s_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.\n' - %(i.name_lower, i.name_lower, i.name_lower, i.name_lower), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write('void\n' - '%s_proxy_new_for_bus (\n' - ' GBusType bus_type,\n' - ' GDBusProxyFlags flags,\n' - ' const gchar *name,\n' - ' const gchar *object_path,\n' - ' GCancellable *cancellable,\n' - ' GAsyncReadyCallback callback,\n' - ' gpointer user_data)\n' - '{\n' - ' g_async_initable_new_async (%sTYPE_%s_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "%s", NULL);\n' - '}\n' - '\n' - %(i.name_lower, i.ns_upper, i.name_upper, i.name)) - self.c.write('/**\n' - ' * %s_proxy_new_for_bus_finish:\n' - ' * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to %s_proxy_new_for_bus().\n' - ' * @error: Return location for error or %%NULL\n' - ' *\n' - ' * Finishes an operation started with %s_proxy_new_for_bus().\n' - ' *\n' - ' * Returns: (transfer full) (type %sProxy): The constructed proxy object or %%NULL if @error is set.\n' - %(i.name_lower, i.name_lower, i.name_lower, i.camel_name)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write('%s *\n' - '%s_proxy_new_for_bus_finish (\n' - ' GAsyncResult *res,\n' - ' GError **error)\n' - '{\n' - ' GObject *ret;\n' - ' GObject *source_object;\n' - ' source_object = g_async_result_get_source_object (res);\n' - ' ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);\n' - ' g_object_unref (source_object);\n' - ' if (ret != NULL)\n' - ' return %s%s (ret);\n' - ' else\n' - ' return NULL;\n' - '}\n' - '\n' - %(i.camel_name, i.name_lower, i.ns_upper, i.name_upper)) - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %s_proxy_new_for_bus_sync:\n' - ' * @bus_type: A #GBusType.\n' - ' * @flags: Flags from the #GDBusProxyFlags enumeration.\n' - ' * @name: A bus name (well-known or unique).\n' - ' * @object_path: An object path.\n' - ' * @cancellable: (allow-none): A #GCancellable or %%NULL.\n' - ' * @error: Return location for error or %%NULL\n' - ' *\n' - ' * Like %s_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.\n' - ' *\n' - ' * The calling thread is blocked until a reply is received.\n' - ' *\n' - ' * See %s_proxy_new_for_bus() for the asynchronous version of this constructor.\n' - ' *\n' - ' * Returns: (transfer full) (type %sProxy): The constructed proxy object or %%NULL if @error is set.\n' - %(i.name_lower, i.name_lower, i.name_lower, i.camel_name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write('%s *\n' - '%s_proxy_new_for_bus_sync (\n' - ' GBusType bus_type,\n' - ' GDBusProxyFlags flags,\n' - ' const gchar *name,\n' - ' const gchar *object_path,\n' - ' GCancellable *cancellable,\n' - ' GError **error)\n' - '{\n' - ' GInitable *ret;\n' - ' ret = g_initable_new (%sTYPE_%s_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "%s", NULL);\n' - ' if (ret != NULL)\n' - ' return %s%s (ret);\n' - ' else\n' - ' return NULL;\n' - '}\n' - '\n' - %(i.camel_name, i.name_lower, i.ns_upper, i.name_upper, i.name, i.ns_upper, i.name_upper)) - self.c.write('\n') - - # --------------------------------------------------------------------------------------------------- - - def generate_skeleton(self, i): - # class boilerplate - self.c.write('/* ------------------------------------------------------------------------ */\n' - '\n') - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sSkeleton:\n' - ' *\n' - ' * The #%sSkeleton structure contains only private data and should only be accessed using the provided API.\n' - %(i.camel_name, i.camel_name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write('\n') - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sSkeletonClass:\n' - ' * @parent_class: The parent class.\n' - ' *\n' - ' * Class structure for #%sSkeleton.\n' - %(i.camel_name, i.camel_name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write('\n') - - self.c.write('struct _%sSkeletonPrivate\n' - '{\n' - ' GValue *properties;\n' - ' GList *changed_properties;\n' - ' GSource *changed_properties_idle_source;\n' - ' GMainContext *context;\n' - ' GMutex lock;\n' - '};\n' - '\n'%i.camel_name) - - self.c.write('static void\n' - '_%s_skeleton_handle_method_call (\n' - ' GDBusConnection *connection G_GNUC_UNUSED,\n' - ' const gchar *sender G_GNUC_UNUSED,\n' - ' const gchar *object_path G_GNUC_UNUSED,\n' - ' const gchar *interface_name,\n' - ' const gchar *method_name,\n' - ' GVariant *parameters,\n' - ' GDBusMethodInvocation *invocation,\n' - ' gpointer user_data)\n' - '{\n' - ' %sSkeleton *skeleton = %s%s_SKELETON (user_data);\n' - ' _ExtendedGDBusMethodInfo *info;\n' - ' GVariantIter iter;\n' - ' GVariant *child;\n' - ' GValue *paramv;\n' - ' guint num_params;\n' - ' guint num_extra;\n' - ' guint n;\n' - ' guint signal_id;\n' - ' GValue return_value = G_VALUE_INIT;\n' - %(i.name_lower, i.camel_name, i.ns_upper, i.name_upper)) - self.c.write(' info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);\n' - ' g_assert (info != NULL);\n' - %()) - self.c.write (' num_params = g_variant_n_children (parameters);\n' - ' num_extra = info->pass_fdlist ? 3 : 2;' - ' paramv = g_new0 (GValue, num_params + num_extra);\n' - ' n = 0;\n' - ' g_value_init (¶mv[n], %sTYPE_%s);\n' - ' g_value_set_object (¶mv[n++], skeleton);\n' - ' g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION);\n' - ' g_value_set_object (¶mv[n++], invocation);\n' - ' if (info->pass_fdlist)\n' - ' {\n' - '#ifdef G_OS_UNIX\n' - ' g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST);\n' - ' g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));\n' - '#else\n' - ' g_assert_not_reached ();\n' - '#endif\n' - ' }\n' - %(i.ns_upper, i.name_upper)) - self.c.write(' g_variant_iter_init (&iter, parameters);\n' - ' while ((child = g_variant_iter_next_value (&iter)) != NULL)\n' - ' {\n' - ' _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];\n' - ' if (arg_info->use_gvariant)\n' - ' {\n' - ' g_value_init (¶mv[n], G_TYPE_VARIANT);\n' - ' g_value_set_variant (¶mv[n], child);\n' - ' n++;\n' - ' }\n' - ' else\n' - ' g_dbus_gvariant_to_gvalue (child, ¶mv[n++]);\n' - ' g_variant_unref (child);\n' - ' }\n' - ) - self.c.write(' signal_id = g_signal_lookup (info->signal_name, %sTYPE_%s);\n' - %(i.ns_upper, i.name_upper)) - self.c.write(' g_value_init (&return_value, G_TYPE_BOOLEAN);\n' - ' g_signal_emitv (paramv, signal_id, 0, &return_value);\n' - ' if (!g_value_get_boolean (&return_value))\n' - ' g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);\n' - ' g_value_unset (&return_value);\n' - ) - self.c.write(' for (n = 0; n < num_params + num_extra; n++)\n' - ' g_value_unset (¶mv[n]);\n' - ' g_free (paramv);\n') - self.c.write('}\n' - '\n') - - self.c.write('static GVariant *\n' - '_%s_skeleton_handle_get_property (\n' - ' GDBusConnection *connection G_GNUC_UNUSED,\n' - ' const gchar *sender G_GNUC_UNUSED,\n' - ' const gchar *object_path G_GNUC_UNUSED,\n' - ' const gchar *interface_name G_GNUC_UNUSED,\n' - ' const gchar *property_name,\n' - ' GError **error,\n' - ' gpointer user_data)\n' - '{\n' - ' %sSkeleton *skeleton = %s%s_SKELETON (user_data);\n' - ' GValue value = G_VALUE_INIT;\n' - ' GParamSpec *pspec;\n' - ' _ExtendedGDBusPropertyInfo *info;\n' - ' GVariant *ret;\n' - %(i.name_lower, i.camel_name, i.ns_upper, i.name_upper)) - self.c.write(' ret = NULL;\n' - ' info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_%s_interface_info.parent_struct, property_name);\n' - ' g_assert (info != NULL);\n' - ' pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);\n' - ' if (pspec == NULL)\n' - ' {\n' - ' g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %%s", property_name);\n' - ' }\n' - ' else\n' - ' {\n' - ' g_value_init (&value, pspec->value_type);\n' - ' g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);\n' - ' ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));\n' - ' g_value_unset (&value);\n' - ' }\n' - ' return ret;\n' - '}\n' - '\n' - %(i.name_lower)) - - self.c.write('static gboolean\n' - '_%s_skeleton_handle_set_property (\n' - ' GDBusConnection *connection G_GNUC_UNUSED,\n' - ' const gchar *sender G_GNUC_UNUSED,\n' - ' const gchar *object_path G_GNUC_UNUSED,\n' - ' const gchar *interface_name G_GNUC_UNUSED,\n' - ' const gchar *property_name,\n' - ' GVariant *variant,\n' - ' GError **error,\n' - ' gpointer user_data)\n' - '{\n' - ' %sSkeleton *skeleton = %s%s_SKELETON (user_data);\n' - ' GValue value = G_VALUE_INIT;\n' - ' GParamSpec *pspec;\n' - ' _ExtendedGDBusPropertyInfo *info;\n' - ' gboolean ret;\n' - %(i.name_lower, i.camel_name, i.ns_upper, i.name_upper)) - self.c.write(' ret = FALSE;\n' - ' info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_%s_interface_info.parent_struct, property_name);\n' - ' g_assert (info != NULL);\n' - ' pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);\n' - ' if (pspec == NULL)\n' - ' {\n' - ' g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %%s", property_name);\n' - ' }\n' - ' else\n' - ' {\n' - ' if (info->use_gvariant)\n' - ' g_value_set_variant (&value, variant);\n' - ' else\n' - ' g_dbus_gvariant_to_gvalue (variant, &value);\n' - ' g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);\n' - ' g_value_unset (&value);\n' - ' ret = TRUE;\n' - ' }\n' - ' return ret;\n' - '}\n' - '\n' - %(i.name_lower)) - - - self.c.write('static const GDBusInterfaceVTable _%s_skeleton_vtable =\n' - '{\n' - ' _%s_skeleton_handle_method_call,\n' - ' _%s_skeleton_handle_get_property,\n' - ' _%s_skeleton_handle_set_property,\n' - ' {NULL}\n' - '};\n' - '\n'%(i.name_lower, i.name_lower, i.name_lower, i.name_lower)) - - self.c.write('static GDBusInterfaceInfo *\n' - '%s_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)\n' - '{\n' - ' return %s_interface_info ();\n' - %(i.name_lower, i.name_lower)) - self.c.write('}\n' - '\n') - - self.c.write('static GDBusInterfaceVTable *\n' - '%s_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)\n' - '{\n' - ' return (GDBusInterfaceVTable *) &_%s_skeleton_vtable;\n' - %(i.name_lower, i.name_lower)) - self.c.write('}\n' - '\n') - - self.c.write('static GVariant *\n' - '%s_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)\n' - '{\n' - ' %sSkeleton *skeleton = %s%s_SKELETON (_skeleton);\n' - %(i.name_lower, i.camel_name, i.ns_upper, i.name_upper)) - self.c.write('\n' - ' GVariantBuilder builder;\n' - ' guint n;\n' - ' g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));\n' - ' if (_%s_interface_info.parent_struct.properties == NULL)\n' - ' goto out;\n' - ' for (n = 0; _%s_interface_info.parent_struct.properties[n] != NULL; n++)\n' - ' {\n' - ' GDBusPropertyInfo *info = _%s_interface_info.parent_struct.properties[n];\n' - ' if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)\n' - ' {\n' - ' GVariant *value;\n' - ' value = _%s_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "%s", info->name, NULL, skeleton);\n' - ' if (value != NULL)\n' - ' {\n' - ' g_variant_take_ref (value);\n' - ' g_variant_builder_add (&builder, "{sv}", info->name, value);\n' - ' g_variant_unref (value);\n' - ' }\n' - ' }\n' - ' }\n' - 'out:\n' - ' return g_variant_builder_end (&builder);\n' - '}\n' - '\n' - %(i.name_lower, i.name_lower, i.name_lower, i.name_lower, i.name)) - - if len(i.properties) > 0: - self.c.write('static gboolean _%s_emit_changed (gpointer user_data);\n' - '\n' - %(i.name_lower)) - - self.c.write('static void\n' - '%s_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)\n' - '{\n' - %(i.name_lower)) - if len(i.properties) > 0: - self.c.write(' %sSkeleton *skeleton = %s%s_SKELETON (_skeleton);\n' - ' gboolean emit_changed = FALSE;\n' - '\n' - ' g_mutex_lock (&skeleton->priv->lock);\n' - ' if (skeleton->priv->changed_properties_idle_source != NULL)\n' - ' {\n' - ' g_source_destroy (skeleton->priv->changed_properties_idle_source);\n' - ' skeleton->priv->changed_properties_idle_source = NULL;\n' - ' emit_changed = TRUE;\n' - ' }\n' - ' g_mutex_unlock (&skeleton->priv->lock);\n' - '\n' - ' if (emit_changed)\n' - ' _%s_emit_changed (skeleton);\n' - %(i.camel_name, i.ns_upper, i.name_upper, i.name_lower)) - self.c.write('}\n' - '\n') - - for s in i.signals: - self.c.write('static void\n' - '_%s_on_signal_%s (\n' - ' %s *object'%(i.name_lower, s.name_lower, i.camel_name)) - for a in s.args: - self.c.write(',\n %sarg_%s'%(a.ctype_in, a.name)) - self.c.write(')\n' - '{\n' - ' %sSkeleton *skeleton = %s%s_SKELETON (object);\n\n' - ' GList *connections, *l;\n' - ' GVariant *signal_variant;\n' - ' connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));\n' - %(i.camel_name, i.ns_upper, i.name_upper)) - self.c.write('\n' - ' signal_variant = g_variant_ref_sink (g_variant_new ("(') - for a in s.args: - self.c.write('%s'%(a.format_in)) - self.c.write(')"') - for a in s.args: - self.c.write(',\n arg_%s'%(a.name)) - self.c.write('));\n') - - self.c.write(' for (l = connections; l != NULL; l = l->next)\n' - ' {\n' - ' GDBusConnection *connection = l->data;\n' - ' g_dbus_connection_emit_signal (connection,\n' - ' NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "%s", "%s",\n' - ' signal_variant, NULL);\n' - ' }\n' - %(i.name, s.name)) - self.c.write(' g_variant_unref (signal_variant);\n') - self.c.write(' g_list_free_full (connections, g_object_unref);\n') - self.c.write('}\n' - '\n') - - self.c.write('static void %s_skeleton_iface_init (%sIface *iface);\n' - %(i.name_lower, i.camel_name)) - - self.c.write('#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38\n') - self.c.write('G_DEFINE_TYPE_WITH_CODE (%sSkeleton, %s_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,\n'%(i.camel_name, i.name_lower)) - self.c.write(' G_ADD_PRIVATE (%sSkeleton)\n'%(i.camel_name)) - self.c.write(' G_IMPLEMENT_INTERFACE (%sTYPE_%s, %s_skeleton_iface_init));\n\n'%(i.ns_upper, i.name_upper, i.name_lower)) - self.c.write('#else\n') - self.c.write('G_DEFINE_TYPE_WITH_CODE (%sSkeleton, %s_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,\n'%(i.camel_name, i.name_lower)) - self.c.write(' G_IMPLEMENT_INTERFACE (%sTYPE_%s, %s_skeleton_iface_init));\n\n'%(i.ns_upper, i.name_upper, i.name_lower)) - self.c.write('#endif\n') - - # finalize - self.c.write('static void\n' - '%s_skeleton_finalize (GObject *object)\n' - '{\n'%(i.name_lower)) - self.c.write(' %sSkeleton *skeleton = %s%s_SKELETON (object);\n'%(i.camel_name, i.ns_upper, i.name_upper)) - if len(i.properties) > 0: - self.c.write(' guint n;\n' - ' for (n = 0; n < %d; n++)\n' - ' g_value_unset (&skeleton->priv->properties[n]);\n'%(len(i.properties))) - self.c.write(' g_free (skeleton->priv->properties);\n') - self.c.write(' g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);\n') - self.c.write(' if (skeleton->priv->changed_properties_idle_source != NULL)\n') - self.c.write(' g_source_destroy (skeleton->priv->changed_properties_idle_source);\n') - self.c.write(' g_main_context_unref (skeleton->priv->context);\n') - self.c.write(' g_mutex_clear (&skeleton->priv->lock);\n') - self.c.write(' G_OBJECT_CLASS (%s_skeleton_parent_class)->finalize (object);\n' - '}\n' - '\n'%(i.name_lower)) - - # property accessors (TODO: generate PropertiesChanged signals in setter) - if len(i.properties) > 0: - self.c.write('static void\n' - '%s_skeleton_get_property (GObject *object,\n' - ' guint prop_id,\n' - ' GValue *value,\n' - ' GParamSpec *pspec G_GNUC_UNUSED)\n' - '{\n'%(i.name_lower)) - self.c.write(' %sSkeleton *skeleton = %s%s_SKELETON (object);\n' - ' g_assert (prop_id != 0 && prop_id - 1 < %d);\n' - ' g_mutex_lock (&skeleton->priv->lock);\n' - ' g_value_copy (&skeleton->priv->properties[prop_id - 1], value);\n' - ' g_mutex_unlock (&skeleton->priv->lock);\n' - %(i.camel_name, i.ns_upper, i.name_upper, len(i.properties))) - self.c.write('}\n' - '\n') - - # if property is already scheduled then re-use entry.. though it could be - # that the user did - # - # foo_set_prop_bar (object, ""); - # foo_set_prop_bar (object, "blah"); - # - # say, every update... In this case, where nothing happens, we obviously - # don't want a PropertiesChanged() event. We can easily check for this - # by comparing against the _original value_ recorded before the first - # change event. If the latest value is not different from the original - # one, we can simply ignore the ChangedProperty - # - self.c.write('static gboolean\n' - '_%s_emit_changed (gpointer user_data)\n' - '{\n' - ' %sSkeleton *skeleton = %s%s_SKELETON (user_data);\n' - %(i.name_lower, i.camel_name, i.ns_upper, i.name_upper)) - self.c.write(' GList *l;\n' - ' GVariantBuilder builder;\n' - ' GVariantBuilder invalidated_builder;\n' - ' guint num_changes;\n' - '\n' - ' g_mutex_lock (&skeleton->priv->lock);\n' - ' g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));\n' - ' g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));\n' - ' for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next)\n' - ' {\n' - ' ChangedProperty *cp = l->data;\n' - ' GVariant *variant;\n' - ' const GValue *cur_value;\n' - '\n' - ' cur_value = &skeleton->priv->properties[cp->prop_id - 1];\n' - ' if (!_g_value_equal (cur_value, &cp->orig_value))\n' - ' {\n' - ' variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature));\n' - ' g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant);\n' - ' g_variant_unref (variant);\n' - ' num_changes++;\n' - ' }\n' - ' }\n' - ' if (num_changes > 0)\n' - ' {\n' - ' GList *connections, *ll;\n' - ' GVariant *signal_variant;' - '\n' - ' signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "%s",\n' - ' &builder, &invalidated_builder));\n' - ' connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));\n' - ' for (ll = connections; ll != NULL; ll = ll->next)\n' - ' {\n' - ' GDBusConnection *connection = ll->data;\n' - '\n' - ' g_dbus_connection_emit_signal (connection,\n' - ' NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)),\n' - ' "org.freedesktop.DBus.Properties",\n' - ' "PropertiesChanged",\n' - ' signal_variant,\n' - ' NULL);\n' - ' }\n' - ' g_variant_unref (signal_variant);\n' - ' g_list_free_full (connections, g_object_unref);\n' - ' }\n' - ' else\n' - ' {\n' - ' g_variant_builder_clear (&builder);\n' - ' g_variant_builder_clear (&invalidated_builder);\n' - ' }\n' - %(i.name)) - self.c.write(' g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);\n') - self.c.write(' skeleton->priv->changed_properties = NULL;\n') - self.c.write(' skeleton->priv->changed_properties_idle_source = NULL;\n') - self.c.write(' g_mutex_unlock (&skeleton->priv->lock);\n') - self.c.write(' return FALSE;\n' - '}\n' - '\n') - # holding lock while being called - self.c.write('static void\n' - '_%s_schedule_emit_changed (%sSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value)\n' - '{\n' - ' ChangedProperty *cp;\n' - ' GList *l;\n' - ' cp = NULL;\n' - ' for (l = skeleton->priv->changed_properties; l != NULL; l = l->next)\n' - ' {\n' - ' ChangedProperty *i_cp = l->data;\n' - ' if (i_cp->info == info)\n' - ' {\n' - ' cp = i_cp;\n' - ' break;\n' - ' }\n' - ' }\n' - %(i.name_lower, i.camel_name)) - self.c.write(' if (cp == NULL)\n' - ' {\n' - ' cp = g_new0 (ChangedProperty, 1);\n' - ' cp->prop_id = prop_id;\n' - ' cp->info = info;\n' - ' skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp);\n' - ' g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value));\n' - ' g_value_copy (orig_value, &cp->orig_value);\n' - ' }\n' - '}\n' - '\n' - %()) - - # Postpone setting up the refresh source until the ::notify signal is emitted as - # this allows use of g_object_freeze_notify()/g_object_thaw_notify() ... - # This is useful when updating several properties from another thread than - # where the idle will be emitted from - self.c.write('static void\n' - '%s_skeleton_notify (GObject *object,\n' - ' GParamSpec *pspec G_GNUC_UNUSED)\n' - '{\n' - ' %sSkeleton *skeleton = %s%s_SKELETON (object);\n' - ' g_mutex_lock (&skeleton->priv->lock);\n' - ' if (skeleton->priv->changed_properties != NULL &&\n' - ' skeleton->priv->changed_properties_idle_source == NULL)\n' - ' {\n' - ' skeleton->priv->changed_properties_idle_source = g_idle_source_new ();\n' - ' g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT);\n' - ' g_source_set_callback (skeleton->priv->changed_properties_idle_source, _%s_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref);\n' - ' g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _%s_emit_changed");\n' - ' g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context);\n' - ' g_source_unref (skeleton->priv->changed_properties_idle_source);\n' - ' }\n' - ' g_mutex_unlock (&skeleton->priv->lock);\n' - '}\n' - '\n' - %(i.name_lower, i.camel_name, i.ns_upper, i.name_upper, i.name_lower, i.name_lower)) - - self.c.write('static void\n' - '%s_skeleton_set_property (GObject *object,\n' - ' guint prop_id,\n' - ' const GValue *value,\n' - ' GParamSpec *pspec)\n' - '{\n'%(i.name_lower)) - self.c.write(' %sSkeleton *skeleton = %s%s_SKELETON (object);\n' - ' g_assert (prop_id != 0 && prop_id - 1 < %d);\n' - ' g_mutex_lock (&skeleton->priv->lock);\n' - ' g_object_freeze_notify (object);\n' - ' if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1]))\n' - ' {\n' - ' if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL)\n' - ' _%s_schedule_emit_changed (skeleton, _%s_property_info_pointers[prop_id - 1], prop_id, &skeleton->priv->properties[prop_id - 1]);\n' - ' g_value_copy (value, &skeleton->priv->properties[prop_id - 1]);\n' - ' g_object_notify_by_pspec (object, pspec);\n' - ' }\n' - ' g_mutex_unlock (&skeleton->priv->lock);\n' - ' g_object_thaw_notify (object);\n' - %(i.camel_name, i.ns_upper, i.name_upper, len(i.properties), i.name_lower, i.name_lower)) - self.c.write('}\n' - '\n') - - self.c.write('static void\n' - '%s_skeleton_init (%sSkeleton *skeleton)\n' - '{\n' - '#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38\n' - ' skeleton->priv = %s_skeleton_get_instance_private (skeleton);\n' - '#else\n' - ' skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, %sTYPE_%s_SKELETON, %sSkeletonPrivate);\n' - '#endif\n\n' - %(i.name_lower, i.camel_name, - i.name_lower, - i.ns_upper, i.name_upper, i.camel_name)) - self.c.write(' g_mutex_init (&skeleton->priv->lock);\n') - self.c.write(' skeleton->priv->context = g_main_context_ref_thread_default ();\n') - if len(i.properties) > 0: - self.c.write(' skeleton->priv->properties = g_new0 (GValue, %d);\n'%(len(i.properties))) - n = 0 - for p in i.properties: - self.c.write(' g_value_init (&skeleton->priv->properties[%d], %s);\n'%(n, p.arg.gtype)) - n += 1 - self.c.write('}\n' - '\n') - - # property vfuncs - n = 0 - for p in i.properties: - self.c.write('static %s\n' - '%s_skeleton_get_%s (%s *object)\n' - '{\n' - %(p.arg.ctype_in, i.name_lower, p.name_lower, i.camel_name)) - self.c.write(' %sSkeleton *skeleton = %s%s_SKELETON (object);\n'%(i.camel_name, i.ns_upper, i.name_upper)) - self.c.write(' %svalue;\n' - ' g_mutex_lock (&skeleton->priv->lock);\n' - ' value = %s (&(skeleton->priv->properties[%d]));\n' - ' g_mutex_unlock (&skeleton->priv->lock);\n' - %(p.arg.ctype_in_g, p.arg.gvalue_get, n)) - self.c.write(' return value;\n') - self.c.write('}\n') - self.c.write('\n') - n += 1 - - self.c.write('static void\n' - '%s_skeleton_class_init (%sSkeletonClass *klass)\n' - '{\n' - ' GObjectClass *gobject_class;\n' - ' GDBusInterfaceSkeletonClass *skeleton_class;\n' - '\n' - ' gobject_class = G_OBJECT_CLASS (klass);\n' - ' gobject_class->finalize = %s_skeleton_finalize;\n' - %(i.name_lower, i.camel_name, i.name_lower)) - if len(i.properties) > 0: - self.c.write(' gobject_class->get_property = %s_skeleton_get_property;\n' - ' gobject_class->set_property = %s_skeleton_set_property;\n' - ' gobject_class->notify = %s_skeleton_notify;\n' - '\n'%(i.name_lower, i.name_lower, i.name_lower)) - self.c.write('\n' - ' %s_override_properties (gobject_class, 1);\n'%(i.name_lower)) - self.c.write('\n' - ' skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);\n'); - self.c.write(' skeleton_class->get_info = %s_skeleton_dbus_interface_get_info;\n'%(i.name_lower)) - self.c.write(' skeleton_class->get_properties = %s_skeleton_dbus_interface_get_properties;\n'%(i.name_lower)) - self.c.write(' skeleton_class->flush = %s_skeleton_dbus_interface_flush;\n'%(i.name_lower)) - self.c.write(' skeleton_class->get_vtable = %s_skeleton_dbus_interface_get_vtable;\n'%(i.name_lower)) - - self.c.write('\n' - '#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38\n' - ' g_type_class_add_private (klass, sizeof (%sSkeletonPrivate));\n' - '#endif\n'%(i.camel_name)) - - self.c.write('}\n' - '\n') - - self.c.write('static void\n' - '%s_skeleton_iface_init (%sIface *iface)\n' - '{\n' - %(i.name_lower, i.camel_name)) - for s in i.signals: - self.c.write(' iface->%s = _%s_on_signal_%s;\n' - %(s.name_lower, i.name_lower, s.name_lower)) - for p in i.properties: - self.c.write(' iface->get_%s = %s_skeleton_get_%s;\n'%(p.name_lower, i.name_lower, p.name_lower)) - self.c.write('}\n' - '\n') - - # constructors - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %s_skeleton_new:\n' - ' *\n' - ' * Creates a skeleton object for the D-Bus interface #%s.\n' - ' *\n' - ' * Returns: (transfer full) (type %sSkeleton): The skeleton object.\n' - %(i.name_lower, i.name, i.camel_name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write('%s *\n' - '%s_skeleton_new (void)\n' - '{\n' - ' return %s%s (g_object_new (%sTYPE_%s_SKELETON, NULL));\n' - '}\n' - '\n'%(i.camel_name, i.name_lower, i.ns_upper, i.name_upper, i.ns_upper, i.name_upper)) - - # --------------------------------------------------------------------------------------------------- - - def generate_object(self): - self.c.write('/* ------------------------------------------------------------------------\n' - ' * Code for Object, ObjectProxy and ObjectSkeleton\n' - ' * ------------------------------------------------------------------------\n' - ' */\n' - '\n') - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * SECTION:%sObject\n' - ' * @title: %sObject\n' - ' * @short_description: Specialized GDBusObject types\n' - ' *\n' - ' * This section contains the #%sObject, #%sObjectProxy, and #%sObjectSkeleton types which make it easier to work with objects implementing generated types for D-Bus interfaces.\n' - ' */\n' - %(self.namespace, self.namespace, self.namespace, self.namespace, self.namespace), False)) - self.c.write('\n') - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sObject:\n' - ' *\n' - ' * The #%sObject type is a specialized container of interfaces.\n' - ' */\n' - %(self.namespace, self.namespace), False)) - self.c.write('\n') - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sObjectIface:\n' - ' * @parent_iface: The parent interface.\n' - ' *\n' - ' * Virtual table for the #%sObject interface.\n' - ' */\n' - %(self.namespace, self.namespace), False)) - self.c.write('\n') - - self.c.write('typedef %sObjectIface %sObjectInterface;\n'%(self.namespace, self.namespace)) - self.c.write('G_DEFINE_INTERFACE_WITH_CODE (%sObject, %sobject, G_TYPE_OBJECT, g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_DBUS_OBJECT));\n'%(self.namespace, self.ns_lower)) - self.c.write('\n') - self.c.write('static void\n' - '%sobject_default_init (%sObjectIface *iface)\n' - '{\n' - %(self.ns_lower, self.namespace)); - for i in self.ifaces: - self.c.write(self.docbook_gen.expand( - ' /**\n' - ' * %sObject:%s:\n' - ' *\n' - ' * The #%s instance corresponding to the D-Bus interface #%s, if any.\n' - ' *\n' - ' * Connect to the #GObject::notify signal to get informed of property changes.\n' - %(self.namespace, i.name_hyphen, i.camel_name, i.name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 2) - self.c.write(' g_object_interface_install_property (iface, g_param_spec_object ("%s", "%s", "%s", %sTYPE_%s, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS));\n' - '\n' - %(i.name_hyphen, i.name_hyphen, i.name_hyphen, self.ns_upper, i.name_upper)) - self.c.write('}\n' - '\n') - - for i in self.ifaces: - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sobject_get_%s:\n' - ' * @object: A #%sObject.\n' - ' *\n' - ' * Gets the #%s instance for the D-Bus interface #%s on @object, if any.\n' - ' *\n' - ' * Returns: (transfer full): A #%s that must be freed with g_object_unref() or %%NULL if @object does not implement the interface.\n' - %(self.ns_lower, i.name_upper.lower(), self.namespace, i.camel_name, i.name, i.camel_name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write ('%s *%sobject_get_%s (%sObject *object)\n' - %(i.camel_name, self.ns_lower, i.name_upper.lower(), self.namespace)) - self.c.write('{\n' - ' GDBusInterface *ret;\n' - ' ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "%s");\n' - ' if (ret == NULL)\n' - ' return NULL;\n' - ' return %s%s (ret);\n' - '}\n' - '\n' - %(i.name, self.ns_upper, i.name_upper)) - self.c.write('\n') - for i in self.ifaces: - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sobject_peek_%s: (skip)\n' - ' * @object: A #%sObject.\n' - ' *\n' - ' * Like %sobject_get_%s() but doesn\'t increase the reference count on the returned object.\n' - ' *\n' - ' * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.\n' - ' *\n' - ' * Returns: (transfer none): A #%s or %%NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.\n' - %(self.ns_lower, i.name_upper.lower(), self.namespace, self.ns_lower, i.name_upper.lower(), i.camel_name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write ('%s *%sobject_peek_%s (%sObject *object)\n' - %(i.camel_name, self.ns_lower, i.name_upper.lower(), self.namespace)) - self.c.write('{\n' - ' GDBusInterface *ret;\n' - ' ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "%s");\n' - ' if (ret == NULL)\n' - ' return NULL;\n' - ' g_object_unref (ret);\n' - ' return %s%s (ret);\n' - '}\n' - '\n' - %(i.name, self.ns_upper, i.name_upper)) - self.c.write('\n') - # shared by ObjectProxy and ObjectSkeleton classes - self.c.write('static void\n' - '%sobject_notify (GDBusObject *object, GDBusInterface *interface)\n' - '{\n' - ' _ExtendedGDBusInterfaceInfo *info = (_ExtendedGDBusInterfaceInfo *) g_dbus_interface_get_info (interface);\n' - ' /* info can be NULL if the other end is using a D-Bus interface we don\'t know\n' - ' * anything about, for example old generated code in this process talking to\n' - ' * newer generated code in the other process. */\n' - ' if (info != NULL)\n' - ' g_object_notify (G_OBJECT (object), info->hyphen_name);\n' - '}\n' - '\n' - %(self.ns_lower)) - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sObjectProxy:\n' - ' *\n' - ' * The #%sObjectProxy structure contains only private data and should only be accessed using the provided API.\n' - %(self.namespace, self.namespace), False)) - self.c.write(' */\n') - self.c.write('\n') - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sObjectProxyClass:\n' - ' * @parent_class: The parent class.\n' - ' *\n' - ' * Class structure for #%sObjectProxy.\n' - %(self.namespace, self.namespace), False)) - self.c.write(' */\n') - self.c.write('\n') - # class boilerplate - self.c.write('static void\n' - '%sobject_proxy__%sobject_iface_init (%sObjectIface *iface G_GNUC_UNUSED)\n' - '{\n' - '}\n' - '\n' - %(self.ns_lower, self.ns_lower, self.namespace)) - self.c.write('static void\n' - '%sobject_proxy__g_dbus_object_iface_init (GDBusObjectIface *iface)\n' - '{\n' - ' iface->interface_added = %sobject_notify;\n' - ' iface->interface_removed = %sobject_notify;\n' - '}\n' - '\n' - %(self.ns_lower, self.ns_lower, self.ns_lower)) - self.c.write('\n') - self.c.write('G_DEFINE_TYPE_WITH_CODE (%sObjectProxy, %sobject_proxy, G_TYPE_DBUS_OBJECT_PROXY,\n' - ' G_IMPLEMENT_INTERFACE (%sTYPE_OBJECT, %sobject_proxy__%sobject_iface_init)\n' - ' G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, %sobject_proxy__g_dbus_object_iface_init));\n' - '\n' - %(self.namespace, self.ns_lower, self.ns_upper, self.ns_lower, self.ns_lower, self.ns_lower)) - # class boilerplate - self.c.write('static void\n' - '%sobject_proxy_init (%sObjectProxy *object G_GNUC_UNUSED)\n' - '{\n' - '}\n' - '\n'%(self.ns_lower, self.namespace)) - self.c.write('static void\n' - '%sobject_proxy_set_property (GObject *gobject,\n' - ' guint prop_id,\n' - ' const GValue *value G_GNUC_UNUSED,\n' - ' GParamSpec *pspec)\n' - '{\n' - ' G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);\n' - %(self.ns_lower)) - self.c.write('}\n' - '\n'%()) - self.c.write('static void\n' - '%sobject_proxy_get_property (GObject *gobject,\n' - ' guint prop_id,\n' - ' GValue *value,\n' - ' GParamSpec *pspec)\n' - '{\n' - ' %sObjectProxy *object = %sOBJECT_PROXY (gobject);\n' - ' GDBusInterface *interface;\n' - '\n' - ' switch (prop_id)\n' - ' {\n' - %(self.ns_lower, self.namespace, self.ns_upper)) - n = 1 - for i in self.ifaces: - self.c.write(' case %d:\n' - ' interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "%s");\n' - ' g_value_take_object (value, interface);\n' - ' break;\n' - '\n' - %(n, i.name)) - n += 1 - self.c.write(' default:\n' - ' G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);\n' - ' break;\n' - ' }\n' - '}\n' - '\n'%()) - self.c.write('static void\n' - '%sobject_proxy_class_init (%sObjectProxyClass *klass)\n' - '{\n' - ' GObjectClass *gobject_class = G_OBJECT_CLASS (klass);\n' - '\n' - ' gobject_class->set_property = %sobject_proxy_set_property;\n' - ' gobject_class->get_property = %sobject_proxy_get_property;\n' - '\n' - %(self.ns_lower, self.namespace, self.ns_lower, self.ns_lower)) - n = 1 - for i in self.ifaces: - self.c.write(' g_object_class_override_property (gobject_class, %d, "%s");' - '\n' - %(n, i.name_hyphen)) - n += 1 - self.c.write('}\n' - '\n') - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sobject_proxy_new:\n' - ' * @connection: A #GDBusConnection.\n' - ' * @object_path: An object path.\n' - ' *\n' - ' * Creates a new proxy object.\n' - ' *\n' - ' * Returns: (transfer full): The proxy object.\n' - ' */\n' - %(self.ns_lower), False)) - self.c.write('%sObjectProxy *\n' - '%sobject_proxy_new (GDBusConnection *connection,\n' - ' const gchar *object_path)\n' - '{\n' - ' g_return_val_if_fail (G_IS_DBUS_CONNECTION (connection), NULL);\n' - ' g_return_val_if_fail (g_variant_is_object_path (object_path), NULL);\n' - ' return %sOBJECT_PROXY (g_object_new (%sTYPE_OBJECT_PROXY, "g-connection", connection, "g-object-path", object_path, NULL));\n' - '}\n' - '\n'%(self.namespace, self.ns_lower, self.ns_upper, self.ns_upper)) - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sObjectSkeleton:\n' - ' *\n' - ' * The #%sObjectSkeleton structure contains only private data and should only be accessed using the provided API.\n' - %(self.namespace, self.namespace), False)) - self.c.write(' */\n') - self.c.write('\n') - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sObjectSkeletonClass:\n' - ' * @parent_class: The parent class.\n' - ' *\n' - ' * Class structure for #%sObjectSkeleton.\n' - %(self.namespace, self.namespace), False)) - self.c.write(' */\n') - self.c.write('\n') - # class boilerplate - self.c.write('static void\n' - '%sobject_skeleton__%sobject_iface_init (%sObjectIface *iface G_GNUC_UNUSED)\n' - '{\n' - '}\n' - '\n' - %(self.ns_lower, self.ns_lower, self.namespace)) - self.c.write('\n') - self.c.write('static void\n' - '%sobject_skeleton__g_dbus_object_iface_init (GDBusObjectIface *iface)\n' - '{\n' - ' iface->interface_added = %sobject_notify;\n' - ' iface->interface_removed = %sobject_notify;\n' - '}\n' - '\n' - %(self.ns_lower, self.ns_lower, self.ns_lower)) - self.c.write('G_DEFINE_TYPE_WITH_CODE (%sObjectSkeleton, %sobject_skeleton, G_TYPE_DBUS_OBJECT_SKELETON,\n' - ' G_IMPLEMENT_INTERFACE (%sTYPE_OBJECT, %sobject_skeleton__%sobject_iface_init)\n' - ' G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, %sobject_skeleton__g_dbus_object_iface_init));\n' - '\n' - %(self.namespace, self.ns_lower, self.ns_upper, self.ns_lower, self.ns_lower, self.ns_lower)) - # class boilerplate - self.c.write('static void\n' - '%sobject_skeleton_init (%sObjectSkeleton *object G_GNUC_UNUSED)\n' - '{\n' - '}\n' - '\n'%(self.ns_lower, self.namespace)) - self.c.write('static void\n' - '%sobject_skeleton_set_property (GObject *gobject,\n' - ' guint prop_id,\n' - ' const GValue *value,\n' - ' GParamSpec *pspec)\n' - '{\n' - ' %sObjectSkeleton *object = %sOBJECT_SKELETON (gobject);\n' - ' GDBusInterfaceSkeleton *interface;\n' - '\n' - ' switch (prop_id)\n' - ' {\n' - %(self.ns_lower, self.namespace, self.ns_upper)) - n = 1 - for i in self.ifaces: - self.c.write(' case %d:\n' - ' interface = g_value_get_object (value);\n' - ' if (interface != NULL)\n' - ' {\n' - ' g_warn_if_fail (%sIS_%s (interface));\n' - ' g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface);\n' - ' }\n' - ' else\n' - ' {\n' - ' g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "%s");\n' - ' }\n' - ' break;\n' - '\n' - %(n, self.ns_upper, i.name_upper, i.name)) - n += 1 - self.c.write(' default:\n' - ' G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);\n' - ' break;\n' - ' }\n' - '}\n' - '\n'%()) - self.c.write('static void\n' - '%sobject_skeleton_get_property (GObject *gobject,\n' - ' guint prop_id,\n' - ' GValue *value,\n' - ' GParamSpec *pspec)\n' - '{\n' - ' %sObjectSkeleton *object = %sOBJECT_SKELETON (gobject);\n' - ' GDBusInterface *interface;\n' - '\n' - ' switch (prop_id)\n' - ' {\n' - %(self.ns_lower, self.namespace, self.ns_upper)) - n = 1 - for i in self.ifaces: - self.c.write(' case %d:\n' - ' interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "%s");\n' - ' g_value_take_object (value, interface);\n' - ' break;\n' - '\n' - %(n, i.name)) - n += 1 - self.c.write(' default:\n' - ' G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);\n' - ' break;\n' - ' }\n' - '}\n' - '\n'%()) - self.c.write('static void\n' - '%sobject_skeleton_class_init (%sObjectSkeletonClass *klass)\n' - '{\n' - ' GObjectClass *gobject_class = G_OBJECT_CLASS (klass);\n' - '\n' - ' gobject_class->set_property = %sobject_skeleton_set_property;\n' - ' gobject_class->get_property = %sobject_skeleton_get_property;\n' - '\n' - %(self.ns_lower, self.namespace, self.ns_lower, self.ns_lower)) - n = 1 - for i in self.ifaces: - self.c.write(' g_object_class_override_property (gobject_class, %d, "%s");' - '\n' - %(n, i.name_hyphen)) - n += 1 - self.c.write('}\n' - '\n') - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sobject_skeleton_new:\n' - ' * @object_path: An object path.\n' - ' *\n' - ' * Creates a new skeleton object.\n' - ' *\n' - ' * Returns: (transfer full): The skeleton object.\n' - ' */\n' - %(self.ns_lower), False)) - self.c.write('%sObjectSkeleton *\n' - '%sobject_skeleton_new (const gchar *object_path)\n' - '{\n' - ' g_return_val_if_fail (g_variant_is_object_path (object_path), NULL);\n' - ' return %sOBJECT_SKELETON (g_object_new (%sTYPE_OBJECT_SKELETON, "g-object-path", object_path, NULL));\n' - '}\n' - '\n'%(self.namespace, self.ns_lower, self.ns_upper, self.ns_upper)) - for i in self.ifaces: - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sobject_skeleton_set_%s:\n' - ' * @object: A #%sObjectSkeleton.\n' - ' * @interface_: (allow-none): A #%s or %%NULL to clear the interface.\n' - ' *\n' - ' * Sets the #%s instance for the D-Bus interface #%s on @object.\n' - %(self.ns_lower, i.name_upper.lower(), self.namespace, i.camel_name, i.camel_name, i.name), False)) - self.write_gtkdoc_deprecated_and_since_and_close(i, self.c, 0) - self.c.write ('void %sobject_skeleton_set_%s (%sObjectSkeleton *object, %s *interface_)\n' - %(self.ns_lower, i.name_upper.lower(), self.namespace, i.camel_name)) - self.c.write('{\n' - ' g_object_set (G_OBJECT (object), "%s", interface_, NULL);\n' - '}\n' - '\n' - %(i.name_hyphen)) - self.c.write('\n') - - - def generate_object_manager_client(self): - self.c.write('/* ------------------------------------------------------------------------\n' - ' * Code for ObjectManager client\n' - ' * ------------------------------------------------------------------------\n' - ' */\n' - '\n') - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * SECTION:%sObjectManagerClient\n' - ' * @title: %sObjectManagerClient\n' - ' * @short_description: Generated GDBusObjectManagerClient type\n' - ' *\n' - ' * This section contains a #GDBusObjectManagerClient that uses %sobject_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc.\n' - ' */\n' - %(self.namespace, self.namespace, self.ns_lower), False)) - self.c.write('\n') - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sObjectManagerClient:\n' - ' *\n' - ' * The #%sObjectManagerClient structure contains only private data and should only be accessed using the provided API.\n' - %(self.namespace, self.namespace), False)) - self.c.write(' */\n') - self.c.write('\n') - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sObjectManagerClientClass:\n' - ' * @parent_class: The parent class.\n' - ' *\n' - ' * Class structure for #%sObjectManagerClient.\n' - %(self.namespace, self.namespace), False)) - self.c.write(' */\n') - self.c.write('\n') - - # class boilerplate - self.c.write('G_DEFINE_TYPE (%sObjectManagerClient, %sobject_manager_client, G_TYPE_DBUS_OBJECT_MANAGER_CLIENT);\n' - '\n' - %(self.namespace, self.ns_lower)) - - # class boilerplate - self.c.write('static void\n' - '%sobject_manager_client_init (%sObjectManagerClient *manager G_GNUC_UNUSED)\n' - '{\n' - '}\n' - '\n'%(self.ns_lower, self.namespace)) - self.c.write('static void\n' - '%sobject_manager_client_class_init (%sObjectManagerClientClass *klass G_GNUC_UNUSED)\n' - '{\n' - '}\n' - '\n'%(self.ns_lower, self.namespace)) - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sobject_manager_client_get_proxy_type:\n' - ' * @manager: A #GDBusObjectManagerClient.\n' - ' * @object_path: The object path of the remote object (unused).\n' - ' * @interface_name: (allow-none): Interface name of the remote object or %%NULL to get the object proxy #GType.\n' - ' * @user_data: User data (unused).\n' - ' *\n' - ' * A #GDBusProxyTypeFunc that maps @interface_name to the generated #GDBusObjectProxy- and #GDBusProxy-derived types.\n' - ' *\n' - ' * Returns: A #GDBusProxy-derived #GType if @interface_name is not %%NULL, otherwise the #GType for #%sObjectProxy.\n' - %(self.ns_lower, self.namespace), False)) - self.c.write(' */\n') - self.c.write('GType\n' - '%sobject_manager_client_get_proxy_type (GDBusObjectManagerClient *manager G_GNUC_UNUSED, const gchar *object_path G_GNUC_UNUSED, const gchar *interface_name, gpointer user_data G_GNUC_UNUSED)\n' - '{\n' - %(self.ns_lower)) - self.c.write(' static gsize once_init_value = 0;\n' - ' static GHashTable *lookup_hash;\n' - ' GType ret;\n' - '\n' - ' if (interface_name == NULL)\n' - ' return %sTYPE_OBJECT_PROXY;\n' - ' if (g_once_init_enter (&once_init_value))\n' - ' {\n' - ' lookup_hash = g_hash_table_new (g_str_hash, g_str_equal);\n' - %(self.ns_upper)) - for i in self.ifaces: - self.c.write(' g_hash_table_insert (lookup_hash, (gpointer) "%s", GSIZE_TO_POINTER (%sTYPE_%s_PROXY));\n' - %(i.name, i.ns_upper, i.name_upper)) - self.c.write(' g_once_init_leave (&once_init_value, 1);\n' - ' }\n') - self.c.write(' ret = (GType) GPOINTER_TO_SIZE (g_hash_table_lookup (lookup_hash, interface_name));\n' - ' if (ret == (GType) 0)\n' - ' ret = G_TYPE_DBUS_PROXY;\n') - self.c.write(' return ret;\n' - '}\n' - '\n') - - # constructors - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sobject_manager_client_new:\n' - ' * @connection: A #GDBusConnection.\n' - ' * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration.\n' - ' * @name: (allow-none): A bus name (well-known or unique) or %%NULL if @connection is not a message bus connection.\n' - ' * @object_path: An object path.\n' - ' * @cancellable: (allow-none): A #GCancellable or %%NULL.\n' - ' * @callback: A #GAsyncReadyCallback to call when the request is satisfied.\n' - ' * @user_data: User data to pass to @callback.\n' - ' *\n' - ' * Asynchronously creates #GDBusObjectManagerClient using %sobject_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new() for more details.\n' - ' *\n' - ' * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from.\n' - ' * You can then call %sobject_manager_client_new_finish() to get the result of the operation.\n' - ' *\n' - ' * See %sobject_manager_client_new_sync() for the synchronous, blocking version of this constructor.\n' - %(self.ns_lower, self.ns_lower, self.ns_lower, self.ns_lower), False)) - self.c.write(' */\n') - self.c.write('void\n' - '%sobject_manager_client_new (\n' - ' GDBusConnection *connection,\n' - ' GDBusObjectManagerClientFlags flags,\n' - ' const gchar *name,\n' - ' const gchar *object_path,\n' - ' GCancellable *cancellable,\n' - ' GAsyncReadyCallback callback,\n' - ' gpointer user_data)\n' - '{\n' - ' g_async_initable_new_async (%sTYPE_OBJECT_MANAGER_CLIENT, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", %sobject_manager_client_get_proxy_type, NULL);\n' - '}\n' - '\n' - %(self.ns_lower, self.ns_upper, self.ns_lower)) - self.c.write('/**\n' - ' * %sobject_manager_client_new_finish:\n' - ' * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to %sobject_manager_client_new().\n' - ' * @error: Return location for error or %%NULL\n' - ' *\n' - ' * Finishes an operation started with %sobject_manager_client_new().\n' - ' *\n' - ' * Returns: (transfer full) (type %sObjectManagerClient): The constructed object manager client or %%NULL if @error is set.\n' - %(self.ns_lower, self.ns_lower, self.ns_lower, self.namespace)) - self.c.write(' */\n') - self.c.write('GDBusObjectManager *\n' - '%sobject_manager_client_new_finish (\n' - ' GAsyncResult *res,\n' - ' GError **error)\n' - '{\n' - ' GObject *ret;\n' - ' GObject *source_object;\n' - ' source_object = g_async_result_get_source_object (res);\n' - ' ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);\n' - ' g_object_unref (source_object);\n' - ' if (ret != NULL)\n' - ' return G_DBUS_OBJECT_MANAGER (ret);\n' - ' else\n' - ' return NULL;\n' - '}\n' - '\n' - %(self.ns_lower)) - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sobject_manager_client_new_sync:\n' - ' * @connection: A #GDBusConnection.\n' - ' * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration.\n' - ' * @name: (allow-none): A bus name (well-known or unique) or %%NULL if @connection is not a message bus connection.\n' - ' * @object_path: An object path.\n' - ' * @cancellable: (allow-none): A #GCancellable or %%NULL.\n' - ' * @error: Return location for error or %%NULL\n' - ' *\n' - ' * Synchronously creates #GDBusObjectManagerClient using %sobject_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new_sync() for more details.\n' - ' *\n' - ' * The calling thread is blocked until a reply is received.\n' - ' *\n' - ' * See %sobject_manager_client_new() for the asynchronous version of this constructor.\n' - ' *\n' - ' * Returns: (transfer full) (type %sObjectManagerClient): The constructed object manager client or %%NULL if @error is set.\n' - %(self.ns_lower, self.ns_lower, self.ns_lower, self.namespace), False)) - self.c.write(' */\n') - self.c.write('GDBusObjectManager *\n' - '%sobject_manager_client_new_sync (\n' - ' GDBusConnection *connection,\n' - ' GDBusObjectManagerClientFlags flags,\n' - ' const gchar *name,\n' - ' const gchar *object_path,\n' - ' GCancellable *cancellable,\n' - ' GError **error)\n' - '{\n' - ' GInitable *ret;\n' - ' ret = g_initable_new (%sTYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", %sobject_manager_client_get_proxy_type, NULL);\n' - ' if (ret != NULL)\n' - ' return G_DBUS_OBJECT_MANAGER (ret);\n' - ' else\n' - ' return NULL;\n' - '}\n' - '\n' - %(self.ns_lower, self.ns_upper, self.ns_lower)) - self.c.write('\n') - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sobject_manager_client_new_for_bus:\n' - ' * @bus_type: A #GBusType.\n' - ' * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration.\n' - ' * @name: A bus name (well-known or unique).\n' - ' * @object_path: An object path.\n' - ' * @cancellable: (allow-none): A #GCancellable or %%NULL.\n' - ' * @callback: A #GAsyncReadyCallback to call when the request is satisfied.\n' - ' * @user_data: User data to pass to @callback.\n' - ' *\n' - ' * Like %sobject_manager_client_new() but takes a #GBusType instead of a #GDBusConnection.\n' - ' *\n' - ' * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from.\n' - ' * You can then call %sobject_manager_client_new_for_bus_finish() to get the result of the operation.\n' - ' *\n' - ' * See %sobject_manager_client_new_for_bus_sync() for the synchronous, blocking version of this constructor.\n' - %(self.ns_lower, self.ns_lower, self.ns_lower, self.ns_lower), False)) - self.c.write(' */\n') - self.c.write('void\n' - '%sobject_manager_client_new_for_bus (\n' - ' GBusType bus_type,\n' - ' GDBusObjectManagerClientFlags flags,\n' - ' const gchar *name,\n' - ' const gchar *object_path,\n' - ' GCancellable *cancellable,\n' - ' GAsyncReadyCallback callback,\n' - ' gpointer user_data)\n' - '{\n' - ' g_async_initable_new_async (%sTYPE_OBJECT_MANAGER_CLIENT, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", %sobject_manager_client_get_proxy_type, NULL);\n' - '}\n' - '\n' - %(self.ns_lower, self.ns_upper, self.ns_lower)) - self.c.write('/**\n' - ' * %sobject_manager_client_new_for_bus_finish:\n' - ' * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to %sobject_manager_client_new_for_bus().\n' - ' * @error: Return location for error or %%NULL\n' - ' *\n' - ' * Finishes an operation started with %sobject_manager_client_new_for_bus().\n' - ' *\n' - ' * Returns: (transfer full) (type %sObjectManagerClient): The constructed object manager client or %%NULL if @error is set.\n' - %(self.ns_lower, self.ns_lower, self.ns_lower, self.namespace)) - self.c.write(' */\n') - self.c.write('GDBusObjectManager *\n' - '%sobject_manager_client_new_for_bus_finish (\n' - ' GAsyncResult *res,\n' - ' GError **error)\n' - '{\n' - ' GObject *ret;\n' - ' GObject *source_object;\n' - ' source_object = g_async_result_get_source_object (res);\n' - ' ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);\n' - ' g_object_unref (source_object);\n' - ' if (ret != NULL)\n' - ' return G_DBUS_OBJECT_MANAGER (ret);\n' - ' else\n' - ' return NULL;\n' - '}\n' - '\n' - %(self.ns_lower)) - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * %sobject_manager_client_new_for_bus_sync:\n' - ' * @bus_type: A #GBusType.\n' - ' * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration.\n' - ' * @name: A bus name (well-known or unique).\n' - ' * @object_path: An object path.\n' - ' * @cancellable: (allow-none): A #GCancellable or %%NULL.\n' - ' * @error: Return location for error or %%NULL\n' - ' *\n' - ' * Like %sobject_manager_client_new_sync() but takes a #GBusType instead of a #GDBusConnection.\n' - ' *\n' - ' * The calling thread is blocked until a reply is received.\n' - ' *\n' - ' * See %sobject_manager_client_new_for_bus() for the asynchronous version of this constructor.\n' - ' *\n' - ' * Returns: (transfer full) (type %sObjectManagerClient): The constructed object manager client or %%NULL if @error is set.\n' - %(self.ns_lower, self.ns_lower, self.ns_lower, self.namespace), False)) - self.c.write(' */\n') - self.c.write('GDBusObjectManager *\n' - '%sobject_manager_client_new_for_bus_sync (\n' - ' GBusType bus_type,\n' - ' GDBusObjectManagerClientFlags flags,\n' - ' const gchar *name,\n' - ' const gchar *object_path,\n' - ' GCancellable *cancellable,\n' - ' GError **error)\n' - '{\n' - ' GInitable *ret;\n' - ' ret = g_initable_new (%sTYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", %sobject_manager_client_get_proxy_type, NULL);\n' - ' if (ret != NULL)\n' - ' return G_DBUS_OBJECT_MANAGER (ret);\n' - ' else\n' - ' return NULL;\n' - '}\n' - '\n' - %(self.ns_lower, self.ns_upper, self.ns_lower)) - self.c.write('\n') - - # --------------------------------------------------------------------------------------------------- - - def write_gtkdoc_deprecated_and_since_and_close(self, obj, f, indent): - if len(obj.since) > 0: - f.write('%*s *\n' - '%*s * Since: %s\n' - %(indent, '', indent, '', obj.since)) - if obj.deprecated: - if isinstance(obj, dbustypes.Interface): - thing = 'The D-Bus interface' - elif isinstance(obj, dbustypes.Method): - thing = 'The D-Bus method' - elif isinstance(obj, dbustypes.Signal): - thing = 'The D-Bus signal' - elif isinstance(obj, dbustypes.Property): - thing = 'The D-Bus property' - else: - raise RuntimeError('Cannot handle object ', obj) - f.write(self.docbook_gen.expand( - '%*s *\n' - '%*s * Deprecated: %s has been deprecated.\n' - %(indent, '', indent, '', thing), False)) - f.write('%*s */\n'%(indent, '')) - - # --------------------------------------------------------------------------------------------------- - - def generate_interface_intro(self, i): - self.c.write('/* ------------------------------------------------------------------------\n' - ' * Code for interface %s\n' - ' * ------------------------------------------------------------------------\n' - ' */\n' - '\n'%(i.name)) - - self.c.write(self.docbook_gen.expand( - '/**\n' - ' * SECTION:%s\n' - ' * @title: %s\n' - ' * @short_description: Generated C code for the %s D-Bus interface\n' - ' *\n' - ' * This section contains code for working with the #%s D-Bus interface in C.\n' - ' */\n' - %(i.camel_name, i.camel_name, i.name, i.name), False)) - self.c.write('\n') - - def generate(self): - self.generate_intro() - self.declare_types() - for i in self.ifaces: - self.generate_interface_intro(i) - self.generate_introspection_for_interface(i) - self.generate_interface(i) - self.generate_property_accessors(i) - self.generate_signal_emitters(i) - self.generate_method_calls(i) - self.generate_method_completers(i) - self.generate_proxy(i) - self.generate_skeleton(i) - if self.generate_objmanager: - self.generate_object() - self.generate_object_manager_client() - - self.generate_outro() diff --git a/Release/share/glib-2.0/codegen/codegen_docbook.py b/Release/share/glib-2.0/codegen/codegen_docbook.py deleted file mode 100644 index 18e3d00..0000000 --- a/Release/share/glib-2.0/codegen/codegen_docbook.py +++ /dev/null @@ -1,329 +0,0 @@ -# -*- Mode: Python -*- - -# GDBus - GLib D-Bus Library -# -# Copyright (C) 2008-2011 Red Hat, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General -# Public License along with this library; if not, see . -# -# Author: David Zeuthen - -import sys -import re - -from . import config -from . import utils -from . import dbustypes -from . import parser - -# ---------------------------------------------------------------------------------------------------- - -class DocbookCodeGenerator: - def __init__(self, ifaces, docbook): - self.ifaces = ifaces - self.docbook = docbook - self.generate_expand_dicts() - - def print_method_prototype(self, i, m, in_synopsis): - max_method_len = 0 - if in_synopsis: - for _m in i.methods: - max_method_len = max(len(_m.name), max_method_len) - else: - max_method_len = max(len(m.name), max_method_len) - - max_signature_len = 0 - if in_synopsis: - for _m in i.methods: - for a in _m.in_args: - max_signature_len = max(len(a.signature), max_signature_len) - for a in _m.out_args: - max_signature_len = max(len(a.signature), max_signature_len) - else: - for a in m.in_args: - max_signature_len = max(len(a.signature), max_signature_len) - for a in m.out_args: - max_signature_len = max(len(a.signature), max_signature_len) - - if in_synopsis: - self.out.write('%s%*s (' - %(utils.dots_to_hyphens(i.name), m.name, m.name, max_method_len - len(m.name), '')) - else: - self.out.write('%s%*s (' - %(m.name, max_method_len - len(m.name), '')) - count = 0 - for a in m.in_args: - if (count > 0): - self.out.write(',\n%*s'%(max_method_len + 2, '')) - self.out.write('IN %s%*s %s'%(a.signature, max_signature_len - len(a.signature), '', a.name)) - count = count + 1 - for a in m.out_args: - if (count > 0): - self.out.write(',\n%*s'%(max_method_len + 2, '')) - self.out.write('OUT %s%*s %s'%(a.signature, max_signature_len - len(a.signature), '', a.name)) - count = count + 1 - self.out.write(');\n') - - def print_signal_prototype(self, i, s, in_synopsis): - max_signal_len = 0 - if in_synopsis: - for _s in i.signals: - max_signal_len = max(len(_s.name), max_signal_len) - else: - max_signal_len = max(len(s.name), max_signal_len) - - max_signature_len = 0 - if in_synopsis: - for _s in i.signals: - for a in _s.args: - max_signature_len = max(len(a.signature), max_signature_len) - else: - for a in s.args: - max_signature_len = max(len(a.signature), max_signature_len) - - if in_synopsis: - self.out.write('%s%*s (' - %(utils.dots_to_hyphens(i.name), s.name, s.name, max_signal_len - len(s.name), '')) - else: - self.out.write('%s%*s (' - %(s.name, max_signal_len - len(s.name), '')) - count = 0 - for a in s.args: - if (count > 0): - self.out.write(',\n%*s'%(max_signal_len + 2, '')) - self.out.write('%s%*s %s'%(a.signature, max_signature_len - len(a.signature), '', a.name)) - count = count + 1 - self.out.write(');\n') - - def print_property_prototype(self, i, p, in_synopsis): - max_property_len = 0 - if in_synopsis: - for _p in i.properties: - max_property_len = max(len(_p.name), max_property_len) - else: - max_property_len = max(len(p.name), max_property_len) - - max_signature_len = 0 - if in_synopsis: - for _p in i.properties: - max_signature_len = max(len(_p.signature), max_signature_len) - else: - max_signature_len = max(len(p.signature), max_signature_len) - - if in_synopsis: - self.out.write('%s%*s' - %(utils.dots_to_hyphens(i.name), p.name, p.name, max_property_len - len(p.name), '')) - else: - self.out.write('%s%*s' - %(p.name, max_property_len - len(p.name), '')) - if p.readable and p.writable: - access = 'readwrite' - elif p.readable: - access = 'readable ' - else: - access = 'writable ' - self.out.write(' %s %s\n'%(access, p.signature)) - - - def print_synopsis_methods(self, i): - self.out.write(' \n'%()) - self.out.write(' Methods\n'%()) - self.out.write(' \n'%()) - for m in i.methods: - self.print_method_prototype(i, m, in_synopsis=True) - self.out.write('\n'%()) - self.out.write(' \n'%()) - - def print_synopsis_signals(self, i): - self.out.write(' \n'%()) - self.out.write(' Signals\n'%()) - self.out.write(' \n'%()) - for s in i.signals: - self.print_signal_prototype(i, s, in_synopsis=True) - self.out.write('\n'%()) - self.out.write(' \n'%()) - - def print_synopsis_properties(self, i): - self.out.write(' \n'%()) - self.out.write(' Properties\n'%()) - self.out.write(' \n'%()) - for p in i.properties: - self.print_property_prototype(i, p, in_synopsis=True) - self.out.write('\n'%()) - self.out.write(' \n'%()) - - def print_method(self, i, m): - self.out.write('\n'%(utils.dots_to_hyphens(i.name), m.name)) - self.out.write(' The %s() method\n'%(m.name)) - self.out.write(' %s.%s()\n'%(utils.dots_to_hyphens(i.name), m.name, i.name_without_prefix, m.name, i.name, m.name)) - self.out.write('\n') - self.print_method_prototype(i, m, in_synopsis=False) - self.out.write('\n') - self.out.write('%s\n'%(self.expand_paras(m.doc_string, True))) - if m.in_args or m.out_args: - self.out.write('\n') - for a in m.in_args: - self.out.write('\n'%()) - self.out.write(' IN %s %s:\n'%(a.signature, a.name)) - self.out.write(' %s\n'%(self.expand_paras(a.doc_string, True))) - self.out.write('\n'%()) - for a in m.out_args: - self.out.write('\n'%()) - self.out.write(' OUT %s %s:\n'%(a.signature, a.name)) - self.out.write(' %s\n'%(self.expand_paras(a.doc_string, True))) - self.out.write('\n'%()) - self.out.write('\n') - if len(m.since) > 0: - self.out.write('Since %s\n'%(m.since)) - if m.deprecated: - self.out.write('The %s() method is deprecated.'%(m.name)) - self.out.write('\n') - - def print_signal(self, i, s): - self.out.write('\n'%(utils.dots_to_hyphens(i.name), s.name)) - self.out.write(' The "%s" signal\n'%(s.name)) - self.out.write(' %s::%s\n'%(utils.dots_to_hyphens(i.name), s.name, i.name_without_prefix, s.name, i.name, s.name)) - self.out.write('\n') - self.print_signal_prototype(i, s, in_synopsis=False) - self.out.write('\n') - self.out.write('%s\n'%(self.expand_paras(s.doc_string, True))) - if s.args: - self.out.write('\n') - for a in s.args: - self.out.write('\n'%()) - self.out.write(' %s %s:\n'%(a.signature, a.name)) - self.out.write(' %s\n'%(self.expand_paras(a.doc_string, True))) - self.out.write('\n'%()) - self.out.write('\n') - if len(s.since) > 0: - self.out.write('Since %s\n'%(s.since)) - if s.deprecated: - self.out.write('The "%s" signal is deprecated.'%(s.name)) - self.out.write('\n') - - def print_property(self, i, p): - self.out.write('\n'%(utils.dots_to_hyphens(i.name), p.name)) - self.out.write(' The "%s" property\n'%(p.name)) - self.out.write(' %s:%s\n'%(utils.dots_to_hyphens(i.name), p.name, i.name_without_prefix, p.name, i.name, p.name)) - self.out.write('\n') - self.print_property_prototype(i, p, in_synopsis=False) - self.out.write('\n') - self.out.write('%s\n'%(self.expand_paras(p.doc_string, True))) - if len(p.since) > 0: - self.out.write('Since %s\n'%(p.since)) - if p.deprecated: - self.out.write('The "%s" property is deprecated.'%(p.name)) - self.out.write('\n') - - def expand(self, s, expandParamsAndConstants): - for key in self.expand_member_dict_keys: - s = s.replace(key, self.expand_member_dict[key]) - for key in self.expand_iface_dict_keys: - s = s.replace(key, self.expand_iface_dict[key]) - if expandParamsAndConstants: - # replace @foo with foo - s = re.sub('@[a-zA-Z0-9_]*', lambda m: '' + m.group(0)[1:] + '', s) - # replace e.g. %TRUE with TRUE - s = re.sub('%[a-zA-Z0-9_]*', lambda m: '' + m.group(0)[1:] + '', s) - return s - - def expand_paras(self, s, expandParamsAndConstants): - s = self.expand(s, expandParamsAndConstants).strip() - if not s.startswith("\n'%()) - self.out.write('\n'%()) - self.out.write('\n'%(i.name)) - self.out.write(' '%()) - self.out.write(' %s\n'%(utils.dots_to_hyphens(i.name), i.name)) - self.out.write(' %s\n'%(utils.dots_to_hyphens(i.name), i.name_without_prefix, i.name)) - self.out.write(' '%()) - - self.out.write(' '%()) - self.out.write(' %s'%(i.name)) - self.out.write(' %s'%(i.doc_string_brief)) - self.out.write(' '%()) - - if len(i.methods) > 0: - self.print_synopsis_methods(i) - if len(i.signals) > 0: - self.print_synopsis_signals(i) - if len(i.properties) > 0: - self.print_synopsis_properties(i) - - self.out.write('\n'%(utils.dots_to_hyphens(i.name))) - self.out.write(' Description\n'%()) - self.out.write(' %s\n'%(self.expand_paras(i.doc_string, True))) - if len(i.since) > 0: - self.out.write(' Since %s\n'%(i.since)) - if i.deprecated: - self.out.write('The %s interface is deprecated.'%(i.name)) - self.out.write('\n'%()) - - if len(i.methods) > 0: - self.out.write('\n'%(i.name)) - self.out.write(' Method Details\n'%()) - for m in i.methods: - self.print_method(i, m) - self.out.write('\n'%()) - - if len(i.signals) > 0: - self.out.write('\n'%(i.name)) - self.out.write(' Signal Details\n'%()) - for s in i.signals: - self.print_signal(i, s) - self.out.write('\n'%()) - - if len(i.properties) > 0: - self.out.write('\n'%(i.name)) - self.out.write(' Property Details\n'%()) - for s in i.properties: - self.print_property(i, s) - self.out.write('\n'%()) - - self.out.write('\n') - self.out.write('\n') - diff --git a/Release/share/glib-2.0/codegen/codegen_main.py b/Release/share/glib-2.0/codegen/codegen_main.py deleted file mode 100644 index cc28c81..0000000 --- a/Release/share/glib-2.0/codegen/codegen_main.py +++ /dev/null @@ -1,204 +0,0 @@ -# -*- Mode: Python -*- - -# GDBus - GLib D-Bus Library -# -# Copyright (C) 2008-2011 Red Hat, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General -# Public License along with this library; if not, see . -# -# Author: David Zeuthen - -import sys -import optparse - -from . import config -from . import utils -from . import dbustypes -from . import parser -from . import codegen -from . import codegen_docbook - -def find_arg(arg_list, arg_name): - for a in arg_list: - if a.name == arg_name: - return a - return None - -def find_method(iface, method): - for m in iface.methods: - if m.name == method: - return m - return None - -def find_signal(iface, signal): - for m in iface.signals: - if m.name == signal: - return m - return None - -def find_prop(iface, prop): - for m in iface.properties: - if m.name == prop: - return m - return None - -def apply_annotation(iface_list, iface, method, signal, prop, arg, key, value): - iface_obj = None - for i in iface_list: - if i.name == iface: - iface_obj = i - break - - if iface_obj == None: - raise RuntimeError('No interface %s'%iface) - - target_obj = None - - if method: - method_obj = find_method(iface_obj, method) - if method_obj == None: - raise RuntimeError('No method %s on interface %s'%(method, iface)) - if arg: - arg_obj = find_arg(method_obj.in_args, arg) - if (arg_obj == None): - arg_obj = find_arg(method_obj.out_args, arg) - if (arg_obj == None): - raise RuntimeError('No arg %s on method %s on interface %s'%(arg, method, iface)) - target_obj = arg_obj - else: - target_obj = method_obj - elif signal: - signal_obj = find_signal(iface_obj, signal) - if signal_obj == None: - raise RuntimeError('No signal %s on interface %s'%(signal, iface)) - if arg: - arg_obj = find_arg(signal_obj.args, arg) - if (arg_obj == None): - raise RuntimeError('No arg %s on signal %s on interface %s'%(arg, signal, iface)) - target_obj = arg_obj - else: - target_obj = signal_obj - elif prop: - prop_obj = find_prop(iface_obj, prop) - if prop_obj == None: - raise RuntimeError('No property %s on interface %s'%(prop, iface)) - target_obj = prop_obj - else: - target_obj = iface_obj - target_obj.annotations.insert(0, dbustypes.Annotation(key, value)) - - -def apply_annotations(iface_list, annotation_list): - # apply annotations given on the command line - for (what, key, value) in annotation_list: - pos = what.find('::') - if pos != -1: - # signal - iface = what[0:pos]; - signal = what[pos + 2:] - pos = signal.find('[') - if pos != -1: - arg = signal[pos + 1:] - signal = signal[0:pos] - pos = arg.find(']') - arg = arg[0:pos] - apply_annotation(iface_list, iface, None, signal, None, arg, key, value) - else: - apply_annotation(iface_list, iface, None, signal, None, None, key, value) - else: - pos = what.find(':') - if pos != -1: - # property - iface = what[0:pos]; - prop = what[pos + 1:] - apply_annotation(iface_list, iface, None, None, prop, None, key, value) - else: - pos = what.find('()') - if pos != -1: - # method - combined = what[0:pos] - pos = combined.rfind('.') - iface = combined[0:pos] - method = combined[pos + 1:] - pos = what.find('[') - if pos != -1: - arg = what[pos + 1:] - pos = arg.find(']') - arg = arg[0:pos] - apply_annotation(iface_list, iface, method, None, None, arg, key, value) - else: - apply_annotation(iface_list, iface, method, None, None, None, key, value) - else: - # must be an interface - iface = what - apply_annotation(iface_list, iface, None, None, None, None, key, value) - -def codegen_main(): - arg_parser = optparse.OptionParser('%prog [options]') - arg_parser.add_option('', '--xml-files', metavar='FILE', action='append', - help='D-Bus introspection XML file') - arg_parser.add_option('', '--interface-prefix', metavar='PREFIX', default='', - help='String to strip from D-Bus interface names for code and docs') - arg_parser.add_option('', '--c-namespace', metavar='NAMESPACE', default='', - help='The namespace to use for generated C code') - arg_parser.add_option('', '--c-generate-object-manager', action='store_true', - help='Generate a GDBusObjectManagerClient subclass when generating C code') - arg_parser.add_option('', '--generate-c-code', metavar='OUTFILES', - help='Generate C code in OUTFILES.[ch]') - arg_parser.add_option('', '--c-generate-autocleanup', type='choice', choices=['none', 'objects', 'all'], default='objects', - help='Generate autocleanup support') - arg_parser.add_option('', '--generate-docbook', metavar='OUTFILES', - help='Generate Docbook in OUTFILES-org.Project.IFace.xml') - arg_parser.add_option('', '--annotate', nargs=3, action='append', metavar='WHAT KEY VALUE', - help='Add annotation (may be used several times)') - (opts, args) = arg_parser.parse_args(); - - all_ifaces = [] - for fname in args: - f = open(fname, 'rb') - xml_data = f.read() - f.close() - parsed_ifaces = parser.parse_dbus_xml(xml_data) - all_ifaces.extend(parsed_ifaces) - - if opts.annotate != None: - apply_annotations(all_ifaces, opts.annotate) - - for i in all_ifaces: - i.post_process(opts.interface_prefix, opts.c_namespace) - - docbook = opts.generate_docbook - docbook_gen = codegen_docbook.DocbookCodeGenerator(all_ifaces, docbook); - if docbook: - ret = docbook_gen.generate() - - c_code = opts.generate_c_code - if c_code: - h = open(c_code + '.h', 'w') - c = open(c_code + '.c', 'w') - gen = codegen.CodeGenerator(all_ifaces, - opts.c_namespace, - opts.interface_prefix, - opts.c_generate_object_manager, - opts.c_generate_autocleanup, - docbook_gen, - h, c); - ret = gen.generate() - h.close() - c.close() - - sys.exit(0) - -if __name__ == "__main__": - codegen_main() diff --git a/Release/share/glib-2.0/codegen/config.py b/Release/share/glib-2.0/codegen/config.py deleted file mode 100644 index 983eda6..0000000 --- a/Release/share/glib-2.0/codegen/config.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- Mode: Python -*- - -# GDBus - GLib D-Bus Library -# -# Copyright (C) 2008-2011 Red Hat, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General -# Public License along with this library; if not, see . -# -# Author: David Zeuthen - -DATADIR = "${prefix}/share" -DATADIR = DATADIR.replace( - "${prefix}", "/mingw64") -VERSION = "2.50.1" diff --git a/Release/share/glib-2.0/codegen/dbustypes.py b/Release/share/glib-2.0/codegen/dbustypes.py deleted file mode 100644 index 8787c92..0000000 --- a/Release/share/glib-2.0/codegen/dbustypes.py +++ /dev/null @@ -1,424 +0,0 @@ -# -*- Mode: Python -*- - -# GDBus - GLib D-Bus Library -# -# Copyright (C) 2008-2011 Red Hat, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General -# Public License along with this library; if not, see . -# -# Author: David Zeuthen - -from . import utils - -class Annotation: - def __init__(self, key, value): - self.key = key - self.value = value - self.annotations = [] - -class Arg: - def __init__(self, name, signature): - self.name = name - self.signature = signature - self.annotations = [] - self.doc_string = '' - self.since = '' - - def post_process(self, interface_prefix, cns, cns_upper, cns_lower, arg_number): - if len(self.doc_string) == 0: - self.doc_string = utils.lookup_docs(self.annotations) - if len(self.since) == 0: - self.since = utils.lookup_since(self.annotations) - - if self.name == None: - self.name = 'unnamed_arg%d'%arg_number - # default to GVariant - self.ctype_in_g = 'GVariant *' - self.ctype_in = 'GVariant *' - self.ctype_in_dup = 'GVariant *' - self.ctype_out = 'GVariant **' - self.gtype = 'G_TYPE_VARIANT' - self.free_func = 'g_variant_unref' - self.format_in = '@' + self.signature - self.format_out = '@' + self.signature - self.gvariant_get = 'XXX' - self.gvalue_get = 'g_value_get_variant' - if not utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.C.ForceGVariant'): - if self.signature == 'b': - self.ctype_in_g = 'gboolean ' - self.ctype_in = 'gboolean ' - self.ctype_out = 'gboolean *' - self.gtype = 'G_TYPE_BOOLEAN' - self.free_func = None - self.format_in = 'b' - self.format_out = 'b' - self.gvariant_get = 'g_variant_get_boolean' - self.gvalue_get = 'g_value_get_boolean' - elif self.signature == 'y': - self.ctype_in_g = 'guchar ' - self.ctype_in = 'guchar ' - self.ctype_out = 'guchar *' - self.gtype = 'G_TYPE_UCHAR' - self.free_func = None - self.format_in = 'y' - self.format_out = 'y' - self.gvariant_get = 'g_variant_get_byte' - self.gvalue_get = 'g_value_get_uchar' - elif self.signature == 'n': - self.ctype_in_g = 'gint ' - self.ctype_in = 'gint16 ' - self.ctype_out = 'gint16 *' - self.gtype = 'G_TYPE_INT' - self.free_func = None - self.format_in = 'n' - self.format_out = 'n' - self.gvariant_get = 'g_variant_get_int16' - self.gvalue_get = 'g_value_get_int' - elif self.signature == 'q': - self.ctype_in_g = 'guint ' - self.ctype_in = 'guint16 ' - self.ctype_out = 'guint16 *' - self.gtype = 'G_TYPE_UINT' - self.free_func = None - self.format_in = 'q' - self.format_out = 'q' - self.gvariant_get = 'g_variant_get_uint16' - self.gvalue_get = 'g_value_get_uint' - elif self.signature == 'i': - self.ctype_in_g = 'gint ' - self.ctype_in = 'gint ' - self.ctype_out = 'gint *' - self.gtype = 'G_TYPE_INT' - self.free_func = None - self.format_in = 'i' - self.format_out = 'i' - self.gvariant_get = 'g_variant_get_int32' - self.gvalue_get = 'g_value_get_int' - elif self.signature == 'u': - self.ctype_in_g = 'guint ' - self.ctype_in = 'guint ' - self.ctype_out = 'guint *' - self.gtype = 'G_TYPE_UINT' - self.free_func = None - self.format_in = 'u' - self.format_out = 'u' - self.gvariant_get = 'g_variant_get_uint32' - self.gvalue_get = 'g_value_get_uint' - elif self.signature == 'x': - self.ctype_in_g = 'gint64 ' - self.ctype_in = 'gint64 ' - self.ctype_out = 'gint64 *' - self.gtype = 'G_TYPE_INT64' - self.free_func = None - self.format_in = 'x' - self.format_out = 'x' - self.gvariant_get = 'g_variant_get_int64' - self.gvalue_get = 'g_value_get_int64' - elif self.signature == 't': - self.ctype_in_g = 'guint64 ' - self.ctype_in = 'guint64 ' - self.ctype_out = 'guint64 *' - self.gtype = 'G_TYPE_UINT64' - self.free_func = None - self.format_in = 't' - self.format_out = 't' - self.gvariant_get = 'g_variant_get_uint64' - self.gvalue_get = 'g_value_get_uint64' - elif self.signature == 'd': - self.ctype_in_g = 'gdouble ' - self.ctype_in = 'gdouble ' - self.ctype_out = 'gdouble *' - self.gtype = 'G_TYPE_DOUBLE' - self.free_func = None - self.format_in = 'd' - self.format_out = 'd' - self.gvariant_get = 'g_variant_get_double' - self.gvalue_get = 'g_value_get_double' - elif self.signature == 's': - self.ctype_in_g = 'const gchar *' - self.ctype_in = 'const gchar *' - self.ctype_in_dup = 'gchar *' - self.ctype_out = 'gchar **' - self.gtype = 'G_TYPE_STRING' - self.free_func = 'g_free' - self.format_in = 's' - self.format_out = 's' - self.gvariant_get = 'g_variant_get_string' - self.gvalue_get = 'g_value_get_string' - elif self.signature == 'o': - self.ctype_in_g = 'const gchar *' - self.ctype_in = 'const gchar *' - self.ctype_in_dup = 'gchar *' - self.ctype_out = 'gchar **' - self.gtype = 'G_TYPE_STRING' - self.free_func = 'g_free' - self.format_in = 'o' - self.format_out = 'o' - self.gvariant_get = 'g_variant_get_string' - self.gvalue_get = 'g_value_get_string' - elif self.signature == 'g': - self.ctype_in_g = 'const gchar *' - self.ctype_in = 'const gchar *' - self.ctype_in_dup = 'gchar *' - self.ctype_out = 'gchar **' - self.gtype = 'G_TYPE_STRING' - self.free_func = 'g_free' - self.format_in = 'g' - self.format_out = 'g' - self.gvariant_get = 'g_variant_get_string' - self.gvalue_get = 'g_value_get_string' - elif self.signature == 'ay': - self.ctype_in_g = 'const gchar *' - self.ctype_in = 'const gchar *' - self.ctype_in_dup = 'gchar *' - self.ctype_out = 'gchar **' - self.gtype = 'G_TYPE_STRING' - self.free_func = 'g_free' - self.format_in = '^ay' - self.format_out = '^ay' - self.gvariant_get = 'g_variant_get_bytestring' - self.gvalue_get = 'g_value_get_string' - elif self.signature == 'as': - self.ctype_in_g = 'const gchar *const *' - self.ctype_in = 'const gchar *const *' - self.ctype_in_dup = 'gchar **' - self.ctype_out = 'gchar ***' - self.gtype = 'G_TYPE_STRV' - self.free_func = 'g_strfreev' - self.format_in = '^as' - self.format_out = '^as' - self.gvariant_get = 'g_variant_get_strv' - self.gvalue_get = 'g_value_get_boxed' - elif self.signature == 'ao': - self.ctype_in_g = 'const gchar *const *' - self.ctype_in = 'const gchar *const *' - self.ctype_in_dup = 'gchar **' - self.ctype_out = 'gchar ***' - self.gtype = 'G_TYPE_STRV' - self.free_func = 'g_strfreev' - self.format_in = '^ao' - self.format_out = '^ao' - self.gvariant_get = 'g_variant_get_objv' - self.gvalue_get = 'g_value_get_boxed' - elif self.signature == 'aay': - self.ctype_in_g = 'const gchar *const *' - self.ctype_in = 'const gchar *const *' - self.ctype_in_dup = 'gchar **' - self.ctype_out = 'gchar ***' - self.gtype = 'G_TYPE_STRV' - self.free_func = 'g_strfreev' - self.format_in = '^aay' - self.format_out = '^aay' - self.gvariant_get = 'g_variant_get_bytestring_array' - self.gvalue_get = 'g_value_get_boxed' - -class Method: - def __init__(self, name): - self.name = name - self.in_args = [] - self.out_args = [] - self.annotations = [] - self.doc_string = '' - self.since = '' - self.deprecated = False - - def post_process(self, interface_prefix, cns, cns_upper, cns_lower, containing_iface): - if len(self.doc_string) == 0: - self.doc_string = utils.lookup_docs(self.annotations) - if len(self.since) == 0: - self.since = utils.lookup_since(self.annotations) - if len(self.since) == 0: - self.since = containing_iface.since - - name = self.name - overridden_name = utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.C.Name') - if utils.is_ugly_case(overridden_name): - self.name_lower = overridden_name.lower() - else: - if overridden_name: - name = overridden_name - self.name_lower = utils.camel_case_to_uscore(name).lower().replace('-', '_') - self.name_hyphen = self.name_lower.replace('_', '-') - - arg_count = 0 - for a in self.in_args: - a.post_process(interface_prefix, cns, cns_upper, cns_lower, arg_count) - arg_count += 1 - - for a in self.out_args: - a.post_process(interface_prefix, cns, cns_upper, cns_lower, arg_count) - arg_count += 1 - - if utils.lookup_annotation(self.annotations, 'org.freedesktop.DBus.Deprecated') == 'true': - self.deprecated = True - -class Signal: - def __init__(self, name): - self.name = name - self.args = [] - self.annotations = [] - self.doc_string = '' - self.since = '' - self.deprecated = False - - def post_process(self, interface_prefix, cns, cns_upper, cns_lower, containing_iface): - if len(self.doc_string) == 0: - self.doc_string = utils.lookup_docs(self.annotations) - if len(self.since) == 0: - self.since = utils.lookup_since(self.annotations) - if len(self.since) == 0: - self.since = containing_iface.since - - name = self.name - overridden_name = utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.C.Name') - if utils.is_ugly_case(overridden_name): - self.name_lower = overridden_name.lower() - else: - if overridden_name: - name = overridden_name - self.name_lower = utils.camel_case_to_uscore(name).lower().replace('-', '_') - self.name_hyphen = self.name_lower.replace('_', '-') - - arg_count = 0 - for a in self.args: - a.post_process(interface_prefix, cns, cns_upper, cns_lower, arg_count) - arg_count += 1 - - if utils.lookup_annotation(self.annotations, 'org.freedesktop.DBus.Deprecated') == 'true': - self.deprecated = True - -class Property: - def __init__(self, name, signature, access): - self.name = name - self.signature = signature - self.access = access - self.annotations = [] - self.arg = Arg('value', self.signature) - self.arg.annotations = self.annotations - self.readable = False - self.writable = False - if self.access == 'readwrite': - self.readable = True - self.writable = True - elif self.access == 'read': - self.readable = True - elif self.access == 'write': - self.writable = True - else: - raise RuntimeError('Invalid access type %s'%self.access) - self.doc_string = '' - self.since = '' - self.deprecated = False - - def post_process(self, interface_prefix, cns, cns_upper, cns_lower, containing_iface): - if len(self.doc_string) == 0: - self.doc_string = utils.lookup_docs(self.annotations) - if len(self.since) == 0: - self.since = utils.lookup_since(self.annotations) - if len(self.since) == 0: - self.since = containing_iface.since - - name = self.name - overridden_name = utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.C.Name') - if utils.is_ugly_case(overridden_name): - self.name_lower = overridden_name.lower() - else: - if overridden_name: - name = overridden_name - self.name_lower = utils.camel_case_to_uscore(name).lower().replace('-', '_') - self.name_hyphen = self.name_lower.replace('_', '-') - # don't clash with the GType getter, e.g.: GType foo_bar_get_type (void); G_GNUC_CONST - if self.name_lower == 'type': - self.name_lower = 'type_' - - # recalculate arg - self.arg.annotations = self.annotations - self.arg.post_process(interface_prefix, cns, cns_upper, cns_lower, 0) - - if utils.lookup_annotation(self.annotations, 'org.freedesktop.DBus.Deprecated') == 'true': - self.deprecated = True - -class Interface: - def __init__(self, name): - self.name = name - self.methods = [] - self.signals = [] - self.properties = [] - self.annotations = [] - self.doc_string = '' - self.doc_string_brief = '' - self.since = '' - self.deprecated = False - - def post_process(self, interface_prefix, c_namespace): - if len(self.doc_string) == 0: - self.doc_string = utils.lookup_docs(self.annotations) - if len(self.doc_string_brief) == 0: - self.doc_string_brief = utils.lookup_brief_docs(self.annotations) - if len(self.since) == 0: - self.since = utils.lookup_since(self.annotations) - - if len(c_namespace) > 0: - if utils.is_ugly_case(c_namespace): - cns = c_namespace.replace('_', '') - cns_upper = c_namespace.upper() + '_' - cns_lower = c_namespace.lower() + '_' - else: - cns = c_namespace - cns_upper = utils.camel_case_to_uscore(c_namespace).upper() + '_' - cns_lower = utils.camel_case_to_uscore(c_namespace).lower() + '_' - else: - cns = '' - cns_upper = '' - cns_lower = '' - - overridden_name = utils.lookup_annotation(self.annotations, 'org.gtk.GDBus.C.Name') - if utils.is_ugly_case(overridden_name): - name = overridden_name.replace('_', '') - name_with_ns = cns + name - self.name_without_prefix = name - self.camel_name = name_with_ns - self.ns_upper = cns_upper - self.name_lower = cns_lower + overridden_name.lower() - self.name_upper = overridden_name.upper() - - #raise RuntimeError('handle Ugly_Case ', overridden_name) - else: - if overridden_name: - name = overridden_name - else: - name = self.name - if name.startswith(interface_prefix): - name = name[len(interface_prefix):] - self.name_without_prefix = name - name = utils.strip_dots(name) - name_with_ns = utils.strip_dots(cns + '.' + name) - self.camel_name = name_with_ns - self.ns_upper = cns_upper - self.name_lower = cns_lower + utils.camel_case_to_uscore(name) - self.name_upper = utils.camel_case_to_uscore(name).upper() - - self.name_hyphen = self.name_upper.lower().replace('_', '-') - - if utils.lookup_annotation(self.annotations, 'org.freedesktop.DBus.Deprecated') == 'true': - self.deprecated = True - - for m in self.methods: - m.post_process(interface_prefix, cns, cns_upper, cns_lower, self) - - for s in self.signals: - s.post_process(interface_prefix, cns, cns_upper, cns_lower, self) - - for p in self.properties: - p.post_process(interface_prefix, cns, cns_upper, cns_lower, self) diff --git a/Release/share/glib-2.0/codegen/parser.py b/Release/share/glib-2.0/codegen/parser.py deleted file mode 100644 index 90cebd9..0000000 --- a/Release/share/glib-2.0/codegen/parser.py +++ /dev/null @@ -1,292 +0,0 @@ -# -*- Mode: Python -*- - -# GDBus - GLib D-Bus Library -# -# Copyright (C) 2008-2011 Red Hat, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General -# Public License along with this library; if not, see . -# -# Author: David Zeuthen - -import sys -import xml.parsers.expat - -from . import dbustypes - -class DBusXMLParser: - STATE_TOP = 'top' - STATE_NODE = 'node' - STATE_INTERFACE = 'interface' - STATE_METHOD = 'method' - STATE_SIGNAL = 'signal' - STATE_PROPERTY = 'property' - STATE_ARG = 'arg' - STATE_ANNOTATION = 'annotation' - STATE_IGNORED = 'ignored' - - def __init__(self, xml_data): - self._parser = xml.parsers.expat.ParserCreate() - self._parser.CommentHandler = self.handle_comment - self._parser.CharacterDataHandler = self.handle_char_data - self._parser.StartElementHandler = self.handle_start_element - self._parser.EndElementHandler = self.handle_end_element - - self.parsed_interfaces = [] - self._cur_object = None - - self.state = DBusXMLParser.STATE_TOP - self.state_stack = [] - self._cur_object = None - self._cur_object_stack = [] - - self.doc_comment_last_symbol = '' - - self._parser.Parse(xml_data) - - COMMENT_STATE_BEGIN = 'begin' - COMMENT_STATE_PARAMS = 'params' - COMMENT_STATE_BODY = 'body' - COMMENT_STATE_SKIP = 'skip' - def handle_comment(self, data): - comment_state = DBusXMLParser.COMMENT_STATE_BEGIN; - lines = data.split('\n') - symbol = '' - body = '' - in_para = False - params = {} - for line in lines: - orig_line = line - line = line.lstrip() - if comment_state == DBusXMLParser.COMMENT_STATE_BEGIN: - if len(line) > 0: - colon_index = line.find(': ') - if colon_index == -1: - if line.endswith(':'): - symbol = line[0:len(line)-1] - comment_state = DBusXMLParser.COMMENT_STATE_PARAMS - else: - comment_state = DBusXMLParser.COMMENT_STATE_SKIP - else: - symbol = line[0:colon_index] - rest_of_line = line[colon_index+2:].strip() - if len(rest_of_line) > 0: - body += '' + rest_of_line + '' - comment_state = DBusXMLParser.COMMENT_STATE_PARAMS - elif comment_state == DBusXMLParser.COMMENT_STATE_PARAMS: - if line.startswith('@'): - colon_index = line.find(': ') - if colon_index == -1: - comment_state = DBusXMLParser.COMMENT_STATE_BODY - if not in_para: - body += '' - in_para = True - body += orig_line + '\n' - else: - param = line[1:colon_index] - docs = line[colon_index + 2:] - params[param] = docs - else: - comment_state = DBusXMLParser.COMMENT_STATE_BODY - if len(line) > 0: - if not in_para: - body += '' - in_para = True - body += orig_line + '\n' - elif comment_state == DBusXMLParser.COMMENT_STATE_BODY: - if len(line) > 0: - if not in_para: - body += '' - in_para = True - body += orig_line + '\n' - else: - if in_para: - body += '' - in_para = False - if in_para: - body += '' - - if symbol != '': - self.doc_comment_last_symbol = symbol - self.doc_comment_params = params - self.doc_comment_body = body - - def handle_char_data(self, data): - #print 'char_data=%s'%data - pass - - def handle_start_element(self, name, attrs): - old_state = self.state - old_cur_object = self._cur_object - if self.state == DBusXMLParser.STATE_IGNORED: - self.state = DBusXMLParser.STATE_IGNORED - elif self.state == DBusXMLParser.STATE_TOP: - if name == DBusXMLParser.STATE_NODE: - self.state = DBusXMLParser.STATE_NODE - else: - self.state = DBusXMLParser.STATE_IGNORED - elif self.state == DBusXMLParser.STATE_NODE: - if name == DBusXMLParser.STATE_INTERFACE: - self.state = DBusXMLParser.STATE_INTERFACE - iface = dbustypes.Interface(attrs['name']) - self._cur_object = iface - self.parsed_interfaces.append(iface) - elif name == DBusXMLParser.STATE_ANNOTATION: - self.state = DBusXMLParser.STATE_ANNOTATION - anno = dbustypes.Annotation(attrs['name'], attrs['value']) - self._cur_object.annotations.append(anno) - self._cur_object = anno - else: - self.state = DBusXMLParser.STATE_IGNORED - - # assign docs, if any - if 'name' in attrs and self.doc_comment_last_symbol == attrs['name']: - self._cur_object.doc_string = self.doc_comment_body - if 'short_description' in self.doc_comment_params: - short_description = self.doc_comment_params['short_description'] - self._cur_object.doc_string_brief = short_description - if 'since' in self.doc_comment_params: - self._cur_object.since = \ - self.doc_comment_params['since'].strip() - - elif self.state == DBusXMLParser.STATE_INTERFACE: - if name == DBusXMLParser.STATE_METHOD: - self.state = DBusXMLParser.STATE_METHOD - method = dbustypes.Method(attrs['name']) - self._cur_object.methods.append(method) - self._cur_object = method - elif name == DBusXMLParser.STATE_SIGNAL: - self.state = DBusXMLParser.STATE_SIGNAL - signal = dbustypes.Signal(attrs['name']) - self._cur_object.signals.append(signal) - self._cur_object = signal - elif name == DBusXMLParser.STATE_PROPERTY: - self.state = DBusXMLParser.STATE_PROPERTY - prop = dbustypes.Property(attrs['name'], attrs['type'], attrs['access']) - self._cur_object.properties.append(prop) - self._cur_object = prop - elif name == DBusXMLParser.STATE_ANNOTATION: - self.state = DBusXMLParser.STATE_ANNOTATION - anno = dbustypes.Annotation(attrs['name'], attrs['value']) - self._cur_object.annotations.append(anno) - self._cur_object = anno - else: - self.state = DBusXMLParser.STATE_IGNORED - - # assign docs, if any - if 'name' in attrs and self.doc_comment_last_symbol == attrs['name']: - self._cur_object.doc_string = self.doc_comment_body - if 'since' in self.doc_comment_params: - self._cur_object.since = \ - self.doc_comment_params['since'].strip() - - elif self.state == DBusXMLParser.STATE_METHOD: - if name == DBusXMLParser.STATE_ARG: - self.state = DBusXMLParser.STATE_ARG - arg_name = None - if 'name' in attrs: - arg_name = attrs['name'] - arg = dbustypes.Arg(arg_name, attrs['type']) - direction = attrs.get('direction', 'in') - if direction == 'in': - self._cur_object.in_args.append(arg) - elif direction == 'out': - self._cur_object.out_args.append(arg) - else: - raise RuntimeError('Invalid direction "%s"'%(direction)) - self._cur_object = arg - elif name == DBusXMLParser.STATE_ANNOTATION: - self.state = DBusXMLParser.STATE_ANNOTATION - anno = dbustypes.Annotation(attrs['name'], attrs['value']) - self._cur_object.annotations.append(anno) - self._cur_object = anno - else: - self.state = DBusXMLParser.STATE_IGNORED - - # assign docs, if any - if self.doc_comment_last_symbol == old_cur_object.name: - if 'name' in attrs and attrs['name'] in self.doc_comment_params: - doc_string = self.doc_comment_params[attrs['name']] - if doc_string != None: - self._cur_object.doc_string = doc_string - if 'since' in self.doc_comment_params: - self._cur_object.since = \ - self.doc_comment_params['since'].strip() - - elif self.state == DBusXMLParser.STATE_SIGNAL: - if name == DBusXMLParser.STATE_ARG: - self.state = DBusXMLParser.STATE_ARG - arg_name = None - if 'name' in attrs: - arg_name = attrs['name'] - arg = dbustypes.Arg(arg_name, attrs['type']) - self._cur_object.args.append(arg) - self._cur_object = arg - elif name == DBusXMLParser.STATE_ANNOTATION: - self.state = DBusXMLParser.STATE_ANNOTATION - anno = dbustypes.Annotation(attrs['name'], attrs['value']) - self._cur_object.annotations.append(anno) - self._cur_object = anno - else: - self.state = DBusXMLParser.STATE_IGNORED - - # assign docs, if any - if self.doc_comment_last_symbol == old_cur_object.name: - if 'name' in attrs and attrs['name'] in self.doc_comment_params: - doc_string = self.doc_comment_params[attrs['name']] - if doc_string != None: - self._cur_object.doc_string = doc_string - if 'since' in self.doc_comment_params: - self._cur_object.since = \ - self.doc_comment_params['since'].strip() - - elif self.state == DBusXMLParser.STATE_PROPERTY: - if name == DBusXMLParser.STATE_ANNOTATION: - self.state = DBusXMLParser.STATE_ANNOTATION - anno = dbustypes.Annotation(attrs['name'], attrs['value']) - self._cur_object.annotations.append(anno) - self._cur_object = anno - else: - self.state = DBusXMLParser.STATE_IGNORED - - elif self.state == DBusXMLParser.STATE_ARG: - if name == DBusXMLParser.STATE_ANNOTATION: - self.state = DBusXMLParser.STATE_ANNOTATION - anno = dbustypes.Annotation(attrs['name'], attrs['value']) - self._cur_object.annotations.append(anno) - self._cur_object = anno - else: - self.state = DBusXMLParser.STATE_IGNORED - - elif self.state == DBusXMLParser.STATE_ANNOTATION: - if name == DBusXMLParser.STATE_ANNOTATION: - self.state = DBusXMLParser.STATE_ANNOTATION - anno = dbustypes.Annotation(attrs['name'], attrs['value']) - self._cur_object.annotations.append(anno) - self._cur_object = anno - else: - self.state = DBusXMLParser.STATE_IGNORED - - else: - raise RuntimeError('Unhandled state "%s" while entering element with name "%s"'%(self.state, name)) - - self.state_stack.append(old_state) - self._cur_object_stack.append(old_cur_object) - - def handle_end_element(self, name): - self.state = self.state_stack.pop() - self._cur_object = self._cur_object_stack.pop() - -def parse_dbus_xml(xml_data): - parser = DBusXMLParser(xml_data) - return parser.parsed_interfaces diff --git a/Release/share/glib-2.0/codegen/utils.py b/Release/share/glib-2.0/codegen/utils.py deleted file mode 100644 index 2c01493..0000000 --- a/Release/share/glib-2.0/codegen/utils.py +++ /dev/null @@ -1,108 +0,0 @@ -# -*- Mode: Python -*- - -# GDBus - GLib D-Bus Library -# -# Copyright (C) 2008-2011 Red Hat, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General -# Public License along with this library; if not, see . -# -# Author: David Zeuthen - -import distutils.version - -def strip_dots(s): - ret = '' - force_upper = False - for c in s: - if c == '.': - force_upper = True - else: - if force_upper: - ret += c.upper() - force_upper = False - else: - ret += c - return ret - -def dots_to_hyphens(s): - return s.replace('.', '-') - -def camel_case_to_uscore(s): - ret = '' - insert_uscore = False - prev_was_lower = False - initial = True; - for c in s: - # Keep initial underscores in camel case - if initial and c == '_': - ret += '_' - continue; - initial = False - - if c.isupper(): - if prev_was_lower: - insert_uscore = True - prev_was_lower = False - else: - prev_was_lower = True - if insert_uscore: - ret += '_' - ret += c.lower() - insert_uscore = False - return ret - -def is_ugly_case(s): - if s and s.find('_') > 0: - return True - return False - -def lookup_annotation(annotations, key): - if annotations: - for a in annotations: - if a.key == key: - return a.value - return None - -def lookup_docs(annotations): - s = lookup_annotation(annotations, 'org.gtk.GDBus.DocString') - if s == None: - return '' - else: - return s - -def lookup_since(annotations): - s = lookup_annotation(annotations, 'org.gtk.GDBus.Since') - if s == None: - return '' - else: - return s - -def lookup_brief_docs(annotations): - s = lookup_annotation(annotations, 'org.gtk.GDBus.DocString.Short') - if s == None: - return '' - else: - return s - -def version_cmp_key(key): - # If the 'since' version is 'UNRELEASED', compare higher than anything else - # If it is empty put a 0 in its place as this will - # allow LooseVersion to work and will always compare lower. - if key[0] == 'UNRELEASED': - v = '9999' - elif key[0]: - v = str(key[0]) - else: - v = '0' - return (distutils.version.LooseVersion(v), key[1]) diff --git a/Release/share/glib-2.0/gdb/glib.py b/Release/share/glib-2.0/gdb/glib.py deleted file mode 100644 index de763ae..0000000 --- a/Release/share/glib-2.0/gdb/glib.py +++ /dev/null @@ -1,257 +0,0 @@ -import gdb - -# This is not quite right, as local vars may override symname -def read_global_var (symname): - return gdb.selected_frame().read_var(symname) - -def g_quark_to_string (quark): - if quark == None: - return None - quark = long(quark) - if quark == 0: - return None - try: - val = read_global_var ("quarks") - max_q = long(read_global_var ("quark_seq_id")) - except: - try: - val = read_global_var ("g_quarks") - max_q = long(read_global_var ("g_quark_seq_id")) - except: - return None; - if quark < max_q: - return val[quark].string() - return None - -# We override the node printers too, so that node->next is not expanded -class GListNodePrinter: - "Prints a GList node" - - def __init__ (self, val): - self.val = val - - def to_string (self): - return "{data=%s, next=0x%x, prev=0x%x}" % (str(self.val["data"]), long(self.val["next"]), long(self.val["prev"])) - -class GSListNodePrinter: - "Prints a GSList node" - - def __init__ (self, val): - self.val = val - - def to_string (self): - return "{data=%s, next=0x%x}" % (str(self.val["data"]), long(self.val["next"])) - -class GListPrinter: - "Prints a GList" - - class _iterator: - def __init__(self, head, listtype): - self.link = head - self.listtype = listtype - self.count = 0 - - def __iter__(self): - return self - - def next(self): - if self.link == 0: - raise StopIteration - data = self.link['data'] - self.link = self.link['next'] - count = self.count - self.count = self.count + 1 - return ('[%d]' % count, data) - - def __init__ (self, val, listtype): - self.val = val - self.listtype = listtype - - def children(self): - return self._iterator(self.val, self.listtype) - - def to_string (self): - return "0x%x" % (long(self.val)) - - def display_hint (self): - return "array" - -class GHashPrinter: - "Prints a GHashTable" - - class _iterator: - def __init__(self, ht, keys_are_strings): - self.ht = ht - if ht != 0: - self.keys = ht["keys"] - self.values = ht["values"] - self.hashes = ht["hashes"] - self.size = ht["size"] - self.pos = 0 - self.keys_are_strings = keys_are_strings - self.value = None - - def __iter__(self): - return self - - def next(self): - if self.ht == 0: - raise StopIteration - if self.value != None: - v = self.value - self.value = None - return v - while long(self.pos) < long(self.size): - self.pos = self.pos + 1 - if long (self.hashes[self.pos]) >= 2: - key = self.keys[self.pos] - val = self.values[self.pos] - - if self.keys_are_strings: - key = key.cast (gdb.lookup_type("char").pointer()) - - # Queue value for next result - self.value = ('[%dv]'% (self.pos), val) - - # Return key - return ('[%dk]'% (self.pos), key) - raise StopIteration - - def __init__ (self, val): - self.val = val - self.keys_are_strings = False - try: - string_hash = read_global_var ("g_str_hash") - except: - string_hash = None - if self.val != 0 and string_hash != None and self.val["hash_func"] == string_hash: - self.keys_are_strings = True - - def children(self): - return self._iterator(self.val, self.keys_are_strings) - - def to_string (self): - return "0x%x" % (long(self.val)) - - def display_hint (self): - return "map" - -def pretty_printer_lookup (val): - if is_g_type_instance (val): - return GTypePrettyPrinter (val) - -def pretty_printer_lookup (val): - # None yet, want things like hash table and list - - type = val.type.unqualified() - - # If it points to a reference, get the reference. - if type.code == gdb.TYPE_CODE_REF: - type = type.target () - - if type.code == gdb.TYPE_CODE_PTR: - type = type.target().unqualified() - t = str(type) - if t == "GList": - return GListPrinter(val, "GList") - if t == "GSList": - return GListPrinter(val, "GSList") - if t == "GHashTable": - return GHashPrinter(val) - else: - t = str(type) - if t == "GList": - return GListNodePrinter(val) - if t == "GSList *": - return GListPrinter(val, "GSList") - return None - -def register (obj): - if obj == None: - obj = gdb - - obj.pretty_printers.append(pretty_printer_lookup) - -class ForeachCommand (gdb.Command): - """Foreach on list""" - - def __init__ (self): - super (ForeachCommand, self).__init__ ("gforeach", - gdb.COMMAND_DATA, - gdb.COMPLETE_SYMBOL) - - def valid_name (self, name): - if not name[0].isalpha(): - return False - return True - - def parse_args (self, arg): - i = arg.find(" ") - if i <= 0: - raise Exception ("No var specified") - var = arg[:i] - if not self.valid_name(var): - raise Exception ("Invalid variable name") - - while i < len (arg) and arg[i].isspace(): - i = i + 1 - - if arg[i:i+2] != "in": - raise Exception ("Invalid syntax, missing in") - - i = i + 2 - - while i < len (arg) and arg[i].isspace(): - i = i + 1 - - colon = arg.find (":", i) - if colon == -1: - raise Exception ("Invalid syntax, missing colon") - - val = arg[i:colon] - - colon = colon + 1 - while colon < len (arg) and arg[colon].isspace(): - colon = colon + 1 - - command = arg[colon:] - - return (var, val, command) - - def do_iter(self, arg, item, command): - item = item.cast (gdb.lookup_type("void").pointer()) - item = long(item) - to_eval = "set $%s = (void *)0x%x\n"%(arg, item) - gdb.execute(to_eval) - gdb.execute(command) - - def slist_iterator (self, arg, container, command): - l = container.cast (gdb.lookup_type("GSList").pointer()) - while long(l) != 0: - self.do_iter (arg, l["data"], command) - l = l["next"] - - def list_iterator (self, arg, container, command): - l = container.cast (gdb.lookup_type("GList").pointer()) - while long(l) != 0: - self.do_iter (arg, l["data"], command) - l = l["next"] - - def pick_iterator (self, container): - t = container.type.unqualified() - if t.code == gdb.TYPE_CODE_PTR: - t = t.target().unqualified() - t = str(t) - if t == "GSList": - return self.slist_iterator - if t == "GList": - return self.list_iterator - raise Exception("Invalid container type %s"%(str(container.type))) - - def invoke (self, arg, from_tty): - (var, container, command) = self.parse_args(arg) - container = gdb.parse_and_eval (container) - func = self.pick_iterator(container) - func(var, container, command) - -ForeachCommand () diff --git a/Release/share/glib-2.0/gdb/glib_gdb.py b/Release/share/glib-2.0/gdb/glib_gdb.py deleted file mode 100644 index 38f101a..0000000 --- a/Release/share/glib-2.0/gdb/glib_gdb.py +++ /dev/null @@ -1,261 +0,0 @@ -import gdb -import sys - -if sys.version_info[0] >= 3: - long = int - -# This is not quite right, as local vars may override symname -def read_global_var (symname): - return gdb.selected_frame().read_var(symname) - -def g_quark_to_string (quark): - if quark == None: - return None - quark = long(quark) - if quark == 0: - return None - try: - val = read_global_var ("quarks") - max_q = long(read_global_var ("quark_seq_id")) - except: - try: - val = read_global_var ("g_quarks") - max_q = long(read_global_var ("g_quark_seq_id")) - except: - return None; - if quark < max_q: - return val[quark].string() - return None - -# We override the node printers too, so that node->next is not expanded -class GListNodePrinter: - "Prints a GList node" - - def __init__ (self, val): - self.val = val - - def to_string (self): - return "{data=%s, next=0x%x, prev=0x%x}" % (str(self.val["data"]), long(self.val["next"]), long(self.val["prev"])) - -class GSListNodePrinter: - "Prints a GSList node" - - def __init__ (self, val): - self.val = val - - def to_string (self): - return "{data=%s, next=0x%x}" % (str(self.val["data"]), long(self.val["next"])) - -class GListPrinter: - "Prints a GList" - - class _iterator: - def __init__(self, head, listtype): - self.link = head - self.listtype = listtype - self.count = 0 - - def __iter__(self): - return self - - def next(self): - if self.link == 0: - raise StopIteration - data = self.link['data'] - self.link = self.link['next'] - count = self.count - self.count = self.count + 1 - return ('[%d]' % count, data) - - __next__ = next - - def __init__ (self, val, listtype): - self.val = val - self.listtype = listtype - - def children(self): - return self._iterator(self.val, self.listtype) - - def to_string (self): - return "0x%x" % (long(self.val)) - - def display_hint (self): - return "array" - -class GHashPrinter: - "Prints a GHashTable" - - class _iterator: - def __init__(self, ht, keys_are_strings): - self.ht = ht - if ht != 0: - self.keys = ht["keys"] - self.values = ht["values"] - self.hashes = ht["hashes"] - self.size = ht["size"] - self.pos = 0 - self.keys_are_strings = keys_are_strings - self.value = None - - def __iter__(self): - return self - - def next(self): - if self.ht == 0: - raise StopIteration - if self.value != None: - v = self.value - self.value = None - return v - while long(self.pos) < long(self.size): - self.pos = self.pos + 1 - if long (self.hashes[self.pos]) >= 2: - key = self.keys[self.pos] - val = self.values[self.pos] - - if self.keys_are_strings: - key = key.cast (gdb.lookup_type("char").pointer()) - - # Queue value for next result - self.value = ('[%dv]'% (self.pos), val) - - # Return key - return ('[%dk]'% (self.pos), key) - raise StopIteration - - __next__ = next - - def __init__ (self, val): - self.val = val - self.keys_are_strings = False - try: - string_hash = read_global_var ("g_str_hash") - except: - string_hash = None - if self.val != 0 and string_hash != None and self.val["hash_func"] == string_hash: - self.keys_are_strings = True - - def children(self): - return self._iterator(self.val, self.keys_are_strings) - - def to_string (self): - return "0x%x" % (long(self.val)) - - def display_hint (self): - return "map" - -def pretty_printer_lookup (val): - # None yet, want things like hash table and list - - type = val.type.unqualified() - - # If it points to a reference, get the reference. - if type.code == gdb.TYPE_CODE_REF: - type = type.target () - - if type.code == gdb.TYPE_CODE_PTR: - type = type.target().unqualified() - t = str(type) - if t == "GList": - return GListPrinter(val, "GList") - if t == "GSList": - return GListPrinter(val, "GSList") - if t == "GHashTable": - return GHashPrinter(val) - else: - t = str(type) - if t == "GList": - return GListNodePrinter(val) - if t == "GSList *": - return GListPrinter(val, "GSList") - return None - -def register (obj): - if obj == None: - obj = gdb - - obj.pretty_printers.append(pretty_printer_lookup) - -class ForeachCommand (gdb.Command): - """Foreach on list""" - - def __init__ (self): - super (ForeachCommand, self).__init__ ("gforeach", - gdb.COMMAND_DATA, - gdb.COMPLETE_SYMBOL) - - def valid_name (self, name): - if not name[0].isalpha(): - return False - return True - - def parse_args (self, arg): - i = arg.find(" ") - if i <= 0: - raise Exception ("No var specified") - var = arg[:i] - if not self.valid_name(var): - raise Exception ("Invalid variable name") - - while i < len (arg) and arg[i].isspace(): - i = i + 1 - - if arg[i:i+2] != "in": - raise Exception ("Invalid syntax, missing in") - - i = i + 2 - - while i < len (arg) and arg[i].isspace(): - i = i + 1 - - colon = arg.find (":", i) - if colon == -1: - raise Exception ("Invalid syntax, missing colon") - - val = arg[i:colon] - - colon = colon + 1 - while colon < len (arg) and arg[colon].isspace(): - colon = colon + 1 - - command = arg[colon:] - - return (var, val, command) - - def do_iter(self, arg, item, command): - item = item.cast (gdb.lookup_type("void").pointer()) - item = long(item) - to_eval = "set $%s = (void *)0x%x\n"%(arg, item) - gdb.execute(to_eval) - gdb.execute(command) - - def slist_iterator (self, arg, container, command): - l = container.cast (gdb.lookup_type("GSList").pointer()) - while long(l) != 0: - self.do_iter (arg, l["data"], command) - l = l["next"] - - def list_iterator (self, arg, container, command): - l = container.cast (gdb.lookup_type("GList").pointer()) - while long(l) != 0: - self.do_iter (arg, l["data"], command) - l = l["next"] - - def pick_iterator (self, container): - t = container.type.unqualified() - if t.code == gdb.TYPE_CODE_PTR: - t = t.target().unqualified() - t = str(t) - if t == "GSList": - return self.slist_iterator - if t == "GList": - return self.list_iterator - raise Exception("Invalid container type %s"%(str(container.type))) - - def invoke (self, arg, from_tty): - (var, container, command) = self.parse_args(arg) - container = gdb.parse_and_eval (container) - func = self.pick_iterator(container) - func(var, container, command) - -ForeachCommand () diff --git a/Release/share/glib-2.0/gdb/gobject.py b/Release/share/glib-2.0/gdb/gobject.py deleted file mode 100644 index b96d150..0000000 --- a/Release/share/glib-2.0/gdb/gobject.py +++ /dev/null @@ -1,305 +0,0 @@ -import gdb -import glib -import gdb.backtrace -import gdb.command.backtrace - -# This is not quite right, as local vars may override symname -def read_global_var (symname): - return gdb.selected_frame().read_var(symname) - -def g_type_to_name (gtype): - def lookup_fundamental_type (typenode): - if typenode == 0: - return None - val = read_global_var ("static_fundamental_type_nodes") - if val == None: - return None - return val[typenode >> 2].address() - - gtype = long(gtype) - typenode = gtype - gtype % 4 - if typenode > (255 << 2): - typenode = gdb.Value(typenode).cast (gdb.lookup_type("TypeNode").pointer()) - else: - typenode = lookup_fundamental_type (typenode) - if typenode != None: - return glib.g_quark_to_string (typenode["qname"]) - return None - -def is_g_type_instance (val): - def is_g_type_instance_helper (type): - if str(type) == "GTypeInstance": - return True - - while type.code == gdb.TYPE_CODE_TYPEDEF: - type = type.target() - - if type.code != gdb.TYPE_CODE_STRUCT: - return False - - fields = type.fields() - if len (fields) < 1: - return False - - first_field = fields[0] - return is_g_type_instance_helper(first_field.type) - - type = val.type - if type.code != gdb.TYPE_CODE_PTR: - return False - type = type.target() - return is_g_type_instance_helper (type) - -def g_type_name_from_instance (instance): - if long(instance) != 0: - try: - inst = instance.cast (gdb.lookup_type("GTypeInstance").pointer()) - klass = inst["g_class"] - gtype = klass["g_type"] - name = g_type_to_name (gtype) - return name - except RuntimeError: - pass - return None - -class GTypePrettyPrinter: - "Prints a GType instance pointer" - - def __init__ (self, val): - self.val = val - - def to_string (self): - name = g_type_name_from_instance (self.val) - if name: - return ("0x%x [%s]")% (long(self.val), name) - return ("0x%x") % (long(self.val)) - -def pretty_printer_lookup (val): - if is_g_type_instance (val): - return GTypePrettyPrinter (val) - - return None - -def get_signal_name (id): - if id == None: - return None - id = long(id) - if id == 0: - return None - val = read_global_var ("g_signal_nodes") - max_s = read_global_var ("g_n_signal_nodes") - max_s = long(max_s) - if id < max_s: - return val[id]["name"].string() - return None - -class GFrameWrapper: - def __init__ (self, frame): - self.frame = frame; - - def name (self): - name = self.frame.name() - if name and name.startswith("IA__"): - return name[4:] - return name - - def __getattr__ (self, name): - return getattr (self.frame, name) - -# Monkey patch FrameWrapper to avoid IA__ in symbol names -old__init__ = gdb.command.backtrace.FrameWrapper.__init__ -def monkey_patched_init(self, frame): - name = frame.name() - if name and name.startswith("IA__"): - frame = GFrameWrapper(frame) - old__init__(self,frame) -gdb.command.backtrace.FrameWrapper.__init__ = monkey_patched_init - -class DummyFrame: - def __init__ (self, frame): - self.frame = frame - - def name (self): - return "signal-emission-dummy" - - def describe (self, stream, full): - stream.write (" <...>\n") - - def __getattr__ (self, name): - return getattr (self.frame, name) - -class SignalFrame: - def __init__ (self, frames): - self.frame = frames[-1] - self.frames = frames; - - def name (self): - return "signal-emission" - - def read_var (self, frame, name, array = None): - try: - v = frame.read_var (name) - if v == None or v.is_optimized_out: - return None - if array != None: - array.append (v) - return v - except ValueError: - return None - - def read_object (self, frame, name, array = None): - try: - v = frame.read_var (name) - if v == None or v.is_optimized_out: - return None - v = v.cast (gdb.lookup_type("GObject").pointer()) - # Ensure this is a somewhat correct object pointer - if v != None and g_type_name_from_instance (v): - if array != None: - array.append (v) - return v - return None - except ValueError: - return None - - def append (self, array, obj): - if obj != None: - array.append (obj) - - def or_join_array (self, array): - if len(array) == 0: - return "???" - - v = {} - for i in range(len(array)): - v[str(array[i])] = 1 - array = v.keys() - s = array[0] - for i in range(1, len(array)): - s = s + " or %s"%array[i] - - return s - - def describe (self, stream, full): - instances = [] - signals = [] - - for frame in self.frames: - name = frame.name() - if name == "signal_emit_unlocked_R": - self.read_object (frame, "instance", instances) - node = self.read_var (frame, "node") - if node: - signal = node["name"].string() - detail = self.read_var (frame, "detail") - detail = glib.g_quark_to_string (detail) - if detail != None: - signal = signal + ":" + detail - self.append (signals, signal) - - if name == "g_signal_emitv": - instance_and_params = self.read_var (frame, "instance_and_params") - if instance_and_params: - instance = instance_and_params[0]["v_pointer"].cast (gdb.Type("GObject").pointer()) - self.append (instances, instance) - id = self.read_var (frame, "signal_id") - signal = get_signal_name (id) - if signal: - detail = self.read_var (frame, "detail") - detail = glib.g_quark_to_string (detail) - if detail != None: - signal = signal + ":" + detail - self.append (signals, signal) - - if name == "g_signal_emit_valist" or name == "g_signal_emit": - self.read_object (frame, "instance", instances) - id = self.read_var (frame, "signal_id") - signal = get_signal_name (id) - if signal: - detail = self.read_var (frame, "detail") - detail = glib.g_quark_to_string (detail) - if detail != None: - signal = signal + ":" + detail - self.append (signals, signal) - - if name == "g_signal_emit_by_name": - self.read_object (frame, "instance", instances) - self.read_var (frame, "detailed_signal", signals) - break - - instance = self.or_join_array (instances) - signal = self.or_join_array (signals) - - stream.write (" \n" % (signal, instance)) - - def __getattr__ (self, name): - return getattr (self.frame, name) - -class GFrameFilter: - def __init__ (self, iter): - self.queue = [] - self.iter = iter - - def __iter__ (self): - return self - - def fill (self): - while len(self.queue) <= 6: - try: - f = self.iter.next () - self.queue.append (f) - except StopIteration: - return - - def find_signal_emission (self): - for i in range (min (len(self.queue), 3)): - if self.queue[i].name() == "signal_emit_unlocked_R": - return i - return -1 - - def next (self): - # Ensure we have enough frames for a full signal emission - self.fill() - - # Are we at the end? - if len(self.queue) == 0: - raise StopIteration - - emission = self.find_signal_emission () - if emission > 0: - start = emission - while True: - if start == 0: - break - prev_name = self.queue[start-1].name() - if prev_name.find("_marshal_") or prev_name == "g_closure_invoke": - start = start - 1 - else: - break - end = emission + 1 - while end < len(self.queue): - if self.queue[end].name() in ["g_signal_emitv", - "g_signal_emit_valist", - "g_signal_emit", - "g_signal_emit_by_name"]: - end = end + 1 - else: - break - - signal_frames = self.queue[start:end] - new_frames = [] - for i in range(len(signal_frames)-1): - new_frames.append(DummyFrame(signal_frames[i])) - new_frames.append(SignalFrame(signal_frames)) - - self.queue[start:end] = new_frames - - return self.queue.pop(0) - - -def register (obj): - if obj == None: - obj = gdb - - gdb.backtrace.push_frame_filter (GFrameFilter) - obj.pretty_printers.append(pretty_printer_lookup) diff --git a/Release/share/glib-2.0/gdb/gobject_gdb.py b/Release/share/glib-2.0/gdb/gobject_gdb.py deleted file mode 100644 index 8c30220..0000000 --- a/Release/share/glib-2.0/gdb/gobject_gdb.py +++ /dev/null @@ -1,295 +0,0 @@ -import os.path -import gdb -import glib_gdb -import sys - -if sys.version_info[0] >= 3: - long = int -else: - import itertools - map = itertools.imap - -# FrameDecorator is new in gdb 7.7, so we adapt to its absence. -try: - import gdb.FrameDecorator - HAVE_GDB_FRAMEDECORATOR = True - FrameDecorator = gdb.FrameDecorator.FrameDecorator -except ImportError: - HAVE_GDB_FRAMEDECORATOR = False - -# This is not quite right, as local vars may override symname -def read_global_var (symname): - return gdb.selected_frame().read_var(symname) - -def g_type_to_name (gtype): - def lookup_fundamental_type (typenode): - if typenode == 0: - return None - val = read_global_var ("static_fundamental_type_nodes") - if val == None: - return None - return val[typenode >> 2].address() - - gtype = long(gtype) - typenode = gtype - gtype % 4 - if typenode > (255 << 2): - typenode = gdb.Value(typenode).cast (gdb.lookup_type("TypeNode").pointer()) - else: - typenode = lookup_fundamental_type (typenode) - if typenode != None: - return glib_gdb.g_quark_to_string (typenode["qname"]) - return None - -def is_g_type_instance (val): - def is_g_type_instance_helper (type): - if str(type) == "GTypeInstance": - return True - - while type.code == gdb.TYPE_CODE_TYPEDEF: - type = type.target() - - if type.code != gdb.TYPE_CODE_STRUCT: - return False - - fields = type.fields() - if len (fields) < 1: - return False - - first_field = fields[0] - return is_g_type_instance_helper(first_field.type) - - type = val.type - if type.code != gdb.TYPE_CODE_PTR: - return False - type = type.target() - return is_g_type_instance_helper (type) - -def g_type_name_from_instance (instance): - if long(instance) != 0: - try: - inst = instance.cast (gdb.lookup_type("GTypeInstance").pointer()) - klass = inst["g_class"] - gtype = klass["g_type"] - name = g_type_to_name (gtype) - return name - except RuntimeError: - pass - return None - -class GTypePrettyPrinter: - "Prints a GType instance pointer" - - def __init__ (self, val): - self.val = val - - def to_string (self): - name = g_type_name_from_instance (self.val) - if name: - return ("0x%x [%s]")% (long(self.val), name) - return ("0x%x") % (long(self.val)) - -def pretty_printer_lookup (val): - if is_g_type_instance (val): - return GTypePrettyPrinter (val) - - return None - -def get_signal_name (id): - if id == None: - return None - id = long(id) - if id == 0: - return None - val = read_global_var ("g_signal_nodes") - max_s = read_global_var ("g_n_signal_nodes") - max_s = long(max_s) - if id < max_s: - return val[id]["name"].string() - return None - -def frame_name(frame): - return str(frame.function()) - -def frame_var(frame, var): - return frame.inferior_frame().read_var(var) - - -class SignalFrame(FrameDecorator): - def __init__ (self, frames): - FrameDecorator.__init__(self, frames[-1]) - self.frame = frames[-1] - self.frames = frames - - def name (self): - return "signal-emission" - - def read_var (self, frame, name, array = None): - try: - v = frame_var (frame, name) - if v == None or v.is_optimized_out: - return None - if array != None: - array.append (v) - return v - except ValueError: - return None - - def read_object (self, frame, name, array = None): - try: - v = frame_var (frame, name) - if v == None or v.is_optimized_out: - return None - v = v.cast (gdb.lookup_type("GObject").pointer()) - # Ensure this is a somewhat correct object pointer - if v != None and g_type_name_from_instance (v): - if array != None: - array.append (v) - return v - return None - except ValueError: - return None - - def append (self, array, obj): - if obj != None: - array.append (obj) - - def or_join_array (self, array): - if len(array) == 0: - return "???" - else: - return ' or '.join(set(map(str, array))) - - def get_detailed_signal_from_frame(self, frame, signal): - detail = self.read_var (frame, "detail") - detail = glib_gdb.g_quark_to_string (detail) - if detail is not None: - return signal + ":" + detail - else: - return detail - - def function (self): - instances = [] - signals = [] - - for frame in self.frames: - name = frame_name(frame) - if name == "signal_emit_unlocked_R": - self.read_object (frame, "instance", instances) - node = self.read_var (frame, "node") - if node: - signal = node["name"].string() - signal = self.get_detailed_signal_from_frame(frame, signal) - self.append(signals, signal) - - if name == "g_signal_emitv": - instance_and_params = self.read_var (frame, "instance_and_params") - if instance_and_params: - instance = instance_and_params[0]["v_pointer"].cast (gdb.Type("GObject").pointer()) - self.append (instances, instance) - id = self.read_var (frame, "signal_id") - signal = get_signal_name (id) - if signal: - signal = self.get_detailed_signal_from_frame(frame, signal) - self.append (signals, signal) - - if name == "g_signal_emit_valist" or name == "g_signal_emit": - self.read_object (frame, "instance", instances) - id = self.read_var (frame, "signal_id") - signal = get_signal_name (id) - if signal: - signal = self.get_detailed_signal_from_frame(frame, signal) - self.append (signals, signal) - - if name == "g_signal_emit_by_name": - self.read_object (frame, "instance", instances) - self.read_var (frame, "detailed_signal", signals) - break - - instance = self.or_join_array (instances) - signal = self.or_join_array (signals) - - return "" % (signal, instance) - - def elided (self): - return self.frames[0:-1] - - def describe (self, stream, full): - stream.write (" " + self.function () + "\n") - -class GFrameDecorator: - def __init__ (self, iter): - self.queue = [] - self.iter = iter - - def __iter__ (self): - return self - - def fill (self): - while len(self.queue) <= 8: - try: - f = next(self.iter) - self.queue.append (f) - except StopIteration: - return - - def find_signal_emission (self): - for i in range (min (len(self.queue), 3)): - if frame_name(self.queue[i]) == "signal_emit_unlocked_R": - return i - return -1 - - def next (self): - # Ensure we have enough frames for a full signal emission - self.fill() - - # Are we at the end? - if len(self.queue) == 0: - raise StopIteration - - emission = self.find_signal_emission () - if emission > 0: - start = emission - while True: - if start == 0: - break - prev_name = frame_name(self.queue[start-1]) - if prev_name.find("_marshal_") >= 0 or prev_name == "g_closure_invoke": - start = start - 1 - else: - break - end = emission + 1 - while end < len(self.queue): - if frame_name(self.queue[end]) in ["g_signal_emitv", - "g_signal_emit_valist", - "g_signal_emit", - "g_signal_emit_by_name", - "_g_closure_invoke_va"]: - end = end + 1 - else: - break - - signal_frames = self.queue[start:end] - new_frames = [SignalFrame(signal_frames)] - self.queue[start:end] = new_frames - - return self.queue.pop(0) - - def __next__ (self): - return self.next() - -class GFrameFilter(object): - name = 'glib' - enabled = True - priority = 100 - - def filter(self, iterator): - return GFrameDecorator(iterator) - -def register (obj): - if obj == None: - obj = gdb - - if HAVE_GDB_FRAMEDECORATOR: - filter = GFrameFilter() - obj.frame_filters[filter.name] = filter - obj.pretty_printers.append(pretty_printer_lookup) diff --git a/Release/share/glib-2.0/gettext/mkinstalldirs b/Release/share/glib-2.0/gettext/mkinstalldirs deleted file mode 100644 index 55d537f..0000000 --- a/Release/share/glib-2.0/gettext/mkinstalldirs +++ /dev/null @@ -1,162 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy - -scriptversion=2009-04-28.21; # UTC - -# Original author: Noah Friedman -# Created: 1993-05-16 -# Public domain. -# -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -nl=' -' -IFS=" "" $nl" -errstatus=0 -dirmode= - -usage="\ -Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... - -Create each directory DIR (with mode MODE, if specified), including all -leading file name components. - -Report bugs to ." - -# process command line arguments -while test $# -gt 0 ; do - case $1 in - -h | --help | --h*) # -h for help - echo "$usage" - exit $? - ;; - -m) # -m PERM arg - shift - test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } - dirmode=$1 - shift - ;; - --version) - echo "$0 $scriptversion" - exit $? - ;; - --) # stop option processing - shift - break - ;; - -*) # unknown option - echo "$usage" 1>&2 - exit 1 - ;; - *) # first non-opt arg - break - ;; - esac -done - -for file -do - if test -d "$file"; then - shift - else - break - fi -done - -case $# in - 0) exit 0 ;; -esac - -# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and -# mkdir -p a/c at the same time, both will detect that a is missing, -# one will create a, then the other will try to create a and die with -# a "File exists" error. This is a problem when calling mkinstalldirs -# from a parallel make. We use --version in the probe to restrict -# ourselves to GNU mkdir, which is thread-safe. -case $dirmode in - '') - if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - echo "mkdir -p -- $*" - exec mkdir -p -- "$@" - else - # On NextStep and OpenStep, the 'mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because '.' already - # exists. - test -d ./-p && rmdir ./-p - test -d ./--version && rmdir ./--version - fi - ;; - *) - if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && - test ! -d ./--version; then - echo "mkdir -m $dirmode -p -- $*" - exec mkdir -m "$dirmode" -p -- "$@" - else - # Clean up after NextStep and OpenStep mkdir. - for d in ./-m ./-p ./--version "./$dirmode"; - do - test -d $d && rmdir $d - done - fi - ;; -esac - -for file -do - case $file in - /*) pathcomp=/ ;; - *) pathcomp= ;; - esac - oIFS=$IFS - IFS=/ - set fnord $file - shift - IFS=$oIFS - - for d - do - test "x$d" = x && continue - - pathcomp=$pathcomp$d - case $pathcomp in - -*) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - else - if test ! -z "$dirmode"; then - echo "chmod $dirmode $pathcomp" - lasterr= - chmod "$dirmode" "$pathcomp" || lasterr=$? - - if test ! -z "$lasterr"; then - errstatus=$lasterr - fi - fi - fi - fi - - pathcomp=$pathcomp/ - done -done - -exit $errstatus - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/Release/share/glib-2.0/gettext/po/Makefile.in.in b/Release/share/glib-2.0/gettext/po/Makefile.in.in deleted file mode 100644 index e6c32cb..0000000 --- a/Release/share/glib-2.0/gettext/po/Makefile.in.in +++ /dev/null @@ -1,268 +0,0 @@ -# Makefile for program source directory in GNU NLS utilities package. -# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper -# -# This file file be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. -# -# - Modified by Owen Taylor to use GETTEXT_PACKAGE -# instead of PACKAGE and to look for po2tbl in ./ not in intl/ -# -# - Modified by jacob berkman to install -# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize - -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ - -SHELL = @SHELL@ -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datarootdir = @datarootdir@ -datadir = @datadir@ -libdir = @libdir@ -localedir = $(libdir)/locale -gnulocaledir = $(datadir)/locale -gettextsrcdir = $(datadir)/glib-2.0/gettext/po -subdir = po - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -MKINSTALLDIRS = mkdir -p - -CC = @CC@ -GENCAT = @GENCAT@ -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -XGETTEXT = @XGETTEXT@ -MSGMERGE = msgmerge - -DEFS = @DEFS@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ - -INCLUDES = -I.. -I$(top_srcdir)/intl - -COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) - -SOURCES = -POFILES = @POFILES@ -GMOFILES = @GMOFILES@ -DISTFILES = LINGUAS ChangeLog Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \ -$(POFILES) $(GMOFILES) $(SOURCES) - -POTFILES = \ - -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -INSTOBJEXT = @INSTOBJEXT@ - -.SUFFIXES: -.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat - -.c.o: - $(COMPILE) $< - -.po.pox: - $(MAKE) $(GETTEXT_PACKAGE).pot - $(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*.pox - -.po.mo: - $(MSGFMT) -o $@ $< - -.po.gmo: - $(AM_V_GEN) file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ - && rm -f $$file && $(GMSGFMT) $(MSGFMT_OPTS) -o $$file $< - -.po.cat: - sed -f ../intl/po2msg.sed < $< > $*.msg \ - && rm -f $@ && $(GENCAT) $@ $*.msg - - -all: all-@USE_NLS@ - -all-yes: $(CATALOGS) -all-no: - -$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES) - $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) \ - --msgid-bugs-address='http://bugzilla.gnome.org/enter_bug.cgi?product=glib&keywords=I18N+L10N&component=general' \ - --add-comments --keyword=_ --keyword=N_ \ - --keyword=C_:1c,2 \ - --keyword=NC_:1c,2 \ - --keyword=g_dcgettext:2 \ - --keyword=g_dngettext:2,3 \ - --keyword=g_dpgettext2:2c,3 \ - --flag=N_:1:pass-c-format \ - --flag=C_:2:pass-c-format \ - --flag=NC_:2:pass-c-format \ - --flag=g_dngettext:2:pass-c-format \ - --flag=g_strdup_printf:1:c-format \ - --flag=g_string_printf:2:c-format \ - --flag=g_string_append_printf:2:c-format \ - --flag=g_error_new:3:c-format \ - --flag=g_set_error:4:c-format \ - --flag=g_markup_printf_escaped:1:c-format \ - --flag=g_log:3:c-format \ - --flag=g_print:1:c-format \ - --flag=g_printerr:1:c-format \ - --flag=g_printf:1:c-format \ - --flag=g_fprintf:2:c-format \ - --flag=g_sprintf:2:c-format \ - --flag=g_snprintf:3:c-format \ - --flag=g_scanner_error:2:c-format \ - --flag=g_scanner_warn:2:c-format \ - $(POTFILES) \ - && test ! -f $(GETTEXT_PACKAGE).po \ - || ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \ - && mv $(GETTEXT_PACKAGE).po $(srcdir)/$(GETTEXT_PACKAGE).pot ) - -install: install-exec install-data -install-exec: -install-data: install-data-@USE_NLS@ -install-data-no: all -install-data-yes: all - $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \ - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - case "$$cat" in \ - *.gmo) destdir=$(gnulocaledir);; \ - *) destdir=$(localedir);; \ - esac; \ - lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \ - $(MKINSTALLDIRS) $$dir; \ - if test -r $$cat; then \ - $(INSTALL_DATA) $$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ - echo "installing $$cat as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \ - else \ - $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ - echo "installing $(srcdir)/$$cat as" \ - "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \ - fi; \ - if test -r $$cat.m; then \ - $(INSTALL_DATA) $$cat.m $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ - echo "installing $$cat.m as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \ - else \ - if test -r $(srcdir)/$$cat.m ; then \ - $(INSTALL_DATA) $(srcdir)/$$cat.m \ - $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ - echo "installing $(srcdir)/$$cat as" \ - "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \ - else \ - true; \ - fi; \ - fi; \ - done - if test "$(PACKAGE)" = "glib"; then \ - $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \ - $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ - $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ - else \ - : ; \ - fi - -# Define this as empty until I found a useful application. -installcheck: - -uninstall: - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ - rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ - rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ - rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ - done - if test "$(PACKAGE)" = "glib"; then \ - rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ - fi - -check: all - -dvi info tags TAGS ID: - -mostlyclean: - rm -f core core.* *.pox $(GETTEXT_PACKAGE).po *.old.po cat-id-tbl.tmp - rm -fr *.o - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f $(GMOFILES) - -distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir) -dist distdir: $(DISTFILES) - dists="$(DISTFILES)"; \ - for file in $$dists; do \ - ln $(srcdir)/$$file $(distdir) 2> /dev/null \ - || cp -p $(srcdir)/$$file $(distdir); \ - done - -update-po: Makefile - $(MAKE) $(GETTEXT_PACKAGE).pot - tmpdir=`pwd`; \ - cd $(srcdir); \ - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - echo "$$lang:"; \ - if $(MSGMERGE) $$lang.po $(GETTEXT_PACKAGE).pot -o $$tmpdir/$$lang.new.po; then \ - if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$cat failed!"; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi; \ - done - -# POTFILES is created from POTFILES.in by stripping comments, empty lines -# and Intltool tags (enclosed in square brackets), and appending a full -# relative path to them -POTFILES: POTFILES.in - ( if test 'x$(srcdir)' != 'x.'; then \ - posrcprefix='$(top_srcdir)/'; \ - else \ - posrcprefix="../"; \ - fi; \ - rm -f $@-t $@ \ - && (sed -e '/^#/d' \ - -e "s/^\[.*\] +//" \ - -e '/^[ ]*$$/d' \ - -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \ - | sed -e '$$s/\\$$//') > $@-t \ - && chmod a-w $@-t \ - && mv $@-t $@ ) - -Makefile: Makefile.in.in ../config.status POTFILES - cd .. \ - && $(SHELL) ./config.status $(subdir)/$@.in - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Release/share/glib-2.0/schemas/gschema.dtd b/Release/share/glib-2.0/schemas/gschema.dtd deleted file mode 100644 index 00e3a16..0000000 --- a/Release/share/glib-2.0/schemas/gschema.dtd +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Release/share/glib-2.0/schemas/gschemas.compiled b/Release/share/glib-2.0/schemas/gschemas.compiled deleted file mode 100644 index 715a6b1..0000000 Binary files a/Release/share/glib-2.0/schemas/gschemas.compiled and /dev/null differ diff --git a/Release/share/glib-2.0/schemas/org.freedesktop.Geoclue.gschema.xml b/Release/share/glib-2.0/schemas/org.freedesktop.Geoclue.gschema.xml deleted file mode 100644 index 94ff65d..0000000 --- a/Release/share/glib-2.0/schemas/org.freedesktop.Geoclue.gschema.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - 0 - The baud rate for the attached GPS device - The baud rate for the attached GPS device. - - - '' - The device node or Bluetooth address for the attached GPS device - The device node or Bluetooth address for the attached GPS device. - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.applications.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.applications.gschema.xml deleted file mode 100644 index c85af3f..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.applications.gschema.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - false - On-screen keyboard - Whether the on-screen keyboard is turned on. - - - false - Screen magnifier - Whether the screen magnifier is turned on. - - - false - Screen reader - Whether the screen reader is turned on. - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.xml deleted file mode 100644 index 2070488..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - false - Always show the Universal Access status icon - - This key overrides the automatic hiding of the Universal - Access status icon when no accessibility features are enabled. - - - - false - Always show the text caret - - This key overrides the hiding of the text caret in noneditable - text in applications. - - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.keyboard.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.keyboard.gschema.xml deleted file mode 100644 index f505284..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.keyboard.gschema.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - - false - Enable accessibility keyboard shortcuts - - - false - Beep when a keyboard accessibility feature changes - Whether to beep when a keyboard accessibility feature is enabled or disabled. - - - false - Disable keyboard accessibility after a timeout - Whether to disable keyboard accessibility after a timeout, useful for shared machines. - - - 200 - Duration of the disabling timeout - Duration of the timeout before disabling the keyboard accessibility. - - - false - Enable 'Bounce Keys' - Whether the 'Bounce Keys' keyboard accessibility feature is turned on. - - - 300 - Minimum interval in milliseconds - Ignore multiple presses of the same key within this many milliseconds. - - - false - Beep when a key is rejected - Whether to beep when a key is rejected. - - - false - Enable 'Mouse Keys' - Whether the 'Mouse Keys' accessibility feature is turned on. - - - 10 - Pixels per seconds - How many pixels per second to move at the maximum speed. - - - 300 - How long to accelerate in milliseconds - How many milliseconds it takes to go from 0 to maximum speed. - - - 300 - Initial delay in milliseconds - How many milliseconds to wait before mouse movement keys start to operate. - - - false - Enable 'Slow Keys' - Whether the 'Slow Keys' accessibility feature is turned on. - - - 300 - Minimum interval in milliseconds - Do not accept a key as being pressed unless held for this many milliseconds. - - - false - Beep when a key is first pressed - Whether to beep when a key is first pressed. - - - false - Beep when a key is accepted - Whether to beep when a key is accepted. - - - false - Beep when a key is rejected - Whether to beep when a key is rejected. - - - false - Enable sticky keys - Whether the sticky keys accessibility feature is turned on. - - - false - Disable when two keys are pressed at the same time - Whether to disable sticky keys if two keys are pressed at the same time. - - - false - Beep when a modifier is pressed. - Whether to beep when a modifier key is pressed. - - - false - Enable 'Toggle Keys' - Whether the 'Toggle Keys' accessibility feature is turned on. - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.magnifier.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.magnifier.gschema.xml deleted file mode 100644 index f84f243..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.magnifier.gschema.xml +++ /dev/null @@ -1,228 +0,0 @@ - - - - - 'proportional' - Mouse Tracking Mode - - Determines the position of the magnified mouse image within the - magnified view and how it reacts to system mouse movement. The values - are - - none: no mouse tracking; - - centered: the mouse image is - displayed at the center of the zoom region (which also represents - the point under the system mouse) and the magnified contents are - scrolled as the system mouse moves; - - proportional: the position of the magnified mouse in the zoom region - is proportionally the same as the position of the system mouse on screen; - - push: when the magnified mouse intersects a boundary of the zoom - region, the contents are scrolled into view. - - - - 'proportional' - Focus Tracking Mode - - Determines the position of the focused widget within magnified view. - - The values are: - - - none: no focus tracking - - - centered: the focused image is displayed at the center of the zoom region (which also represents the - point under the system focus) and the magnified contents are scrolled as the system focus moves - - - proportional: the position of the magnified focus in the zoom region is proportionally the same as the - position of the system focus on screen - - - push: when the magnified focus intersects a boundary of the zoom region, the contents are scrolled - into view - - - - 'centered' - Caret Tracking Mode - - Determines the position of the caret within magnified view. The values are: - - - none: no caret tracking - - - centered: the image of the caret is displayed at the center of the zoom region (which also represents - the point under the system caret) and the magnified contents are scrolled as the system caret moves - - - proportional: the position of the magnified caret in the zoom region is proportionally the same as the - position of the system caret on screen - - - push: when the magnified caret intersects a boundary of the zoom region, the contents are scrolled into - view - - - - 'full-screen' - Screen position - - The magnified view either fills the entire screen, or occupies the - top-half, bottom-half, left-half, or right-half of the screen. - - - - 2.0 - - Magnification factor - - The power of the magnification. A value of 1.0 means no magnification. - A value of 2.0 doubles the size. - - - - false - Enable lens mode - - Whether the magnified view should be centered over the location of - the system mouse and move with it. - - - - false - - Scroll magnified contents beyond the edges of the desktop - - - For centered mouse tracking, when the system pointer is at or near the - edge of the screen, the magnified contents continue to scroll such that - the screen edge moves into the magnified view. - - - - - - false - Show or hide crosshairs - - Enables/disables display of crosshairs centered on the magnified - mouse sprite. - - - - 8 - Thickness of the crosshairs in pixels - - Width in pixels of the vertical and horizontal lines that make up the crosshairs. - - - - '#ff0000' - Color of the crosshairs - - The color of the the vertical and horizontal lines that make up - the crosshairs. - - - - 0.66 - - Opacity of the crosshairs - - Determines the transparency of the crosshairs, from fully opaque - to fully transparent. - - - - 4096 - - Length of the crosshairs in pixels - - Determines the length in pixels of the vertical and horizontal - lines that make up the crosshairs. - - - - false - Clip the crosshairs at the center - - Determines whether the crosshairs intersect the magnified mouse sprite, - or are clipped such that the ends of the horizontal and vertical lines - surround the mouse image. - - - - false - Inverse lightness - - Determines whether the lightness values are inverted: darker colors - become lighter and vice versa, and white and black are interchanged. - - - - 1.0 - - Color Saturation - - Represents a change to the color saturation, from 0.0 (grayscale) - to 1.0 (full color). - - - - 0.0 - - Change brightness of red - - Represents a change to the default brightness of the red component. Zero - indicates no change, values less than zero indicate a decrease, and - values greater than zero indicate an increase. - - - - 0.0 - - Change brightness of green - - Represents a change to the default brightness for the green component. - Zero indicates no change, values less than zero indicate a decrease, and - values greater than zero indicate an increase. - - - - 0.0 - - Change brightness of blue - - Represents a change to the default brightness for the blue component. - Zero indicates no change, values less than zero indicate a decrease, and - values greater than zero indicate an increase. - - - - 0.0 - - Change contrast of red - - Represents a change to the default contrast of the red component. Zero - indicates no change in contrast, values less than zero indicate a - decrease, and values greater than zero indicate an increase. - - - - 0.0 - - Change contrast of green - - Represents a change to the default contrast of the green component. - Zero indicates no change in contrast, values less than zero indicate a - decrease, and values greater than zero indicate an increase. - - - - 0.0 - - Change contrast of blue - - Represents a change to the default contrast of the blue component. Zero - indicates no change in contrast, values less than zero indicate a - decrease, and values greater than zero indicate an increase. - - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.mouse.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.mouse.gschema.xml deleted file mode 100644 index 4c9779c..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.a11y.mouse.gschema.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - 1.20 - Dwell click time - Time in seconds before a click is triggered. - - - 10 - Movement threshold - Distance in pixels before movement will be recognized. - - - 'left' - Gesture single click - Direction to perform a single click ('left', 'right', 'up', 'down'). - - - 'up' - Gesture double click - Direction to perform a double click ('left', 'right', 'up', 'down'). - - - 'down' - Gesture drag click - Direction to perform dragging ('left', 'right', 'up', 'down'). - - - 'right' - Gesture secondary click - Direction to perform a secondary click ('left', 'right', 'up', 'down'). - - - 'window' - Dwell click mode - The active dwell click mode. Possible values are 'window' and 'gesture'. - - - true - Show click type window - Show click type window. - - - false - Enable dwell clicks - Enable dwell clicks. - - - false - Secondary click enabled - Enable simulated secondary clicks - - - 1.20 - Secondary click time - Time in seconds before a simulated secondary click is triggered. - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.app-folders.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.app-folders.gschema.xml deleted file mode 100644 index 9d2664e..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.app-folders.gschema.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - [] - Folder children - List of relative settings paths at which app-folders are - stored. Each folder uses the org.gnome.desktop.app-folders.folder - schema. - - - - - '' - Folder name - The name of the application folder. - - - false - Translate the name - Whether the name key is a filename to be looked up in - /usr/share/desktop-directories. - - - [] - Applications - The list of IDs of applications that are explicitly - included in this folder. - - - [] - Categories - A list of categories for which apps will be placed - into this folder by default, in addition to the apps that are - listed in the apps key. - - - [] - Excluded applications - A list of IDs of applications that are excluded - from this folder. This can be used to remove applications that - would otherwise be included by category. - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.xml deleted file mode 100644 index 75615d7..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - 'zoom' - Picture Options - - Determines how the image set by wallpaper_filename is rendered. - Possible values are "none", "wallpaper", "centered", "scaled", - "stretched", "zoom", "spanned". - - - - 'file:///mingw64/share/backgrounds/gnome/adwaita-timed.xml' - Picture URI - - URI to use for the background image. Note that the backend only supports - local (file://) URIs. - - - - - 100 - Picture Opacity - - Opacity with which to draw the background picture. - - - - '#023c88' - Primary Color - - Left or Top color when drawing gradients, or the solid color. - - - - '#5789ca' - Secondary Color - - Right or Bottom color when drawing gradients, not used for solid color. - - - - 'solid' - Color Shading Type - - How to shade the background color. Possible values are "horizontal", - "vertical", and "solid". - - - - false - Have file manager handle the desktop - - If set to true, then file manager will draw the icons on the desktop. - - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.calendar.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.calendar.gschema.xml deleted file mode 100644 index 9adaffc..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.calendar.gschema.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - false - Show the week date in the calendar - If true, display the ISO week date in the calendar. - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.datetime.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.datetime.gschema.xml deleted file mode 100644 index 1c0fa4c..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.datetime.gschema.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - false - Automatically update timezone - Whether to automatically update the timezone using geolocation. - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.default-applications.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.default-applications.gschema.xml deleted file mode 100644 index 5f52a13..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.default-applications.gschema.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - 'evolution -c calendar' - Default calendar - - Default calendar application - - DEPRECATED: This key is deprecated and ignored. - The preferred calendar application is the application handling the text/calendar mime type. - - - - false - Calendar needs terminal - - Whether the default calendar application needs a terminal to run. - - DEPRECATED: This key is deprecated and ignored. - The preferred calendar application is the application handling the text/calendar mime type, - whether it needs a terminal is taken from its desktop file. - - - - - - 'evolution -c tasks' - Default tasks - - Default tasks application. - - - - false - Tasks needs terminal - - Whether the default tasks application needs a terminal to run. - - - - - - 'gnome-terminal' - Terminal application - - Terminal program to use when starting applications that require one. - - DEPRECATED: This key is deprecated and ignored. - The default terminal is handled in GIO. - - - - '-x' - Exec Arguments - - Argument used to execute programs in the terminal defined by the - 'exec' key. - - DEPRECATED: This key is deprecated and ignored. - The default terminal and how to invoke it is handled in GIO. - - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.enums.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.enums.xml deleted file mode 100644 index eb8426b..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.enums.xml +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.input-sources.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.input-sources.gschema.xml deleted file mode 100644 index 7b028eb..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.input-sources.gschema.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - 0 - Current input source - - The zero-based index into the input sources list specifying - the current one in effect. The value is automatically capped - to remain in the range [0, sources_length) as long as the - sources list isn't empty. - - DEPRECATED: This key is deprecated and ignored. - - - - [] - List of input sources - - List of input source identifiers available. Each source is - specified as a tuple of 2 strings. The first string is the - type and can be one of 'xkb' or 'ibus'. For 'xkb' sources the - second string is 'xkb_layout+xkb_variant' or just 'xkb_layout' - if a XKB variant isn't needed. For 'ibus' sources the second - string is the IBus engine name. An empty list means that the X - server's current XKB layout and variant won't be touched and - IBus won't be used. - - - - [] - List of most recently used input sources - - List of most recently used input sources. The value is in the - same format as the available sources list. - - - - [] - List of XKB options - - List of XKB options. Each option is an XKB option string as - defined by xkeyboard-config's rules files. - - - - false - Show all installed input sources - - Makes all installed input sources available for choosing in - System Settings. - - - - false - Use different input sources for each window - - When enabled, input sources get attached to the currently - focused window when activated. - - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.xml deleted file mode 100644 index ed08f62..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.xml +++ /dev/null @@ -1,231 +0,0 @@ - - - - false - Enable Toolkit Accessibility - - Whether toolkits should load accessibility related modules. - - - - true - Enable Animations - - Whether animations should be displayed. Note: This is a global key, - it changes the behaviour of the window manager, the panel etc. - - - - false - Menus Have Tearoff - - Whether menus should have a tearoff. - - - - false - Can Change Accels - - Whether the user can dynamically type a new accelerator when - positioned over an active menuitem. - - - - 'both-horiz' - Toolbar Style - - Toolbar Style. Valid values are "both", "both-horiz", "icons", - and "text". - - - - false - Menubar Detachable - - Whether the user can detach menubars and move them around. - - - - false - Toolbar Detachable - - Whether the user can detach toolbars and move them around. - - - - 'large' - Toolbar Icon Size - - Size of icons in toolbars, either "small" or "large". - - - - true - Cursor Blink - - Whether the cursor should blink. - - - - - 1200 - Cursor Blink Time - - Length of the cursor blink cycle, in milliseconds. - - - - - 10 - Cursor Blink Timeout - - Time after which the cursor stops blinking, in seconds. - - - - 'Adwaita' - Icon Theme - - Icon theme to use for the panel, nautilus etc. - - - - 'Adwaita' - Gtk+ Theme - - Basename of the default theme used by gtk+. - - - - 'Default' - Gtk+ Keybinding Theme - - Basename of the default keybinding theme used by gtk+. - - - - 'Cantarell 11' - Default font - - Name of the default font used by gtk+. - - - - - 1.0 - Text scaling factor - - Factor used to enlarge or reduce text display, without changing font size. - - - - 0 - Window scaling factor - - Integer factor used to scale windows by. For use on high-dpi screens. - 0 means pick automatically based on monitor. - - - - 'callback' - GTK IM Preedit Style - - Name of the GTK+ input method Preedit Style used by gtk+. - - - - 'callback' - GTK IM Status Style - - Name of the GTK+ input method Status Style used by gtk+. - - - - '' - GTK IM Module - - Name of the input method module used by GTK+. - - - - 'Sans 11' - Document font - - Name of the default font used for reading documents. - - - - 'Monospace 11' - Monospace font - - Name of a monospaced (fixed-width) font for use in locations like - terminals. - - - - 'F10' - Menubar accelerator - - Keyboard shortcut to open the menu bars. - - - - 'Adwaita' - Cursor theme - Cursor theme name. Used only by Xservers that support the Xcursor extension. - - - 24 - Cursor size - Size of the cursor used as cursor theme. - - - 200 - Timeout before click repeat - Timeout in milliseconds before a click starts repeating (on spinner buttons for example). - - - 20 - Timeout between click repeats - Timeout in milliseconds between repeated clicks when a button is left pressed. - - - 'black:white:gray50:red:purple:blue:light blue:green:yellow:orange:lavender:brown:goldenrod4:dodger blue:pink:light green:gray10:gray30:gray75:gray90' - Palette used in the color selector - Palette used in the color selector as defined by the 'gtk-color-palette' setting - - - '' - List of symbolic names and color equivalents - A '\n' separated list of "name:color" as defined by the 'gtk-color-scheme' setting - - - '24h' - Whether the clock displays in 24h or 12h format - - Whether the clock displays in 24h or 12h format - - - - false - Whether the clock shows seconds - - If true, display seconds in the clock. - - - - false - Show date in clock - - If true, display date in the clock, in addition to time. - - - - false - Show battery percentage - - If true, display battery percentage in the status menu, in addition to the icon. - - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.lockdown.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.lockdown.gschema.xml deleted file mode 100644 index 9e29dfd..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.lockdown.gschema.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - false - Disable command line - - Prevent the user from accessing the terminal or specifying a command - line to be executed. For example, this would disable access to the - panel's "Run Application" dialog. - - - - false - Disable saving files to disk - - Prevent the user from saving files to disk. For example, this would - disable access to all applications' "Save as" dialogs. - - - - false - Disable printing - - Prevent the user from printing. For example, this would disable access - to all applications' "Print" dialogs. - - - - false - Disable print setup - - Prevent the user from modifying print settings. For example, this would - disable access to all applications' "Print Setup" dialogs. - - - - false - Disable user switching - - Prevent the user from switching to another account while his session - is active. - - - - false - Disable lock screen - - Prevent the user to lock his screen. - - - - false - Disable URL and MIME type handlers - - Prevent running any URL or MIME type handler applications. - - - - false - Disable log out - - Prevent the user from logging out. - - - - false - Disable user administration - - Stop the user from modifying user accounts. By default, we allow adding - and removing users, as well as changing other users settings. - - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.xml deleted file mode 100644 index 8e6f77a..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - true - Whether to automatically mount media - If set to true, then Nautilus will automatically mount media such as user-visible hard disks and removable media on start-up and media insertion. - - - true - Whether to automatically open a folder for automounted media - If set to true, then Nautilus will automatically open a folder when media is automounted. This only applies to media where no known x-content/* type was detected; for media where a known x-content type is detected, the user configurable action will be taken instead. - - - false - Never prompt or autorun/autostart programs when media are inserted - If set to true, then Nautilus will never prompt nor autorun/autostart programs when a medium is inserted. - - - [ 'x-content/unix-software' ] - List of x-content/* types where the preferred application will be launched - List of x-content/* types for which the user have chosen to start an application in the preference capplet. The preferred application for the given type will be started on insertion on media matching these types. - - - [] - List of x-content/* types set to "Do Nothing" - List of x-content/* types for which the user have chosen "Do Nothing" in the preference capplet. No prompt will be shown nor will any matching application be started on insertion of media matching these types. - - - [] - List of x-content/* types set to "Open Folder" - List of x-content/* types for which the user have chosen "Open Folder" in the preferences capplet. A folder window will be opened on insertion of media matching these types. - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.xml deleted file mode 100644 index 5057552..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - true - Show notification banners - - Whether notification banners are visible for application notifications. - - - - - true - Show notifications in the lock screen - - Whether notifications are shown in the lock screen or not. - - - - - - [] - - - - - - - - '' - Application ID - - The application that this policy is for. - - - - - true - Enable notifications - - Whether notifications are globally enabled for this application. - - - - - true - Enable sound alerts - - Whether notifications should be accompanied by sound alerts. - - - - - true - Show notification banners - - Whether notification banners for this application are shown or not. Does not - affect clicking on message tray buttons. - - - - - false - Force automatic expanding of banners - - Whether notifications from this application are expanded automatically when in banner mode. - - - - - true - Show in the lock screen - - Whether notifications from this application are shown when the screen is locked. - - - - - false - Show details in the lock screen - - Whether the summary and body of notifications from this application will be - visible in the locked screen. - - - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.peripherals.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.peripherals.gschema.xml deleted file mode 100644 index ca5b1b7..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.peripherals.gschema.xml +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - - - - false - Whether edge scrolling is enabled - When enabled, touchpads that support edge scrolling will have that feature enabled. - - - true - Whether edge scrolling is enabled - When enabled, touchpads that support two-finger scrolling will have that feature enabled. - - - false - Enable mouse clicks with touchpad - Set this to TRUE to be able to send mouse clicks by tapping on the touchpad. - - - 'enabled' - Touchpad enabled - Defines the situations in which the touchpad is enabled. - - - 'mouse' - Touchpad button orientation - Swap left and right mouse buttons for left-handed mice with 'left', 'right' for right-handed, 'mouse' to follow the mouse setting. - - - 0 - Pointer speed - Pointer speed for the touchpad. Accepted values are in the [-1..1] range (from "unaccelerated" to "fast"). A value of 0 is the system default. - - - - true - Natural scrolling - Set this to TRUE to enable natural (reverse) scrolling for touchpads. - - - 'default' - Click method - How to generate software-emulated buttons, either disabled ('none'), through specific areas ('areas'), number of fingers ('fingers') or left as hardware default ('default'). - - - - - true - Keyboard repeat - Set this to TRUE to enable keyboard repeat. - - - 30 - Key Repeat Interval - Delay between repeats in milliseconds. - - - 500 - Initial Key Repeat Delay - Initial key repeat delay in milliseconds. - - - - - false - Mouse button orientation - Swap left and right mouse buttons for left-handed mice. - - - 0 - Pointer speed - Pointer speed for mice. Accepted values are in the [-1..1] range (from "unaccelerated" to "fast"). A value of 0 is the system default. - - - - false - Natural scrolling - Set this to TRUE to enable natural (reverse) scrolling for mice. - - - 'default' - Acceleration profile - Acceleration profile used for connected mice. The acceleration profile can be set to either default ('default') which uses the default acceleration profile for each device, flat ('flat'), which accelerates by a device specific constant factor derived from the configured pointer speed, or adaptive ('adaptive') which adapts the acceleration depending on the mouse movement. If a mouse doesn't support the configured profile, 'default' will be used. - - - - - ["", "", ""] - Drawing tablet mapping - EDID information of the monitor the tablet is mapped to. Must be in the format [vendor, product, serial]. ["","",""] disables mapping. - - - 'absolute' - Tablet mapping - How input affects the pointer on the screen - - - [0, 0, 0, 0] - Tablet area - Dead area padding around the active area, in percentages. Respectively applied to left,right,top and bottom sides. - - - false - Tablet aspect ratio - Enable this to restrict the tablet area to match the aspect ratio of the output. - - - false - Tablet left-handed mode - Enable this to allow physically rotating the tablet for left-handed setups - - - - - [0, 0, 100, 100] - Stylus pressure curve - Set this to x1, y1 and x2, y2 of the pressure curve applied to the stylus. - - - [0, 0, 100, 100] - Eraser pressure curve - Set this to x1, y1 and x2, y2 of the pressure curve applied to the eraser. - - - 'default' - Button action - Stylus button action, this button is located along the pen handle. - - - 'default' - Secondary button action - Secondary stylus button action, this button is located along the pen handle on some styli like the Grip Pen. Other styli like the Airbrush Pen or the Inking Pen only have one button, this setting is ineffective on those. - - - - - 'none' - Pad button action type - The type of action triggered by the button being pressed. - - - '' - Key combination for the custom action - The keyboard shortcut generated when the button is pressed for custom actions. - - - - - ["", "", ""] - Touchscreen display mapping - EDID information of the monitor the touchscreen is mapped to. Must be in the format [vendor, product, serial]. ["","",""] disables mapping. - - - - - 0 - - Mouse wheel emulation button. 0 to disable the feature. - - - 'default' - Acceleration profile - Acceleration profile used for the trackball. The acceleration profile can be set to either default ('default') which uses the default acceleration profile, flat ('flat'), which accelerates by a device specific constant factor derived from the configured speed, or adaptive ('adaptive') which adapts the acceleration depending on the movement. If the trackball doesn't support the configured profile, 'default' will be used. - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.xml deleted file mode 100644 index 677ab87..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - false - Controls visibility of personal information - If set to true, the system will make an effort to - not divulge the user's identity on screen or on the network. - - - true - Show full name in the user menu - Whether the users full name is shown in the user menu or not. - - - false - Whether to remove old files from the trash automatically - If TRUE, automatically remove files from the trash - when they are older than 'old-files-age' days. - - - false - Whether to remove old temporary files automatically - If TRUE, automatically remove temporary files - when they are older than 'old-files-age' days. - - - 30 - Number of days to keep trash and temporary files - Consider trash and temporary files old after - this many days. - - - true - Whether to remember recently used files - If FALSE, applications will not remember recently - used files. - - - -1 - Number of days to remember recently used files for - Recently used files will be remembered for this many days. - If set to 0, recent files will not be remembered; if set to -1, they - will be retained indefinitively. - - - true - Whether to remember application usage - If FALSE, application usage will not be monitored - and recorded. - - - false - Send statistics when applications are removed or installed - If FALSE, no anonymous installation or removal information will be sent to the vendor. - - - false - Send reports of technical problems to the vendor - If TRUE, anonymized reports will be sent automatically to the vendor. - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.screensaver.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.screensaver.gschema.xml deleted file mode 100644 index dbcfd36..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.screensaver.gschema.xml +++ /dev/null @@ -1,135 +0,0 @@ - - - - true - Activate when idle - - Set this to TRUE to activate the screensaver when the session is idle. - - DEPRECATED: This key is deprecated and ignored. - Set org.gnome.desktop.session idle-delay to 0 if you do not want to activate the screensaver. - - - - true - Lock on activation - Set this to TRUE to lock the screen when the screensaver goes active. - - - 0 - Time before locking - The number of seconds after screensaver activation before locking the screen. - - - true - Show full name in the lock screen - Whether the user's full name is shown in the lock screen or not. This only affects the screen shield, the name is always shown in the unlock dialog. - - - false - Allow embedding a keyboard into the window - - Set this to TRUE to allow embedding a keyboard into the window when trying to unlock. The "keyboard_command" key must be set with the appropriate command. - - DEPRECATED: This key is deprecated and ignored. - - - - '' - Embedded keyboard command - - The command that will be run, if the "embedded_keyboard_enabled" key is set to TRUE, to embed a keyboard widget into the window. This command should implement an XEMBED plug interface and output a window XID on the standard output. - - DEPRECATED: This key is deprecated and ignored. - - - - false - Allow logout - - Set this to TRUE to offer an option in the unlock dialog to allow logging out after a delay. The delay is specified in the "logout_delay" key. - - DEPRECATED: This key is deprecated and ignored. - - - - 7200 - Time before logout option - - The number of seconds after the screensaver activation before a logout option will appear in the unlock dialog. This key has effect only if the "logout_enable" key is set to TRUE. - - DEPRECATED: This key is deprecated and ignored - - - - '' - Logout command - - The command to invoke when the logout button is clicked. This command should simply log the user out without any interaction. This key has effect only if the "logout_enable" key is set to TRUE. - - DEPRECATED: This key is deprecated and ignored. - - - - true - Allow user switching - Set this to TRUE to offer an option in the unlock dialog to switch to a different user account. - - - true - Allow the session status message to be displayed - - Allow the session status message to be displayed when the screen is locked. - - DEPRECATED: This key is deprecated and ignored. - - - - 'zoom' - Picture Options - - Determines how the image set by wallpaper_filename is rendered. - Possible values are "none", "wallpaper", "centered", "scaled", - "stretched", "zoom", "spanned". - - - - 'file:///mingw64/share/backgrounds/gnome/adwaita-lock.jpg' - Picture URI - - URI to use for the background image. Note that the backend only supports - local (file://) URIs. - - - - - 100 - Picture Opacity - - Opacity with which to draw the background picture. - - - - '#023c88' - Primary Color - - Left or Top color when drawing gradients, or the solid color. - - - - '#5789ca' - Secondary Color - - Right or Bottom color when drawing gradients, not used for solid color. - - - - 'solid' - Color Shading Type - - How to shade the background color. Possible values are "horizontal", - "vertical", and "solid". - - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.xml deleted file mode 100644 index 13cb448..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - false - Disable all external search providers - - Set to true to disable all external search provider programs, - whether or not they are independently disabled or enabled. - External search providers are installed by applications in - $XDG_DATA_DIR/gnome-shell/search-providers. - - - - - [] - - List of desktop file IDs for which the associated default-enabled search provider - should be disabled - - - Results for applications contained in this list will not be displayed - when searching. - - - - - [] - - List of desktop file IDs for which the associated default-disabled search provider - should be enabled - - - Results for applications contained in this list will be displayed - when searching. - - - - - ['org.gnome.Contacts.desktop', 'org.gnome.Documents.desktop', 'org.gnome.Nautilus.desktop'] - List of desktop file IDs for search providers sort order - - Results for applications contained in this list will be displayed in - the specified order. - Results for applications not specified in this list will be displayed - last, sorted alphabetically. - - - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.session.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.session.gschema.xml deleted file mode 100644 index 8021e6f..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.session.gschema.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - 300 - Time before session is considered idle - The number of seconds of inactivity before the session is considered idle. - - - "gnome" - Session type - The name of the session to use. Known values are - "gnome" and "gnome-fallback". - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.xml deleted file mode 100644 index fe1b715..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - true - Sounds for events - Whether to play sounds on user events. - - - 'freedesktop' - Sound theme name - The XDG sound theme to use for event sounds. - - - false - Input feedback sounds - Whether to play sounds on input events. - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.thumbnail-cache.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.thumbnail-cache.gschema.xml deleted file mode 100644 index 2812c36..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.thumbnail-cache.gschema.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - 180 - Maximum age for thumbnails in the cache, in days. Set to -1 to disable cleaning. - - - 512 - Maximum size of the thumbnail cache, in megabytes. Set to -1 to disable cleaning. - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.xml deleted file mode 100644 index 355bb36..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - false - Disable all external thumbnailers - - Set to true to disable all external thumbnailer programs, - independent on whether they are independently disabled/enabled. - - - - - [] - - List of mime-types for which external thumbnailer - programs will be disabled - - - Thumbnails will not be created for files whose mime-type is - contained in the list. - - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.wm.keybindings.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.wm.keybindings.gschema.xml deleted file mode 100644 index 5448a29..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.wm.keybindings.gschema.xml +++ /dev/null @@ -1,351 +0,0 @@ - - - - - Home']]]> - Switch to workspace 1 - - - [] - Switch to workspace 2 - - - [] - Switch to workspace 3 - - - [] - Switch to workspace 4 - - - [] - Switch to workspace 5 - - - [] - Switch to workspace 6 - - - [] - Switch to workspace 7 - - - [] - Switch to workspace 8 - - - [] - Switch to workspace 9 - - - [] - Switch to workspace 10 - - - [] - Switch to workspace 11 - - - [] - Switch to workspace 12 - - - Left']]]> - Switch to workspace left - - - Right']]]> - Switch to workspace right - - - Page_Up','Up']]]> - Switch to workspace above - - - Page_Down','Down']]]> - Switch to workspace below - - - End']]]> - Switch to last workspace - - - Above_Tab','Above_Tab']]]> - Switch windows of an application - - - Above_Tab','Above_Tab']]]> - Reverse switch windows of an application - - - Tab','Tab']]]> - Switch applications - - - Tab','Tab']]]> - Reverse switch applications - - - [] - Switch windows - - - [] - Reverse switch windows - - - Tab']]]> - Switch system controls - - - Tab']]]> - Reverse switch system controls - - - F6']]]> - Switch windows of an app directly - - - F6']]]> - Reverse switch windows of an app directly - - - Escape']]]> - Switch windows directly - - - Escape']]]> - Reverse switch windows directly - - - Escape']]]> - Switch system controls directly - - - Escape']]]> - Reverse switch system controls directly - - - [] - Hide all normal windows - - - s','F1']]]> - Show the activities overview - - - F2']]]> - Show the run command prompt - - - [] - Don't use - - - space']]]> - Activate the window menu - - - [] - Toggle fullscreen mode - - - F10']]]> - Toggle maximization state - - - [] - Toggle window always appearing on top - - - Up']]]> - Maximize window - - - Down','F5']]]> - Restore window - - - [] - Toggle shaded state - - - h']]]> - Minimize window - - - F4']]]> - Close window - - - F7']]]> - Move window - - - F8']]]> - Resize window - - - [] - Toggle window on all workspaces or one - - - Home']]]> - Move window to workspace 1 - - - [] - Move window to workspace 2 - - - [] - Move window to workspace 3 - - - [] - Move window to workspace 4 - - - [] - Move window to workspace 5 - - - [] - Move window to workspace 6 - - - [] - Move window to workspace 7 - - - [] - Move window to workspace 8 - - - [] - Move window to workspace 9 - - - [] - Move window to workspace 10 - - - [] - Move window to workspace 11 - - - [] - Move window to workspace 12 - - - End']]]> - Move window to last workspace - - - Left']]]> - Move window one workspace to the left - - - Right']]]> - Move window one workspace to the right - - - Page_Up','Up']]]> - Move window one workspace up - - - Page_Down','Down']]]> - Move window one workspace down - - - Left']]]> - Move window to the next monitor on the left - - - Right']]]> - Move window to the next monitor on the right - - - Up']]]> - Move window to the next monitor above - - - Down']]]> - Move window to the next monitor below - - - [] - Raise window if covered, otherwise lower it - - - [] - Raise window above other windows - - - [] - Lower window below other windows - - - [] - Maximize window vertically - - - [] - Maximize window horizontally - - - [] - Move window to top left corner - - - [] - Move window to top right corner - - - [] - Move window to bottom left corner - - - [] - Move window to bottom right corner - - - [] - Move window to top edge of screen - - - [] - Move window to bottom edge of screen - - - [] - Move window to right side of screen - - - [] - Move window to left side of screen - - - [] - Move window to center of screen - - - space']]]> - Switch input source - Binding to select the next input source - - - space']]]> - Switch input source backward - Binding to select the previous input source - - - [] - Toggle window to be always on top - Set or unset window to appear always on top - - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.xml deleted file mode 100644 index 56a358a..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.xml +++ /dev/null @@ -1,281 +0,0 @@ - - - - - ']]> - Modifier to use for modified window click actions - - Clicking a window while holding down this modifier key will move the - window (left click), resize the window (middle click), or show the - window menu (right click). The middle and right click operations may - be swapped using the "resize-with-right-button" key. Modifier is - expressed as "]]> or "]]> for example. - - - - false - Whether to resize with the right button - - Set this to true to resize with the right button and show a menu with - the middle button while holding down the key given in - "mouse-button-modifier"; set it to false to make it work - the opposite way around. - - - - 'appmenu:close' - Arrangement of buttons on the titlebar - - Arrangement of buttons on the titlebar. The value should be a string, - such as "menu:minimize,maximize,spacer,close"; the colon separates - the left corner of the window from the right corner, and the button - names are comma-separated. Duplicate buttons are not allowed. Unknown - button names are silently ignored so that buttons can be added in - future metacity versions without breaking older versions. A special - spacer tag can be used to insert some space between - two adjacent buttons. - - - - 'click' - Window focus mode - - The window focus mode indicates how windows are activated. It has - three possible values; "click" means windows must be clicked in order - to focus them, "sloppy" means windows are focused when the mouse enters - the window, and "mouse" means windows are focused when the mouse enters - the window and unfocused when the mouse leaves the window. - - - - 'smart' - Control how new windows get focus - - This option provides additional control over how newly created windows - get focus. It has two possible values; "smart" applies the user's - normal focus mode, and "strict" results in windows started from a - terminal not being given focus. - - - - true - - Whether windows should be raised when their client area is clicked - - - The default, true, indicates that a window will be raised - whenever its client area or its frame is clicked. - - Setting this to false means that a window will not be raised - if it is clicked on the client area. To raise it, one can - click anywhere in the window's frame, or Super-click on any - part of the window. This mode is useful if one uses many overlapping - windows. - - - - 'toggle-maximize' - Action on title bar double-click - - This option determines the effects of double-clicking on the title bar. - - Current valid options are 'toggle-shade', which will shade/unshade the - window, 'toggle-maximize' which will maximize/unmaximize the window, - 'toggle-maximize-horizontally' and 'toggle-maximize-vertically' - which will maximize/unmaximize the window in that direction only, - 'minimize' which will minimize the window, 'shade' which will roll - the window up, 'menu' which will display the window menu, - 'lower' which will put the window behind all the others, - and 'none' which will not do anything. - - - - - - - - - - - 'none' - Action on title bar middle-click - - This option determines the effects of middle-clicking on the title bar. - - Current valid options are 'toggle-shade', which will shade/unshade - the window, 'toggle-maximize' which will maximize/unmaximize the window, - 'toggle-maximize-horizontally' and 'toggle-maximize-vertically' - which will maximize/unmaximize the window in that direction only, - 'minimize' which will minimize the window, 'shade' which will roll - the window up, 'menu' which will display the window menu, - 'lower' which will put the window behind all the others, - and 'none' which will not do anything. - - - - - - - - - - - 'menu' - Action on title bar right-click - - This option determines the effects of right-clicking on the title bar. - - Current valid options are 'toggle-shade', which will shade/unshade - the window, 'toggle-maximize' which will maximize/unmaximize - the window, 'toggle-maximize-horizontally' and - 'toggle-maximize-vertically' which will maximize/unmaximize - the window in that direction only, 'minimize' which will minimize - the window, 'shade' which will roll the window up, - 'menu' which will display the window menu, 'lower' which will put - the window behind all the others, and 'none' which will not do anything. - - - - - - - - - - - false - Automatically raises the focused window - - If set to true, and the focus mode is either "sloppy" or "mouse" - then the focused window will be automatically raised after a delay - specified by the auto-raise-delay key. This is not related to clicking - on a window to raise it, nor to entering a window during drag-and-drop. - - - - - 500 - Delay in milliseconds for the auto raise option - - The time delay before raising a window if auto-raise is set to true. - The delay is given in thousandths of a second. - - - - 'Adwaita' - Current theme - - The theme determines the appearance of window borders, titlebar, - and so forth. - - DEPRECATED: This key is deprecated and ignored. - - - - true - Use standard system font in window titles - - If true, ignore the titlebar-font option, and use the standard - application font for window titles. - - - - 'Cantarell Bold 11' - Window title font - - A font description string describing a font for window titlebars. - The size from the description will only be used if the - titlebar-font-size option is set to 0. Also, this option is disabled - if the titlebar-uses-desktop-font option is set to true. - - - - 4 - - Number of workspaces - - Number of workspaces. Must be more than zero, and has a fixed maximum - to prevent making the desktop unusable by accidentally asking - for too many workspaces. - - - - true - System Bell is Audible - - Determines whether applications or the system can generate audible - 'beeps'; may be used in conjunction with 'visual bell' - to allow silent 'beeps'. - - - - false - Enable Visual Bell - - Turns on a visual indication when an application or the system issues - a 'bell' or 'beep'; useful for the hard-of-hearing and for use - in noisy environments. - - - - 'fullscreen-flash' - Visual Bell Type - - Tells the WM how to implement the visual indication that the - system bell or another application 'bell' indicator has been rung. - - Currently there are two valid values, "fullscreen-flash", which - causes a fullscreen white-black flash, and "frame-flash" which - causes the titlebar of the application which sent the bell signal - to flash. - - If the application which sent the bell is unknown (as is usually - the case for the default "system beep"), the currently focused - window's titlebar is flashed. - - - - - - - - - false - - Disable misfeatures that are required by old or broken applications - - - Some applications disregard specifications in ways that result in - window manager misfeatures. This option puts the WM in a - rigorously correct mode, which gives a more consistent - user interface, provided one does not need to run any - misbehaving applications. - - - - [] - The names of the workspaces - - Defines the names that should be assigned to workspaces. - If the list is too long for the current number of workspaces, - names in excess will be ignored. If the list is too short, or - includes empty names, missing values will be replaced with the - default ("Workspace N"). - - - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.devhelp.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.devhelp.gschema.xml deleted file mode 100644 index 5c86b6f..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.devhelp.gschema.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - false - Main window maximized state - Whether the main window should start maximized. - - - 700 - Width of the main window - The width of the main window. - - - 500 - Height of main window - The height of the main window. - - - 100 - X position of main window - The X position of the main window. - - - 100 - Y position of main window - The Y position of the main window. - - - - - 250 - Width of the index and search pane - The width of the index and search pane. - - - - - 'content' - Selected tab: "content" or "search" - Which of the tabs is selected: "content" or "search". - - - - - [] - Books disabled - List of books disabled by the user. - - - false - Group by language - Whether books should be grouped by language in the UI - - - - - - - - 350 - Width of the assistant window - The width of the assistant window. - - - 400 - Height of assistant window - The height of the assistant window. - - - 0 - X position of assistant window - The X position of the assistant window. - - - 0 - Y position of assistant window - The Y position of the assistant window. - - - - - true - Use system fonts - Use the system default fonts. - - - 'Sans 12' - Font for text - Font for text with variable width. - - - 'Monospace 12' - Font for fixed width text - Font for text with fixed width, such as code examples. - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.system.locale.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.system.locale.gschema.xml deleted file mode 100644 index 3630a7c..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.system.locale.gschema.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - '' - The locale to use for dates / numbers formats - - Specify the locale to be used for displaying dates, times and numbers formats. - - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.system.location.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.system.location.gschema.xml deleted file mode 100644 index 3207a4c..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.system.location.gschema.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - false - Geolocation services are enabled. - - If true, applications are allowed to access location information. - - - - 'exact' - The maximum accuracy level of location. - - Configures the maximum level of location accuracy applications are - allowed to see. Valid options are 'country', 'city', 'neighborhood', - 'street', and 'exact' (typically requires GPS receiver). Please keep in - mind that this only controls what GeoClue will allow applications to see - and they can find user's location on their own using network resources - (albeit with street-level accuracy at best). - - - - diff --git a/Release/share/glib-2.0/schemas/org.gnome.system.proxy.gschema.xml b/Release/share/glib-2.0/schemas/org.gnome.system.proxy.gschema.xml deleted file mode 100644 index a72ef41..0000000 --- a/Release/share/glib-2.0/schemas/org.gnome.system.proxy.gschema.xml +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - 'none' - Proxy configuration mode - - Select the proxy configuration mode. Supported values are "none", - "manual", "auto". - - If this is "none", then proxies are not used. - - If it is "auto", the autoconfiguration URL described by the - "autoconfig-url" key is used. - - If it is "manual", then the proxies described by - "/system/proxy/http", "/system/proxy/https", - "/system/proxy/ftp" and "/system/proxy/socks" will be used. - Each of the 4 proxy types is enabled if its "host" key is - non-empty and its "port" key is non-0. - - If an http proxy is configured, but an https proxy is not, - then the http proxy is also used for https. - - If a SOCKS proxy is configured, it is used for all protocols, - except that the http, https, and ftp proxy settings override - it for those protocols only. - - - - '' - Automatic proxy configuration URL - - URL that provides proxy configuration values. When mode is - "auto", this URL is used to look up proxy information for all - protocols. - - - - [ 'localhost', '127.0.0.0/8', '::1' ] - Non-proxy hosts - - This key contains a list of hosts which are connected to directly, - rather than via the proxy (if it is active). The values can be - hostnames, domains (using an initial wildcard like *.foo.com), IP host - addresses (both IPv4 and IPv6) and network addresses with a netmask - (something like 192.168.0.0/24). - - - - true - Unused; ignore - - This key is not used, and should not be read or modified. - - - - - - false - Unused; ignore - - This key is not used; HTTP proxying is enabled when the host - key is non-empty and the port is non-0. - - - - '' - HTTP proxy host name - - The machine name to proxy HTTP through. - - - - - 8080 - HTTP proxy port - - The port on the machine defined by "/system/proxy/http/host" that you - proxy through. - - - - false - Authenticate proxy server connections - - If true, then connections to the proxy server require authentication. - The username/password combo is defined by - "/system/proxy/http/authentication-user" and - "/system/proxy/http/authentication-password". - - This applies only to the http proxy; when using a separate - https proxy, there is currently no way to specify that it - should use authentication. - - - - '' - HTTP proxy username - - User name to pass as authentication when doing HTTP proxying. - - - - '' - HTTP proxy password - - Password to pass as authentication when doing HTTP proxying. - - - - - - '' - Secure HTTP proxy host name - - The machine name to proxy secure HTTP through. - - - - - 0 - Secure HTTP proxy port - - The port on the machine defined by "/system/proxy/https/host" that you - proxy through. - - - - - - '' - FTP proxy host name - - The machine name to proxy FTP through. - - - - - 0 - FTP proxy port - - The port on the machine defined by "/system/proxy/ftp/host" that you - proxy through. - - - - - - '' - SOCKS proxy host name - - The machine name to use as a SOCKS proxy. - - - - - 0 - SOCKS proxy port - - The port on the machine defined by "/system/proxy/socks/host" that you - proxy through. - - - - diff --git a/Release/share/glib-2.0/schemas/org.gtk.Demo.gschema.xml b/Release/share/glib-2.0/schemas/org.gtk.Demo.gschema.xml deleted file mode 100644 index 93be088..0000000 --- a/Release/share/glib-2.0/schemas/org.gtk.Demo.gschema.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - 'red' - - - (-1, -1) - - - false - - - false - - - - diff --git a/Release/share/glib-2.0/schemas/org.gtk.Settings.ColorChooser.gschema.xml b/Release/share/glib-2.0/schemas/org.gtk.Settings.ColorChooser.gschema.xml deleted file mode 100644 index 6270d33..0000000 --- a/Release/share/glib-2.0/schemas/org.gtk.Settings.ColorChooser.gschema.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - [] - Custom colors - - An array of custom colors to show in the color chooser. Each color is - specified as a tuple of four doubles, specifying RGBA values between - 0 and 1. - - - - (false,1.0,1.0,1.0,1.0) - The selected color - - The selected color, described as a tuple whose first member is a - boolean that is true if a color was selected, and the remaining - four members are four doubles, specifying RGBA values between - 0 and 1. - - - - - diff --git a/Release/share/glib-2.0/schemas/org.gtk.Settings.Debug.gschema.xml b/Release/share/glib-2.0/schemas/org.gtk.Settings.Debug.gschema.xml deleted file mode 100644 index abb985d..0000000 --- a/Release/share/glib-2.0/schemas/org.gtk.Settings.Debug.gschema.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - false - Enable inspector keybinding - - If this setting is true, GTK+ lets the user open an interactive - debugging window with a keybinding. The default shortcuts for - the keybinding are Control-Shift-I and Control-Shift-D. - - - - true - Inspector warning - - If this setting is true, GTK+ shows a warning before letting - the user use the interactive debugger. - - - - - - diff --git a/Release/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml b/Release/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml deleted file mode 100644 index c3753f2..0000000 --- a/Release/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "" - - - 'path-bar' - Location mode - - Controls whether the file chooser shows just a path bar, or a visible entry - for the filename as well, for the benefit of typing-oriented users. The - possible values for these modes are "path-bar" and "filename-entry". - - - - false - Show hidden files - - Controls whether the file chooser shows hidden files or not. - - - - false - Show folders first - - If set to true, then folders are shown before files in the list. - - - - false - Expand folders - This key is deprecated; do not use it. - - - true - Show file sizes - - Controls whether the file chooser shows a column with file sizes. - - - - 'name' - Sort column - - Can be one of "name", "modified", or "size". It controls - which of the columns in the file chooser is used for sorting - the list of files. - - - - 'ascending' - Sort order - - Can be one of the strings "ascending" or "descending". - - - - (-1, -1) - Window position - - The (x, y) coordinates of the upper-left corner of the GtkFileChooserDialog's - window. - - - - (-1, -1) - Window size - - The size (width, height) of the GtkFileChooserDialog's window, in pixels. - - - - 'recent' - Startup mode - - Either "recent" or "cwd"; controls whether the file chooser - starts up showing the list of recently-used files, or the - contents of the current working directory. - - - - 148 - Sidebar width - - Width in pixels of the file chooser's places sidebar. - - - - '24h' - Time format - - Whether the time is shown in 24h or 12h format. - - - - 'regular' - Date format - - The amount of detail to show in the Modified column. - - - - - diff --git a/Release/share/glib-2.0/schemas/org.gtk.exampleapp.gschema.xml b/Release/share/glib-2.0/schemas/org.gtk.exampleapp.gschema.xml deleted file mode 100644 index a6929a8..0000000 --- a/Release/share/glib-2.0/schemas/org.gtk.exampleapp.gschema.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - 'Monospace 12' - Font - The font to be used for content. - - - - - - - - 'none' - Transition - The transition to use when switching tabs. - - - false - Show words - Whether to show a word list in the sidebar - - - -- cgit v1.2.1