basic lightdm bindings made

This commit is contained in:
Raatty 2020-04-23 21:49:16 +12:00
commit 7f91dc1164
76 changed files with 631810 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
target

358
Cargo.lock generated Normal file
View File

@ -0,0 +1,358 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "anyhow"
version = "1.0.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9a60d744a80c30fcb657dfe2c1b22bcb3e814c1a1e3674f32bf5820b570fbff"
[[package]]
name = "bitflags"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
[[package]]
name = "either"
version = "1.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
[[package]]
name = "futures-channel"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0c77d04ce8edd9cb903932b608268b3fffec4163dc053b3b402bf47eac1f1a8"
dependencies = [
"futures-core",
]
[[package]]
name = "futures-core"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f25592f769825e89b92358db00d26f965761e094951ac44d3663ef25b7ac464a"
[[package]]
name = "futures-executor"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f674f3e1bcb15b37284a90cedf55afdba482ab061c407a9c0ebbd0f3109741ba"
dependencies = [
"futures-core",
"futures-task",
"futures-util",
]
[[package]]
name = "futures-io"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a638959aa96152c7a4cddf50fcb1e3fede0583b27157c26e67d6f99904090dc6"
[[package]]
name = "futures-macro"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a5081aa3de1f7542a794a397cde100ed903b0630152d0973479018fd85423a7"
dependencies = [
"proc-macro-hack",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "futures-task"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b0a34e53cf6cdcd0178aa573aed466b646eb3db769570841fda0c7ede375a27"
[[package]]
name = "futures-util"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22766cf25d64306bedf0384da004d05c9974ab104fcc4528f1236181c18004c5"
dependencies = [
"futures-core",
"futures-macro",
"futures-task",
"pin-utils",
"proc-macro-hack",
"proc-macro-nested",
"slab",
]
[[package]]
name = "gio"
version = "0.8.1"
source = "git+https://github.com/gtk-rs/gio#fb5777a7ab69a0a87b56ed85615adc4f46854f89"
dependencies = [
"bitflags",
"futures-channel",
"futures-core",
"futures-io",
"futures-util",
"gio-sys",
"glib",
"glib-sys",
"gobject-sys",
"libc",
"once_cell",
]
[[package]]
name = "gio-sys"
version = "0.9.1"
source = "git+https://github.com/gtk-rs/sys#6bd0cab694a0b446d5fe530cd87bf2b499f065ff"
dependencies = [
"glib-sys",
"gobject-sys",
"libc",
"pkg-config",
]
[[package]]
name = "glib"
version = "0.9.3"
source = "git+https://github.com/gtk-rs/glib#b5b4df5dc7ca52af170aafd18203bfdd42ca5608"
dependencies = [
"bitflags",
"futures-channel",
"futures-core",
"futures-executor",
"futures-task",
"futures-util",
"glib-macros",
"glib-sys",
"gobject-sys",
"libc",
"once_cell",
]
[[package]]
name = "glib-macros"
version = "0.9.0"
source = "git+https://github.com/gtk-rs/glib#b5b4df5dc7ca52af170aafd18203bfdd42ca5608"
dependencies = [
"anyhow",
"heck",
"itertools",
"proc-macro-crate",
"proc-macro-error",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "glib-sys"
version = "0.9.1"
source = "git+https://github.com/gtk-rs/sys#6bd0cab694a0b446d5fe530cd87bf2b499f065ff"
dependencies = [
"libc",
"pkg-config",
]
[[package]]
name = "gobject-sys"
version = "0.9.1"
source = "git+https://github.com/gtk-rs/sys#6bd0cab694a0b446d5fe530cd87bf2b499f065ff"
dependencies = [
"glib-sys",
"libc",
"pkg-config",
]
[[package]]
name = "heck"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
dependencies = [
"unicode-segmentation",
]
[[package]]
name = "itertools"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
dependencies = [
"either",
]
[[package]]
name = "libc"
version = "0.2.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005"
[[package]]
name = "light-dm-sys"
version = "0.0.1"
dependencies = [
"gio-sys",
"glib-sys",
"gobject-sys",
"libc",
"pkg-config",
]
[[package]]
name = "lightdm"
version = "0.1.0"
dependencies = [
"gio",
"gio-sys",
"glib",
"glib-sys",
"gobject-sys",
"libc",
"light-dm-sys",
"once_cell",
]
[[package]]
name = "once_cell"
version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1c601810575c99596d4afc46f78a678c80105117c379eb3650cf99b8a21ce5b"
[[package]]
name = "pin-utils"
version = "0.1.0-alpha.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587"
[[package]]
name = "pkg-config"
version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
[[package]]
name = "proc-macro-crate"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e10d4b51f154c8a7fb96fd6dad097cb74b863943ec010ac94b9fd1be8861fe1e"
dependencies = [
"toml",
]
[[package]]
name = "proc-macro-error"
version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18f33027081eba0a6d8aba6d1b1c3a3be58cbb12106341c2d5759fcd9b5277e7"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote",
"syn",
"version_check",
]
[[package]]
name = "proc-macro-error-attr"
version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a5b4b77fdb63c1eca72173d68d24501c54ab1269409f6b672c85deb18af69de"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn-mid",
"version_check",
]
[[package]]
name = "proc-macro-hack"
version = "0.5.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d659fe7c6d27f25e9d80a1a094c223f5246f6a6596453e09d7229bf42750b63"
[[package]]
name = "proc-macro-nested"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e946095f9d3ed29ec38de908c22f95d9ac008e424c7bcae54c75a79c527c694"
[[package]]
name = "proc-macro2"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3"
dependencies = [
"unicode-xid",
]
[[package]]
name = "quote"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f"
dependencies = [
"proc-macro2",
]
[[package]]
name = "serde"
version = "1.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399"
[[package]]
name = "slab"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
[[package]]
name = "syn"
version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0df0eb663f387145cab623dea85b09c2c5b4b0aef44e945d928e682fce71bb03"
dependencies = [
"proc-macro2",
"quote",
"unicode-xid",
]
[[package]]
name = "syn-mid"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "toml"
version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
dependencies = [
"serde",
]
[[package]]
name = "unicode-segmentation"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
[[package]]
name = "unicode-xid"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
[[package]]
name = "version_check"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"

28
Cargo.toml Normal file
View File

@ -0,0 +1,28 @@
[package]
name = "lightdm"
version = "0.1.0"
authors = ["Raatty <me@raatty.club>"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
libc = "0.2"
once_cell = "1.3.1"
[dependencies.light-dm-sys]
path = "./lightdm-sys"
[dependencies.glib]
git = "https://github.com/gtk-rs/glib"
[dependencies.glib-sys]
git = "https://github.com/gtk-rs/sys"
[dependencies.gobject-sys]
git = "https://github.com/gtk-rs/sys"
[dependencies.gio]
git = "https://github.com/gtk-rs/gio"
[dependencies.gio-sys]
git = "https://github.com/gtk-rs/sys"

36
Gir.toml Normal file
View File

@ -0,0 +1,36 @@
[options]
girs_dir = "./gir-files"
library = "LightDM"
version = "1"
min_cfg_version = "1"
target_path = "."
work_mode = "normal"
generate_safety_asserts = false
deprecate_by_min_version = true
single_version_file = true
generate = [
"LightDM.Greeter",
"LightDM.Language",
"LightDM.Layout",
"LightDM.Session",
"LightDM.User",
"LightDM.UserList",
"LightDM.GreeterError",
"LightDM.PromptType",
"LightDM.MessageType",
"LightDM.*"
]
manual = [
"GLib.Error",
"GLib.Quark",
"Gio.AsyncResult",
"Gio.AsyncReadyCallback",
"Gio.Cancellable"
]
builders = [
"LightDM.LanguageBuilder",
"LightDM.LayoutBuilder"
]

1
gir-files/.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1 @@
open_collective: gtk-rs

1
gir-files/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.rnc

13
gir-files/.travis.yml Normal file
View File

@ -0,0 +1,13 @@
dist: xenial
language: rust
addons:
apt:
packages:
- libgtk-3-dev
- libssh2-1-dev
script:
- git clone https://github.com/gtk-rs/gir
- git clone https://github.com/gtk-rs/sys
- cd gir && cargo build --release && cd ..
- ./gir/target/release/gir -c sys/conf/gir-gtk.toml -m sys -o sys/gtk-sys/ -d .
- ./gir/target/release/gir -c sys/conf/gir-gtk4.toml -m sys -o sys/gtk4-sys/ -d .

15248
gir-files/Atk-1.0.gir Normal file

File diff suppressed because it is too large Load Diff

21
gir-files/DBus-1.0.gir Normal file
View File

@ -0,0 +1,21 @@
<?xml version="1.0"?>
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2" c:identifier-prefixes="DBus" c:symbol-prefixes="DBus">
<package name="dbus-1"/>
<namespace name="DBus" version="1.0" c:prefix="DBus">
<enumeration name="BusType" c:type="DBusBusType">
<member name="session" value="0" c:identifier="DBUS_BUS_SESSION"/>
<member name="system" value="1" c:identifier="DBUS_BUS_SYSTEM"/>
<member name="starter" value="2" c:identifier="DBUS_BUS_STARTER"/>
</enumeration>
<record name="Connection" c:type="DBusConnection" glib:type-name="DBusConnection" glib:get-type="dbus_connection_get_type">
</record>
<record name="Error" c:type="DBusError">
</record>
<record name="Message" c:type="DBusMessage">
</record>
<record name="MessageIter" c:type="DBusMessageIter">
</record>
<record name="PendingCall" c:type="DBusPendingCall">
</record>
</namespace>
</repository>

View File

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2" c:identifier-prefixes="DBus" c:symbol-prefixes="DBus">
<include name="GObject" version="2.0"/>
<package name="dbus-glib-1"/>
<namespace name="DBusGLib" version="1.0" c:prefix="DBusG">
<record name="Connection" c:type="DBusGConnection"/>
<record name="MethodInvocation" c:type="DBusGMethodInvocation"/>
<class name="Proxy" c:type="DBusGProxy" parent="GObject.Object" glib:type-name="DBusGProxy" glib:get-type="dbus_g_proxy_get_type">
</class>
<record name="ProxyClass" c:type="DBusGProxyClass"/>
</namespace>
</repository>

File diff suppressed because it is too large Load Diff

27
gir-files/GL-1.0.gir Normal file
View File

@ -0,0 +1,27 @@
<?xml version="1.0"?>
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" version="1.2">
<namespace name="GL" version="1.0" c:identifier-prefixes="GL" c:symbol-prefixes="gl">
<record name="bitfield" c:type="GLbitfield"/>
<record name="charARB" c:type="GLcharARB"/>
<record name="clampf" c:type="GLclampf"/>
<record name="boolean" c:type="GLboolean"/>
<record name="enum" c:type="GLenum"/>
<record name="float" c:type="GLfloat"/>
<record name="handleARB" c:type="GLhandleARB"/>
<record name="int" c:type="GLint"/>
<record name="intptr" c:type="GLintptr"/>
<record name="sizei" c:type="GLsizei"/>
<record name="sizeiptr" c:type="GLsizeiptr"/>
<record name="uint" c:type="GLuint"/>
<record name="void" c:type="GLvoid"/>
<function name="InitNames" c:identifier="glInitNames">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
</parameters>
</function>
</namespace>
</repository>

51313
gir-files/GLib-2.0.gir Normal file

File diff suppressed because it is too large Load Diff

266
gir-files/GModule-2.0.gir Normal file
View File

@ -0,0 +1,266 @@
<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations. -->
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2">
<include name="GLib" version="2.0"/>
<package name="gmodule-2.0"/>
<c:include name="gmodule.h"/>
<namespace name="GModule" version="2.0" shared-library="libgmodule-2.0.so.0" c:identifier-prefixes="G" c:symbol-prefixes="g">
<record name="Module" c:type="GModule" disguised="1">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="5">The #GModule struct is an opaque data structure to represent a
[dynamically-loaded module][glib-Dynamic-Loading-of-Modules].
It should only be accessed via the following functions.</doc>
<source-position filename="gmodule.h" line="65"/>
<method name="close" c:identifier="g_module_close">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="176">Closes a module.</doc>
<source-position filename="gmodule.h" line="80"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="182">%TRUE on success</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="module" transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="178">a #GModule to close</doc>
<type name="Module" c:type="GModule*"/>
</instance-parameter>
</parameters>
</method>
<method name="make_resident" c:identifier="g_module_make_resident">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="195">Ensures that a module will never be unloaded.
Any future g_module_close() calls on the module will be ignored.</doc>
<source-position filename="gmodule.h" line="84"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="module" transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="197">a #GModule to make permanently resident</doc>
<type name="Module" c:type="GModule*"/>
</instance-parameter>
</parameters>
</method>
<method name="name" c:identifier="g_module_name">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="204">Returns the filename that the module was opened with.
If @module refers to the application itself, "main" is returned.</doc>
<source-position filename="gmodule.h" line="98"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="212">the filename of the module</doc>
<type name="utf8" c:type="const gchar*"/>
</return-value>
<parameters>
<instance-parameter name="module" transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="206">a #GModule</doc>
<type name="Module" c:type="GModule*"/>
</instance-parameter>
</parameters>
</method>
<method name="symbol" c:identifier="g_module_symbol">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="249">Gets a symbol pointer from a module, such as one exported
by #G_MODULE_EXPORT. Note that a valid symbol can be %NULL.</doc>
<source-position filename="gmodule.h" line="92"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="258">%TRUE on success</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="module" transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="251">a #GModule</doc>
<type name="Module" c:type="GModule*"/>
</instance-parameter>
<parameter name="symbol_name" transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="252">the name of the symbol to find</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="symbol" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="253">returns the pointer to the symbol value</doc>
<type name="gpointer" c:type="gpointer*"/>
</parameter>
</parameters>
</method>
<function name="build_path" c:identifier="g_module_build_path">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="150">A portable way to build the filename of a module. The platform-specific
prefix and suffix are added to the filename, if needed, and the result
is added to the directory, using the correct separator character.
The directory should specify the directory where the module can be found.
It can be %NULL or an empty string to indicate that the module is in a
standard platform-specific directory, though this is not recommended
since the wrong module may be found.
For example, calling g_module_build_path() on a Linux system with a
@directory of `/lib` and a @module_name of "mylibrary" will return
`/lib/libmylibrary.so`. On a Windows system, using `\Windows` as the
directory it will return `\Windows\mylibrary.dll`.</doc>
<source-position filename="gmodule.h" line="112"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="171">the complete path of the module, including the standard library
prefix and suffix. This should be freed when no longer needed</doc>
<type name="utf8" c:type="gchar*"/>
</return-value>
<parameters>
<parameter name="directory" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="152">the directory where the module is. This can be
%NULL or the empty string to indicate that the standard platform-specific
directories will be used, though that is not recommended</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="module_name" transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="155">the name of the module</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</function>
<function name="error" c:identifier="g_module_error">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="186">Gets a string describing the last module error.</doc>
<source-position filename="gmodule.h" line="88"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="191">a string describing the last module error</doc>
<type name="utf8" c:type="const gchar*"/>
</return-value>
</function>
<function name="open" c:identifier="g_module_open" introspectable="0">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="216">Opens a module. If the module has already been opened,
its reference count is incremented.
First of all g_module_open() tries to open @file_name as a module.
If that fails and @file_name has the ".la"-suffix (and is a libtool
archive) it tries to open the corresponding module. If that fails
and it doesn't have the proper module suffix for the platform
(#G_MODULE_SUFFIX), this suffix will be appended and the corresponding
module will be opended. If that fails and @file_name doesn't have the
".la"-suffix, this suffix is appended and g_module_open() tries to open
the corresponding module. If eventually that fails as well, %NULL is
returned.</doc>
<source-position filename="gmodule.h" line="75"/>
<return-value>
<doc xml:space="preserve" filename="gmodule-2.0.c" line="236">a #GModule on success, or %NULL on failure</doc>
<type name="Module" c:type="GModule*"/>
</return-value>
<parameters>
<parameter name="file_name" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="218">the name of the file containing the module, or %NULL
to obtain a #GModule representing the main program itself</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="flags" transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="220">the flags used for opening the module. This can be the
logical OR of any of the #GModuleFlags</doc>
<type name="ModuleFlags" c:type="GModuleFlags"/>
</parameter>
</parameters>
</function>
<function name="supported" c:identifier="g_module_supported">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="240">Checks if modules are supported on the current platform.</doc>
<source-position filename="gmodule.h" line="71"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="245">%TRUE if modules are supported</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
</function>
</record>
<callback name="ModuleCheckInit" c:type="GModuleCheckInit">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="14">Specifies the type of the module initialization function.
If a module contains a function named g_module_check_init() it is called
automatically when the module is loaded. It is passed the #GModule structure
and should return %NULL on success or a string describing the initialization
error.</doc>
<source-position filename="gmodule.h" line="66"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="24">%NULL on success, or a string describing the initialization error</doc>
<type name="utf8" c:type="const gchar*"/>
</return-value>
<parameters>
<parameter name="module" transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="16">the #GModule corresponding to the module which has just been loaded</doc>
<type name="Module" c:type="GModule*"/>
</parameter>
</parameters>
</callback>
<bitfield name="ModuleFlags" c:type="GModuleFlags">
<doc xml:space="preserve" filename="gmodule.h" line="44">Flags passed to g_module_open().
Note that these flags are not supported on all platforms.</doc>
<source-position filename="gmodule.h" line="63"/>
<member name="lazy" value="1" c:identifier="G_MODULE_BIND_LAZY">
<doc xml:space="preserve" filename="gmodule.h" line="46">specifies that symbols are only resolved when
needed. The default action is to bind all symbols when the module
is loaded.</doc>
</member>
<member name="local" value="2" c:identifier="G_MODULE_BIND_LOCAL">
<doc xml:space="preserve" filename="gmodule.h" line="49">specifies that symbols in the module should
not be added to the global name space. The default action on most
platforms is to place symbols in the module in the global name space,
which may cause conflicts with existing symbols.</doc>
</member>
<member name="mask" value="3" c:identifier="G_MODULE_BIND_MASK">
<doc xml:space="preserve" filename="gmodule.h" line="53">mask for all flags.</doc>
</member>
</bitfield>
<callback name="ModuleUnload" c:type="GModuleUnload">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="28">Specifies the type of the module function called when it is unloaded.
If a module contains a function named g_module_unload() it is called
automatically when the module is unloaded.
It is passed the #GModule structure.</doc>
<source-position filename="gmodule.h" line="67"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="module" transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="30">the #GModule about to be unloaded</doc>
<type name="Module" c:type="GModule*"/>
</parameter>
</parameters>
</callback>
<function name="module_build_path" c:identifier="g_module_build_path" moved-to="Module.build_path">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="150">A portable way to build the filename of a module. The platform-specific
prefix and suffix are added to the filename, if needed, and the result
is added to the directory, using the correct separator character.
The directory should specify the directory where the module can be found.
It can be %NULL or an empty string to indicate that the module is in a
standard platform-specific directory, though this is not recommended
since the wrong module may be found.
For example, calling g_module_build_path() on a Linux system with a
@directory of `/lib` and a @module_name of "mylibrary" will return
`/lib/libmylibrary.so`. On a Windows system, using `\Windows` as the
directory it will return `\Windows\mylibrary.dll`.</doc>
<source-position filename="gmodule.h" line="112"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="171">the complete path of the module, including the standard library
prefix and suffix. This should be freed when no longer needed</doc>
<type name="utf8" c:type="gchar*"/>
</return-value>
<parameters>
<parameter name="directory" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="152">the directory where the module is. This can be
%NULL or the empty string to indicate that the standard platform-specific
directories will be used, though that is not recommended</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="module_name" transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="155">the name of the module</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</function>
<function name="module_error" c:identifier="g_module_error" moved-to="Module.error">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="186">Gets a string describing the last module error.</doc>
<source-position filename="gmodule.h" line="88"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="191">a string describing the last module error</doc>
<type name="utf8" c:type="const gchar*"/>
</return-value>
</function>
<function name="module_supported" c:identifier="g_module_supported" moved-to="Module.supported">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="240">Checks if modules are supported on the current platform.</doc>
<source-position filename="gmodule.h" line="71"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="gmodule-2.0.c" line="245">%TRUE if modules are supported</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
</function>
</namespace>
</repository>

17432
gir-files/GObject-2.0.gir Normal file

File diff suppressed because it is too large Load Diff

27088
gir-files/Gdk-3.0.gir Normal file

File diff suppressed because it is too large Load Diff

22634
gir-files/Gdk-4.0.gir Normal file

File diff suppressed because it is too large Load Diff

3763
gir-files/GdkPixbuf-2.0.gir Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,276 @@
<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations. -->
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2">
<include name="GdkPixbuf" version="2.0"/>
<package name="gdk-pixbuf-2.0"/>
<c:include name="gdk-pixbuf/gdk-pixdata.h"/>
<namespace name="GdkPixdata" version="2.0" shared-library="libgdk_pixbuf-2.0.so.0" c:identifier-prefixes="Gdk" c:symbol-prefixes="gdk">
<constant name="PIXBUF_MAGIC_NUMBER" value="1197763408" c:type="GDK_PIXBUF_MAGIC_NUMBER">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="25">Magic number for #GdkPixdata structures.</doc>
<source-position filename="../gdk-pixbuf/gdk-pixdata.h" line="30"/>
<type name="gint" c:type="gint"/>
</constant>
<constant name="PIXDATA_HEADER_LENGTH" value="24" c:type="GDK_PIXDATA_HEADER_LENGTH">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="98">The length of a #GdkPixdata structure without the @pixel_data pointer.</doc>
<source-position filename="../gdk-pixbuf/gdk-pixdata.h" line="103"/>
<type name="gint" c:type="gint"/>
</constant>
<record name="Pixdata" c:type="GdkPixdata">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="67">A #GdkPixdata contains pixbuf information in a form suitable for
serialization and streaming.</doc>
<source-position filename="../gdk-pixbuf/gdk-pixdata.h" line="96"/>
<field name="magic" writable="1">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="69">magic number. A valid #GdkPixdata structure must have
#GDK_PIXBUF_MAGIC_NUMBER here.</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="length" writable="1">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="71">less than 1 to disable length checks, otherwise
#GDK_PIXDATA_HEADER_LENGTH + length of @pixel_data.</doc>
<type name="gint32" c:type="gint32"/>
</field>
<field name="pixdata_type" writable="1">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="73">information about colorspace, sample width and
encoding, in a #GdkPixdataType.</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="rowstride" writable="1">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="75">Distance in bytes between rows.</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="width" writable="1">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="76">Width of the image in pixels.</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="height" writable="1">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="77">Height of the image in pixels.</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="pixel_data" writable="1">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="78">@width x @height pixels, encoded according to @pixdata_type
and @rowstride.</doc>
<array zero-terminated="0" c:type="guint8*">
<type name="guint8"/>
</array>
</field>
<method name="deserialize" c:identifier="gdk_pixdata_deserialize" deprecated="1" deprecated-version="2.32" throws="1">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="186">Deserializes (reconstruct) a #GdkPixdata structure from a byte stream.
The byte stream consists of a straightforward writeout of the
#GdkPixdata fields in network byte order, plus the @pixel_data
bytes the structure points to.
The @pixdata contents are reconstructed byte by byte and are checked
for validity. This function may fail with %GDK_PIXBUF_ERROR_CORRUPT_IMAGE
or %GDK_PIXBUF_ERROR_UNKNOWN_TYPE.</doc>
<doc-deprecated xml:space="preserve">Use #GResource instead.</doc-deprecated>
<source-position filename="../gdk-pixbuf/gdk-pixdata.h" line="110"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="202">Upon successful deserialization %TRUE is returned,
%FALSE otherwise.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="pixdata" transfer-ownership="none">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="188">a #GdkPixdata structure to be filled in.</doc>
<type name="Pixdata" c:type="GdkPixdata*"/>
</instance-parameter>
<parameter name="stream_length" transfer-ownership="none">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="189">length of the stream used for deserialization.</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="stream" transfer-ownership="none">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="190">stream of bytes containing a
serialized #GdkPixdata structure.</doc>
<array length="0" zero-terminated="0" c:type="const guint8*">
<type name="guint8" c:type="guint8"/>
</array>
</parameter>
</parameters>
</method>
<method name="from_pixbuf" c:identifier="gdk_pixdata_from_pixbuf" introspectable="0" deprecated="1" deprecated-version="2.32">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="321">Converts a #GdkPixbuf to a #GdkPixdata. If @use_rle is %TRUE, the
pixel data is run-length encoded into newly-allocated memory and a
pointer to that memory is returned.</doc>
<doc-deprecated xml:space="preserve">Use #GResource instead.</doc-deprecated>
<source-position filename="../gdk-pixbuf/gdk-pixdata.h" line="115"/>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="331">If @use_rle is %TRUE, a pointer to the
newly-allocated memory for the run-length encoded pixel data,
otherwise %NULL.</doc>
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<instance-parameter name="pixdata" transfer-ownership="none">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="323">a #GdkPixdata to fill.</doc>
<type name="Pixdata" c:type="GdkPixdata*"/>
</instance-parameter>
<parameter name="pixbuf" transfer-ownership="none">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="324">the data to fill @pixdata with.</doc>
<type name="GdkPixbuf.Pixbuf" c:type="const GdkPixbuf*"/>
</parameter>
<parameter name="use_rle" transfer-ownership="none">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="325">whether to use run-length encoding for the pixel data.</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</method>
<method name="serialize" c:identifier="gdk_pixdata_serialize" deprecated="1" deprecated-version="2.32">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="97">Serializes a #GdkPixdata structure into a byte stream.
The byte stream consists of a straightforward writeout of the
#GdkPixdata fields in network byte order, plus the @pixel_data
bytes the structure points to.</doc>
<doc-deprecated xml:space="preserve">Use #GResource instead.</doc-deprecated>
<source-position filename="../gdk-pixbuf/gdk-pixdata.h" line="107"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="107">A
newly-allocated string containing the serialized #GdkPixdata
structure.</doc>
<array length="0" zero-terminated="0" c:type="guint8*">
<type name="guint8" c:type="guint8"/>
</array>
</return-value>
<parameters>
<instance-parameter name="pixdata" transfer-ownership="none">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="99">a valid #GdkPixdata structure to serialize.</doc>
<type name="Pixdata" c:type="const GdkPixdata*"/>
</instance-parameter>
<parameter name="stream_length_p" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="100">location to store the resulting stream length in.</doc>
<type name="guint" c:type="guint*"/>
</parameter>
</parameters>
</method>
<method name="to_csource" c:identifier="gdk_pixdata_to_csource" deprecated="1" deprecated-version="2.32">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="690">Generates C source code suitable for compiling images directly
into programs.
gdk-pixbuf ships with a program called
[gdk-pixbuf-csource][gdk-pixbuf-csource], which offers a command
line interface to this function.</doc>
<doc-deprecated xml:space="preserve">Use #GResource instead.</doc-deprecated>
<source-position filename="../gdk-pixbuf/gdk-pixdata.h" line="167"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="704">a newly-allocated string containing the C source form
of @pixdata.</doc>
<type name="GLib.String" c:type="GString*"/>
</return-value>
<parameters>
<instance-parameter name="pixdata" transfer-ownership="none">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="692">a #GdkPixdata to convert to C source.</doc>
<type name="Pixdata" c:type="GdkPixdata*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="693">used for naming generated data structures or macros.</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="dump_type" transfer-ownership="none">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="694">a #GdkPixdataDumpType determining the kind of C
source to be generated.</doc>
<type name="PixdataDumpType" c:type="GdkPixdataDumpType"/>
</parameter>
</parameters>
</method>
</record>
<bitfield name="PixdataDumpType" c:type="GdkPixdataDumpType">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="122">An enumeration which is used by gdk_pixdata_to_csource() to
determine the form of C source to be generated. The three values
@GDK_PIXDATA_DUMP_PIXDATA_STREAM, @GDK_PIXDATA_DUMP_PIXDATA_STRUCT
and @GDK_PIXDATA_DUMP_MACROS are mutually exclusive, as are
@GDK_PIXBUF_DUMP_GTYPES and @GDK_PIXBUF_DUMP_CTYPES. The remaining
elements are optional flags that can be freely added.</doc>
<source-position filename="../gdk-pixbuf/gdk-pixdata.h" line="163"/>
<member name="pixdata_stream" value="0" c:identifier="GDK_PIXDATA_DUMP_PIXDATA_STREAM">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="124">Generate pixbuf data stream (a single
string containing a serialized #GdkPixdata structure in network byte
order).</doc>
</member>
<member name="pixdata_struct" value="1" c:identifier="GDK_PIXDATA_DUMP_PIXDATA_STRUCT">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="127">Generate #GdkPixdata structure (needs
the #GdkPixdata structure definition from gdk-pixdata.h).</doc>
</member>
<member name="macros" value="2" c:identifier="GDK_PIXDATA_DUMP_MACROS">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="129">Generate &lt;function&gt;*_ROWSTRIDE&lt;/function&gt;,
&lt;function&gt;*_WIDTH&lt;/function&gt;, &lt;function&gt;*_HEIGHT&lt;/function&gt;,
&lt;function&gt;*_BYTES_PER_PIXEL&lt;/function&gt; and
&lt;function&gt;*_RLE_PIXEL_DATA&lt;/function&gt; or &lt;function&gt;*_PIXEL_DATA&lt;/function&gt;
macro definitions for the image.</doc>
</member>
<member name="gtypes" value="0" c:identifier="GDK_PIXDATA_DUMP_GTYPES">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="134">Generate GLib data types instead of
standard C data types.</doc>
</member>
<member name="ctypes" value="256" c:identifier="GDK_PIXDATA_DUMP_CTYPES">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="136">Generate standard C data types instead of
GLib data types.</doc>
</member>
<member name="static" value="512" c:identifier="GDK_PIXDATA_DUMP_STATIC">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="138">Generate static symbols.</doc>
</member>
<member name="const" value="1024" c:identifier="GDK_PIXDATA_DUMP_CONST">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="139">Generate const symbols.</doc>
</member>
<member name="rle_decoder" value="65536" c:identifier="GDK_PIXDATA_DUMP_RLE_DECODER">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="140">Provide a &lt;function&gt;*_RUN_LENGTH_DECODE(image_buf, rle_data, size, bpp)&lt;/function&gt;
macro definition to decode run-length encoded image data.</doc>
</member>
</bitfield>
<bitfield name="PixdataType" c:type="GdkPixdataType">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="32">An enumeration containing three sets of flags for a #GdkPixdata struct:
one for the used colorspace, one for the width of the samples and one
for the encoding of the pixel data.</doc>
<source-position filename="../gdk-pixbuf/gdk-pixdata.h" line="65"/>
<member name="color_type_rgb" value="1" c:identifier="GDK_PIXDATA_COLOR_TYPE_RGB">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="34">each pixel has red, green and blue samples.</doc>
</member>
<member name="color_type_rgba" value="2" c:identifier="GDK_PIXDATA_COLOR_TYPE_RGBA">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="35">each pixel has red, green and blue samples
and an alpha value.</doc>
</member>
<member name="color_type_mask" value="255" c:identifier="GDK_PIXDATA_COLOR_TYPE_MASK">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="37">mask for the colortype flags of the enum.</doc>
</member>
<member name="sample_width_8" value="65536" c:identifier="GDK_PIXDATA_SAMPLE_WIDTH_8">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="38">each sample has 8 bits.</doc>
</member>
<member name="sample_width_mask" value="983040" c:identifier="GDK_PIXDATA_SAMPLE_WIDTH_MASK">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="39">mask for the sample width flags of the enum.</doc>
</member>
<member name="encoding_raw" value="16777216" c:identifier="GDK_PIXDATA_ENCODING_RAW">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="40">the pixel data is in raw form.</doc>
</member>
<member name="encoding_rle" value="33554432" c:identifier="GDK_PIXDATA_ENCODING_RLE">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="41">the pixel data is run-length encoded. Runs may
be up to 127 bytes long; their length is stored in a single byte
preceding the pixel data for the run. If a run is constant, its length
byte has the high bit set and the pixel data consists of a single pixel
which must be repeated.</doc>
</member>
<member name="encoding_mask" value="251658240" c:identifier="GDK_PIXDATA_ENCODING_MASK">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.h" line="46">mask for the encoding flags of the enum.</doc>
</member>
</bitfield>
<function name="pixbuf_from_pixdata" c:identifier="gdk_pixbuf_from_pixdata" deprecated="1" deprecated-version="2.32" throws="1">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="420">Converts a #GdkPixdata to a #GdkPixbuf. If @copy_pixels is %TRUE or
if the pixel data is run-length-encoded, the pixel data is copied into
newly-allocated memory; otherwise it is reused.</doc>
<doc-deprecated xml:space="preserve">Use #GResource instead.</doc-deprecated>
<source-position filename="../gdk-pixbuf/gdk-pixdata.h" line="119"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="431">a new #GdkPixbuf.</doc>
<type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
</return-value>
<parameters>
<parameter name="pixdata" transfer-ownership="none">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="422">a #GdkPixdata to convert into a #GdkPixbuf.</doc>
<type name="Pixdata" c:type="const GdkPixdata*"/>
</parameter>
<parameter name="copy_pixels" transfer-ownership="none">
<doc xml:space="preserve" filename="../gdk-pixbuf/gdk-pixdata.c" line="423">whether to copy raw pixel data; run-length encoded
pixel data is always copied.</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</function>
</namespace>
</repository>

1953
gir-files/GdkX11-3.0.gir Normal file

File diff suppressed because it is too large Load Diff

1317
gir-files/GdkX11-4.0.gir Normal file

File diff suppressed because it is too large Load Diff

89008
gir-files/Gio-2.0.gir Normal file

File diff suppressed because it is too large Load Diff

7646
gir-files/Graphene-1.0.gir Normal file

File diff suppressed because it is too large Load Diff

2709
gir-files/Gsk-4.0.gir Normal file

File diff suppressed because it is too large Load Diff

154109
gir-files/Gtk-3.0.gir Normal file

File diff suppressed because it is too large Load Diff

112822
gir-files/Gtk-4.0.gir Normal file

File diff suppressed because it is too large Load Diff

13285
gir-files/GtkSource-3.0.gir Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,355 @@
<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations. -->
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2">
<include name="GObject" version="2.0"/>
<package name="javascriptcoregtk-4.0"/>
<c:include name="JavaScriptCore/JavaScript.h"/>
<namespace name="JavaScriptCore" version="4.0" shared-library="libjavascriptcoregtk-4.0.so.18" c:identifier-prefixes="JS" c:symbol-prefixes="JS">
<!-- Patches for incomplete type information in glib-compatible javascriptcore. -->
<callback name="Constructor" c:type="JSCConstructor">
<return-value transfer-ownership="full">
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<parameter name="args" transfer-ownership="none">
<type name="GLib.PtrArray" c:type="GPtrArray*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<callback name="ClassVariadicFunction" c:type="JSCClassVariadicFunction">
<return-value transfer-ownership="full">
<type name="Value" c:type="JSCValue*"/>
</return-value>
<parameters>
<parameter name="instance" transfer-ownership="none">
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="args" transfer-ownership="none">
<type name="GLib.PtrArray" c:type="GPtrArray*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<callback name="PropertyGetter" c:type="JSCPropertyGetter">
<return-value transfer-ownership="full">
<type name="Value" c:type="JSCValue*"/>
</return-value>
<parameters>
<parameter name="instance" transfer-ownership="none">
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<callback name="PropertySetter" c:type="JSCPropertySetter">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="instance" transfer-ownership="none">
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="Value" c:type="JSCValue*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<callback name="VariadicFunction" c:type="JSCVariadicFunction">
<return-value transfer-ownership="full">
<type name="Value" c:type="JSCValue*"/>
</return-value>
<parameters>
<parameter name="args" transfer-ownership="none">
<type name="GLib.PtrArray" c:type="GPtrArray*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<callback name="Getter" c:type="JSCGetter">
<return-value transfer-ownership="full">
<type name="Value" c:type="JSCValue*"/>
</return-value>
<parameters>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<callback name="Setter" c:type="JSCSetter">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="value" transfer-ownership="none">
<type name="Value" c:type="JSCValue*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<!-- Patches for non-glib javascriptcore that deprecated webkitgtk functions still reference. -->
<record name="GlobalContextRef" c:type="JSGlobalContextRef" deprecated="1" deprecated-version="2.22" disguised="1" foreign="1">
<method name="ref" c:identifier="JSGlobalContextRetain">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</instance-parameter>
</parameters>
</method>
<method name="unref" c:identifier="JSGlobalContextRelease">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</instance-parameter>
</parameters>
</method>
</record>
<record name="ValueRef" c:type="JSValueRef" deprecated="1" deprecated-version="2.22" disguised="1">
<function name="ValueIsArray" c:identifier="JSValueIsArray" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueProtect" c:type="JSValueProtect">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueUnprotect" c:type="JSValueUnprotect">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueIsBoolean" c:identifier="JSValueIsBoolean" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueIsDate" c:identifier="JSValueIsDate" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueIsObject" c:identifier="JSValueIsObject" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueIsNull" c:identifier="JSValueIsNull" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueIsNumber" c:identifier="JSValueIsNumber" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueIsString" c:identifier="JSValueIsString" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueIsUndefined" c:identifier="JSValueIsUndefined" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueToBoolean" c:identifier="JSValueToBoolean" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueToNumber" c:identifier="JSValueToNumber" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gdouble" c:type="gdouble"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
<parameter name="exception" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve">return location for a #JSCException, or %NULL to ignore</doc>
<type name="Exception" c:type="JSCException**"/>
</parameter>
</parameters>
</function>
<function name="ValueToStringCopy" c:identifier="JSValueToStringCopy">
<return-value transfer-ownership="none">
<type name="StringRef" c:type="JSStringRef"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
<parameter name="exception" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<type name="ValueRef" c:type="JSValueRef*"/>
</parameter>
</parameters>
</function>
</record>
<record name="StringRef" c:type="JSStringRef" deprecated="1" deprecated-version="2.22" disguised="1" foreign="1">
<method name="ref" c:identifier="JSStringRetain">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="string" transfer-ownership="none">
<type name="StringRef" c:type="JSStringRef"/>
</instance-parameter>
</parameters>
</method>
<method name="unref" c:identifier="JSStringRelease">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="string" transfer-ownership="none">
<type name="StringRef" c:type="JSStringRef"/>
</instance-parameter>
</parameters>
</method>
<method name="GetMaximumUTF8CStringSize" c:identifier="JSStringGetMaximumUTF8CStringSize">
<return-value transfer-ownership="none">
<type name="gsize" c:type="gsize"/>
</return-value>
<parameters>
<instance-parameter name="string" transfer-ownership="none">
<type name="StringRef" c:type="JSStringRef"/>
</instance-parameter>
</parameters>
</method>
<method name="GetUTF8CStringJSStringGetUTF8CString" c:identifier="JSStringGetUTF8CString">
<return-value transfer-ownership="none">
<type name="gsize" c:type="gsize"/>
</return-value>
<parameters>
<instance-parameter name="string" transfer-ownership="none">
<type name="StringRef" c:type="JSStringRef"/>
</instance-parameter>
<parameter name="buffer" direction="inout" caller-allocates="1" transfer-ownership="none">
<type name="utf8" c:type="char**"/>
</parameter>
<parameter name="buffer_size" transfer-ownership="none">
<type name="gsize" c:type="gsize"/>
</parameter>
</parameters>
</method>
</record>
</namespace>
</repository>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,84 @@
<xsl:stylesheet xmlns="http://www.gtk.org/introspection/core/1.0"
xmlns:gir="http://www.gtk.org/introspection/core/1.0"
xmlns:c="http://www.gtk.org/introspection/c/1.0"
xmlns:glib="http://www.gtk.org/introspection/glib/1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" indent="yes"/>
<!-- Insert non-glib types and additional callback types. -->
<xsl:template match="/gir:repository/gir:namespace[@name='JavaScriptCore' and not(./gir:record[@name='GlobalContextRef'])]">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:text>&#xa;</xsl:text>
<xsl:apply-templates select="document('JavaScriptCore-4.0-patch.gir')/gir:repository/gir:namespace/*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<!-- Patch up class callback types. -->
<xsl:template match="//gir:class[@name='Class']/gir:method[@name='add_constructor_variadic']//gir:parameter[@name='callback']/gir:type">
<xsl:copy>
<xsl:attribute name="name">Constructor</xsl:attribute>
<xsl:attribute name="c:type">JSCConstructor</xsl:attribute>
</xsl:copy>
</xsl:template>
<xsl:template match="//gir:class[@name='Class']/gir:method[@name='add_method_variadic']//gir:parameter[@name='callback']/gir:type">
<xsl:copy>
<xsl:attribute name="name">ClassVariadicFunction</xsl:attribute>
<xsl:attribute name="c:type">JSCClassVariadicFunction</xsl:attribute>
</xsl:copy>
</xsl:template>
<xsl:template match="//gir:class[@name='Class']/gir:method[@name='add_property']//gir:parameter[@name='getter']">
<xsl:copy>
<xsl:apply-templates select="@*[not(name()='scope') and not(name()='closure')]"/>
<xsl:attribute name="scope">notified</xsl:attribute>
<xsl:attribute name="closure">4</xsl:attribute>
<xsl:attribute name="destroy">5</xsl:attribute>
<xsl:text>&#xa;</xsl:text>
<xsl:apply-templates select="*[not(name()='type')]"/>
<xsl:text>&#xa;</xsl:text>
<type name="PropertyGetter" c:type="JSCPropertyGetter"/>
</xsl:copy>
</xsl:template>
<xsl:template match="//gir:class[@name='Class']/gir:method[@name='add_property']//gir:parameter[@name='setter']/gir:type">
<xsl:copy>
<xsl:attribute name="name">PropertySetter</xsl:attribute>
<xsl:attribute name="c:type">JSCPropertySetter</xsl:attribute>
</xsl:copy>
</xsl:template>
<!-- Patch up value callback types. -->
<xsl:template match="//gir:class[@name='Value']/gir:constructor[@name='new_function_variadic']//gir:parameter[@name='callback']/gir:type">
<xsl:copy>
<xsl:attribute name="name">VariadicFunction</xsl:attribute>
<xsl:attribute name="c:type">JSCVariadicFunction</xsl:attribute>
</xsl:copy>
</xsl:template>
<xsl:template match="//gir:class[@name='Value']/gir:method[@name='object_define_property_accessor']//gir:parameter[@name='getter']">
<xsl:copy>
<xsl:apply-templates select="@*[not(name()='scope') and not(name()='closure')]"/>
<xsl:attribute name="scope">notified</xsl:attribute>
<xsl:attribute name="closure">5</xsl:attribute>
<xsl:attribute name="destroy">6</xsl:attribute>
<xsl:text>&#xa;</xsl:text>
<xsl:apply-templates select="*[not(name()='type')]"/>
<xsl:text>&#xa;</xsl:text>
<type name="Getter" c:type="JSCGetter"/>
</xsl:copy>
</xsl:template>
<xsl:template match="//gir:class[@name='Value']/gir:method[@name='object_define_property_accessor']//gir:parameter[@name='setter']/gir:type">
<xsl:copy>
<xsl:attribute name="name">Setter</xsl:attribute>
<xsl:attribute name="c:type">JSCSetter</xsl:attribute>
</xsl:copy>
</xsl:template>
<!-- Identity template. -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>

3307
gir-files/LightDM-1.gir Normal file

File diff suppressed because it is too large Load Diff

12330
gir-files/Pango-1.0.gir Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,738 @@
<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations. -->
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2">
<include name="GObject" version="2.0"/>
<include name="Pango" version="1.0"/>
<include name="cairo" version="1.0"/>
<package name="pangocairo"/>
<c:include name="pango/pangocairo.h"/>
<namespace name="PangoCairo" version="1.0" shared-library="libpangocairo-1.0.so.0" c:identifier-prefixes="PangoCairo" c:symbol-prefixes="pango_cairo">
<interface name="Font" c:symbol-prefix="font" c:type="PangoCairoFont" version="1.18" glib:type-name="PangoCairoFont" glib:get-type="pango_cairo_font_get_type">
<doc xml:space="preserve" filename="../pango/pangocairo.h" line="30">#PangoCairoFont is an interface exported by fonts for
use with Cairo. The actual type of the font will depend
on the particular font technology Cairo was compiled to use.</doc>
<prerequisite name="Pango.Font"/>
<method name="get_scaled_font" c:identifier="pango_cairo_font_get_scaled_font" version="1.18">
<doc xml:space="preserve" filename="../pango/pangocairo-font.c" line="137">Gets the #cairo_scaled_font_t used by @font.
The scaled font can be referenced and kept using
cairo_scaled_font_reference().</doc>
<source-position filename="../pango/pangocairo.h" line="111"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../pango/pangocairo-font.c" line="145">the #cairo_scaled_font_t used by @font,
or %NULL if @font is %NULL.</doc>
<type name="cairo.ScaledFont" c:type="cairo_scaled_font_t*"/>
</return-value>
<parameters>
<instance-parameter name="font" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-font.c" line="139">a #PangoFont from a #PangoCairoFontMap</doc>
<type name="Font" c:type="PangoCairoFont*"/>
</instance-parameter>
</parameters>
</method>
</interface>
<interface name="FontMap" c:symbol-prefix="font_map" c:type="PangoCairoFontMap" version="1.10" glib:type-name="PangoCairoFontMap" glib:get-type="pango_cairo_font_map_get_type">
<doc xml:space="preserve" filename="../pango/pangocairo.h" line="44">#PangoCairoFontMap is an interface exported by font maps for
use with Cairo. The actual type of the font map will depend
on the particular font technology Cairo was compiled to use.</doc>
<prerequisite name="Pango.FontMap"/>
<function name="get_default" c:identifier="pango_cairo_font_map_get_default" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="159">Gets a default #PangoCairoFontMap to use with Cairo.
Note that the type of the returned object will depend
on the particular font backend Cairo was compiled to use;
You generally should only use the #PangoFontMap and
#PangoCairoFontMap interfaces on the returned object.
The default Cairo fontmap can be changed by using
pango_cairo_font_map_set_default(). This can be used to
change the Cairo font backend that the default fontmap
uses for example.
Note that since Pango 1.32.6, the default fontmap is per-thread.
Each thread gets its own default fontmap. In this way,
PangoCairo can be used safely from multiple threads.</doc>
<source-position filename="../pango/pangocairo.h" line="88"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="178">the default PangoCairo fontmap
for the current thread. This object is owned by Pango and must not be freed.</doc>
<type name="Pango.FontMap" c:type="PangoFontMap*"/>
</return-value>
</function>
<function name="new" c:identifier="pango_cairo_font_map_new" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="47">Creates a new #PangoCairoFontMap object; a fontmap is used
to cache information about available fonts, and holds
certain global parameters such as the resolution.
In most cases, you can use pango_cairo_font_map_get_default()
instead.
Note that the type of the returned object will depend
on the particular font backend Cairo was compiled to use;
You generally should only use the #PangoFontMap and
#PangoCairoFontMap interfaces on the returned object.
You can override the type of backend returned by using an
environment variable %PANGOCAIRO_BACKEND. Supported types,
based on your build, are fc (fontconfig), win32, and coretext.
If requested type is not available, NULL is returned. Ie.
this is only useful for testing, when at least two backends
are compiled in.</doc>
<source-position filename="../pango/pangocairo.h" line="84"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="68">the newly allocated #PangoFontMap,
which should be freed with g_object_unref().</doc>
<type name="Pango.FontMap" c:type="PangoFontMap*"/>
</return-value>
</function>
<function name="new_for_font_type" c:identifier="pango_cairo_font_map_new_for_font_type" version="1.18">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="113">Creates a new #PangoCairoFontMap object of the type suitable
to be used with cairo font backend of type @fonttype.
In most cases one should simply use @pango_cairo_font_map_new(),
or in fact in most of those cases, just use
@pango_cairo_font_map_get_default().</doc>
<source-position filename="../pango/pangocairo.h" line="86"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="124">the newly allocated
#PangoFontMap of suitable type which should be freed
with g_object_unref(), or %NULL if the requested
cairo font backend is not supported / compiled in.</doc>
<type name="Pango.FontMap" c:type="PangoFontMap*"/>
</return-value>
<parameters>
<parameter name="fonttype" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="115">desired #cairo_font_type_t</doc>
<type name="cairo.FontType" c:type="cairo_font_type_t"/>
</parameter>
</parameters>
</function>
<method name="create_context" c:identifier="pango_cairo_font_map_create_context" version="1.10" introspectable="0" deprecated="1" deprecated-version="1.22">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="270">Create a #PangoContext for the given fontmap.</doc>
<doc-deprecated xml:space="preserve">Use pango_font_map_create_context() instead.</doc-deprecated>
<source-position filename="../pango/pangocairo.h" line="101"/>
<return-value>
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="276">the newly created context; free with g_object_unref().</doc>
<type name="Pango.Context" c:type="PangoContext*"/>
</return-value>
<parameters>
<instance-parameter name="fontmap" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="272">a #PangoCairoFontMap</doc>
<type name="FontMap" c:type="PangoCairoFontMap*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_font_type" c:identifier="pango_cairo_font_map_get_font_type" version="1.18">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="290">Gets the type of Cairo font backend that @fontmap uses.</doc>
<source-position filename="../pango/pangocairo.h" line="92"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="296">the #cairo_font_type_t cairo font backend type</doc>
<type name="cairo.FontType" c:type="cairo_font_type_t"/>
</return-value>
<parameters>
<instance-parameter name="fontmap" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="292">a #PangoCairoFontMap</doc>
<type name="FontMap" c:type="PangoCairoFontMap*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_resolution" c:identifier="pango_cairo_font_map_get_resolution" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="252">Gets the resolution for the fontmap. See pango_cairo_font_map_set_resolution()</doc>
<source-position filename="../pango/pangocairo.h" line="98"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="258">the resolution in "dots per inch"</doc>
<type name="gdouble" c:type="double"/>
</return-value>
<parameters>
<instance-parameter name="fontmap" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="254">a #PangoCairoFontMap</doc>
<type name="FontMap" c:type="PangoCairoFontMap*"/>
</instance-parameter>
</parameters>
</method>
<method name="set_default" c:identifier="pango_cairo_font_map_set_default" version="1.22">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="197">Sets a default #PangoCairoFontMap to use with Cairo.
This can be used to change the Cairo font backend that the
default fontmap uses for example. The old default font map
is unreffed and the new font map referenced.
Note that since Pango 1.32.6, the default fontmap is per-thread.
This function only changes the default fontmap for
the current thread. Default fontmaps of exisiting threads
are not changed. Default fontmaps of any new threads will
still be created using pango_cairo_font_map_new().
A value of %NULL for @fontmap will cause the current default
font map to be released and a new default font
map to be created on demand, using pango_cairo_font_map_new().</doc>
<source-position filename="../pango/pangocairo.h" line="90"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="fontmap" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="199">The new default font map, or %NULL</doc>
<type name="FontMap" c:type="PangoCairoFontMap*"/>
</instance-parameter>
</parameters>
</method>
<method name="set_resolution" c:identifier="pango_cairo_font_map_set_resolution" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="230">Sets the resolution for the fontmap. This is a scale factor between
points specified in a #PangoFontDescription and Cairo units. The
default value is 96, meaning that a 10 point font will be 13
units high. (10 * 96. / 72. = 13.3).</doc>
<source-position filename="../pango/pangocairo.h" line="95"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="fontmap" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="232">a #PangoCairoFontMap</doc>
<type name="FontMap" c:type="PangoCairoFontMap*"/>
</instance-parameter>
<parameter name="dpi" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="233">the resolution in "dots per inch". (Physical inches aren't actually
involved; the terminology is conventional.)</doc>
<type name="gdouble" c:type="double"/>
</parameter>
</parameters>
</method>
</interface>
<callback name="ShapeRendererFunc" c:type="PangoCairoShapeRendererFunc">
<doc xml:space="preserve" filename="../pango/pangocairo.h" line="58">Function type for rendering attributes of type %PANGO_ATTR_SHAPE
with Pango's Cairo renderer.</doc>
<source-position filename="../pango/pangocairo.h" line="72"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo.h" line="60">a Cairo context with current point set to where the shape should
be rendered</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="attr" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo.h" line="62">the %PANGO_ATTR_SHAPE to render</doc>
<type name="Pango.AttrShape" c:type="PangoAttrShape*"/>
</parameter>
<parameter name="do_path" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo.h" line="63">whether only the shape path should be appended to current
path of @cr and no filling/stroking done. This will be set
to %TRUE when called from pango_cairo_layout_path() and
pango_cairo_layout_line_path() rendering functions.</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
<parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../pango/pangocairo.h" line="67">user data passed to pango_cairo_context_set_shape_renderer()</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<function name="context_get_font_options" c:identifier="pango_cairo_context_get_font_options" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="271">Retrieves any font rendering options previously set with
pango_cairo_context_set_font_options(). This function does not report options
that are derived from the target surface by pango_cairo_update_context()</doc>
<source-position filename="../pango/pangocairo.h" line="123"/>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="279">the font options previously set on the
context, or %NULL if no options have been set. This value is
owned by the context and must not be modified or freed.</doc>
<type name="cairo.FontOptions" c:type="const cairo_font_options_t*"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="273">a #PangoContext, from a pangocairo font map</doc>
<type name="Pango.Context" c:type="PangoContext*"/>
</parameter>
</parameters>
</function>
<function name="context_get_resolution" c:identifier="pango_cairo_context_get_resolution" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="203">Gets the resolution for the context. See pango_cairo_context_set_resolution()</doc>
<source-position filename="../pango/pangocairo.h" line="129"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="209">the resolution in "dots per inch". A negative value will
be returned if no resolution has previously been set.</doc>
<type name="gdouble" c:type="double"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="205">a #PangoContext, from a pangocairo font map</doc>
<type name="Pango.Context" c:type="PangoContext*"/>
</parameter>
</parameters>
</function>
<function name="context_get_shape_renderer" c:identifier="pango_cairo_context_get_shape_renderer" version="1.18" introspectable="0">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="364">Sets callback function for context to use for rendering attributes
of type %PANGO_ATTR_SHAPE. See #PangoCairoShapeRendererFunc for
details.
Retrieves callback function and associated user data for rendering
attributes of type %PANGO_ATTR_SHAPE as set by
pango_cairo_context_set_shape_renderer(), if any.</doc>
<source-position filename="../pango/pangocairo.h" line="137"/>
<return-value nullable="1">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="377">the shape rendering callback previously
set on the context, or %NULL if no shape rendering callback have
been set.</doc>
<type name="ShapeRendererFunc" c:type="PangoCairoShapeRendererFunc"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="366">a #PangoContext, from a pangocairo font map</doc>
<type name="Pango.Context" c:type="PangoContext*"/>
</parameter>
<parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="367">Pointer to #gpointer to return user data</doc>
<type name="gpointer" c:type="gpointer*"/>
</parameter>
</parameters>
</function>
<function name="context_set_font_options" c:identifier="pango_cairo_context_set_font_options" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="225">Sets the font options used when rendering text with this context.
These options override any options that pango_cairo_update_context()
derives from the target surface.</doc>
<source-position filename="../pango/pangocairo.h" line="120"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="227">a #PangoContext, from a pangocairo font map</doc>
<type name="Pango.Context" c:type="PangoContext*"/>
</parameter>
<parameter name="options" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="228">a #cairo_font_options_t, or %NULL to unset
any previously set options. A copy is made.</doc>
<type name="cairo.FontOptions" c:type="const cairo_font_options_t*"/>
</parameter>
</parameters>
</function>
<function name="context_set_resolution" c:identifier="pango_cairo_context_set_resolution" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="181">Sets the resolution for the context. This is a scale factor between
points specified in a #PangoFontDescription and Cairo units. The
default value is 96, meaning that a 10 point font will be 13
units high. (10 * 96. / 72. = 13.3).</doc>
<source-position filename="../pango/pangocairo.h" line="126"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="183">a #PangoContext, from a pangocairo font map</doc>
<type name="Pango.Context" c:type="PangoContext*"/>
</parameter>
<parameter name="dpi" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="184">the resolution in "dots per inch". (Physical inches aren't actually
involved; the terminology is conventional.) A 0 or negative value
means to use the resolution from the font map.</doc>
<type name="gdouble" c:type="double"/>
</parameter>
</parameters>
</function>
<function name="context_set_shape_renderer" c:identifier="pango_cairo_context_set_shape_renderer" version="1.18">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="329">Sets callback function for context to use for rendering attributes
of type %PANGO_ATTR_SHAPE. See #PangoCairoShapeRendererFunc for
details.</doc>
<source-position filename="../pango/pangocairo.h" line="132"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="331">a #PangoContext, from a pangocairo font map</doc>
<type name="Pango.Context" c:type="PangoContext*"/>
</parameter>
<parameter name="func" transfer-ownership="none" nullable="1" allow-none="1" scope="notified" closure="2" destroy="3">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="332">Callback function for rendering attributes of
type %PANGO_ATTR_SHAPE, or %NULL to disable shape rendering.</doc>
<type name="ShapeRendererFunc" c:type="PangoCairoShapeRendererFunc"/>
</parameter>
<parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="334">User data that will be passed to @func.</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="dnotify" transfer-ownership="none" scope="async">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="335">Callback that will be called when the
context is freed to release @data, or %NULL.</doc>
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</parameter>
</parameters>
</function>
<function name="create_context" c:identifier="pango_cairo_create_context" version="1.22">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="407">Creates a context object set up to match the current transformation
and target surface of the Cairo context. This context can then be
used to create a layout using pango_layout_new().
This function is a convenience function that creates a context using
the default font map, then updates it to @cr. If you just need to
create a layout for use with @cr and do not need to access #PangoContext
directly, you can use pango_cairo_create_layout() instead.</doc>
<source-position filename="../pango/pangocairo.h" line="143"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="420">the newly created #PangoContext. Free with
g_object_unref().</doc>
<type name="Pango.Context" c:type="PangoContext*"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="409">a Cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
</parameters>
</function>
<function name="create_layout" c:identifier="pango_cairo_create_layout" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="440">Creates a layout object set up to match the current transformation
and target surface of the Cairo context. This layout can then be
used for text measurement with functions like
pango_layout_get_size() or drawing with functions like
pango_cairo_show_layout(). If you change the transformation
or target surface for @cr, you need to call pango_cairo_update_layout()
This function is the most convenient way to use Cairo with Pango,
however it is slightly inefficient since it creates a separate
#PangoContext object for each layout. This might matter in an
application that was laying out large amounts of text.</doc>
<source-position filename="../pango/pangocairo.h" line="145"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="456">the newly created #PangoLayout. Free with
g_object_unref().</doc>
<type name="Pango.Layout" c:type="PangoLayout*"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="442">a Cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
</parameters>
</function>
<function name="error_underline_path" c:identifier="pango_cairo_error_underline_path" version="1.14">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1266">Add a squiggly line to the current path in the specified cairo context that
approximately covers the given rectangle in the style of an underline used
to indicate a spelling error. (The width of the underline is rounded to an
integer number of up/down segments and the resulting rectangle is centered
in the original rectangle)</doc>
<source-position filename="../pango/pangocairo.h" line="190"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1268">a Cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1269">The X coordinate of one corner of the rectangle</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1270">The Y coordinate of one corner of the rectangle</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1271">Non-negative width of the rectangle</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1272">Non-negative height of the rectangle</doc>
<type name="gdouble" c:type="double"/>
</parameter>
</parameters>
</function>
<function name="font_map_get_default" c:identifier="pango_cairo_font_map_get_default" moved-to="FontMap.get_default" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="159">Gets a default #PangoCairoFontMap to use with Cairo.
Note that the type of the returned object will depend
on the particular font backend Cairo was compiled to use;
You generally should only use the #PangoFontMap and
#PangoCairoFontMap interfaces on the returned object.
The default Cairo fontmap can be changed by using
pango_cairo_font_map_set_default(). This can be used to
change the Cairo font backend that the default fontmap
uses for example.
Note that since Pango 1.32.6, the default fontmap is per-thread.
Each thread gets its own default fontmap. In this way,
PangoCairo can be used safely from multiple threads.</doc>
<source-position filename="../pango/pangocairo.h" line="88"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="178">the default PangoCairo fontmap
for the current thread. This object is owned by Pango and must not be freed.</doc>
<type name="Pango.FontMap" c:type="PangoFontMap*"/>
</return-value>
</function>
<function name="font_map_new" c:identifier="pango_cairo_font_map_new" moved-to="FontMap.new" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="47">Creates a new #PangoCairoFontMap object; a fontmap is used
to cache information about available fonts, and holds
certain global parameters such as the resolution.
In most cases, you can use pango_cairo_font_map_get_default()
instead.
Note that the type of the returned object will depend
on the particular font backend Cairo was compiled to use;
You generally should only use the #PangoFontMap and
#PangoCairoFontMap interfaces on the returned object.
You can override the type of backend returned by using an
environment variable %PANGOCAIRO_BACKEND. Supported types,
based on your build, are fc (fontconfig), win32, and coretext.
If requested type is not available, NULL is returned. Ie.
this is only useful for testing, when at least two backends
are compiled in.</doc>
<source-position filename="../pango/pangocairo.h" line="84"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="68">the newly allocated #PangoFontMap,
which should be freed with g_object_unref().</doc>
<type name="Pango.FontMap" c:type="PangoFontMap*"/>
</return-value>
</function>
<function name="font_map_new_for_font_type" c:identifier="pango_cairo_font_map_new_for_font_type" moved-to="FontMap.new_for_font_type" version="1.18">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="113">Creates a new #PangoCairoFontMap object of the type suitable
to be used with cairo font backend of type @fonttype.
In most cases one should simply use @pango_cairo_font_map_new(),
or in fact in most of those cases, just use
@pango_cairo_font_map_get_default().</doc>
<source-position filename="../pango/pangocairo.h" line="86"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="124">the newly allocated
#PangoFontMap of suitable type which should be freed
with g_object_unref(), or %NULL if the requested
cairo font backend is not supported / compiled in.</doc>
<type name="Pango.FontMap" c:type="PangoFontMap*"/>
</return-value>
<parameters>
<parameter name="fonttype" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-fontmap.c" line="115">desired #cairo_font_type_t</doc>
<type name="cairo.FontType" c:type="cairo_font_type_t"/>
</parameter>
</parameters>
</function>
<function name="glyph_string_path" c:identifier="pango_cairo_glyph_string_path" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1201">Adds the glyphs in @glyphs to the current path in the specified
cairo context. The origin of the glyphs (the left edge of the baseline)
will be at the current point of the cairo context.</doc>
<source-position filename="../pango/pangocairo.h" line="179"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1203">a Cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1204">a #PangoFont from a #PangoCairoFontMap</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
<parameter name="glyphs" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1205">a #PangoGlyphString</doc>
<type name="Pango.GlyphString" c:type="PangoGlyphString*"/>
</parameter>
</parameters>
</function>
<function name="layout_line_path" c:identifier="pango_cairo_layout_line_path" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1224">Adds the text in #PangoLayoutLine to the current path in the
specified cairo context. The origin of the glyphs (the left edge
of the line) will be at the current point of the cairo context.</doc>
<source-position filename="../pango/pangocairo.h" line="183"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1226">a Cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="line" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1227">a #PangoLayoutLine</doc>
<type name="Pango.LayoutLine" c:type="PangoLayoutLine*"/>
</parameter>
</parameters>
</function>
<function name="layout_path" c:identifier="pango_cairo_layout_path" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1245">Adds the text in a #PangoLayout to the current path in the
specified cairo context. The top-left corner of the #PangoLayout
will be at the current point of the cairo context.</doc>
<source-position filename="../pango/pangocairo.h" line="186"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1247">a Cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1248">a Pango layout</doc>
<type name="Pango.Layout" c:type="PangoLayout*"/>
</parameter>
</parameters>
</function>
<function name="show_error_underline" c:identifier="pango_cairo_show_error_underline" version="1.14">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1172">Draw a squiggly line in the specified cairo context that approximately
covers the given rectangle in the style of an underline used to indicate a
spelling error. (The width of the underline is rounded to an integer
number of up/down segments and the resulting rectangle is centered in the
original rectangle)</doc>
<source-position filename="../pango/pangocairo.h" line="169"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1174">a Cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1175">The X coordinate of one corner of the rectangle</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1176">The Y coordinate of one corner of the rectangle</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1177">Non-negative width of the rectangle</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1178">Non-negative height of the rectangle</doc>
<type name="gdouble" c:type="double"/>
</parameter>
</parameters>
</function>
<function name="show_glyph_item" c:identifier="pango_cairo_show_glyph_item" version="1.22">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1099">Draws the glyphs in @glyph_item in the specified cairo context,
embedding the text associated with the glyphs in the output if the
output format supports it (PDF for example), otherwise it acts
similar to pango_cairo_show_glyph_string().
The origin of the glyphs (the left edge of the baseline) will
be drawn at the current point of the cairo context.
Note that @text is the start of the text for layout, which is then
indexed by &lt;literal&gt;@glyph_item-&gt;item-&gt;offset&lt;/literal&gt;.</doc>
<source-position filename="../pango/pangocairo.h" line="158"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1101">a Cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="text" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1102">the UTF-8 text that @glyph_item refers to</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="glyph_item" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1103">a #PangoGlyphItem</doc>
<type name="Pango.GlyphItem" c:type="PangoGlyphItem*"/>
</parameter>
</parameters>
</function>
<function name="show_glyph_string" c:identifier="pango_cairo_show_glyph_string" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1075">Draws the glyphs in @glyphs in the specified cairo context.
The origin of the glyphs (the left edge of the baseline) will
be drawn at the current point of the cairo context.</doc>
<source-position filename="../pango/pangocairo.h" line="154"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1077">a Cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1078">a #PangoFont from a #PangoCairoFontMap</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
<parameter name="glyphs" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1079">a #PangoGlyphString</doc>
<type name="Pango.GlyphString" c:type="PangoGlyphString*"/>
</parameter>
</parameters>
</function>
<function name="show_layout" c:identifier="pango_cairo_show_layout" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1151">Draws a #PangoLayout in the specified cairo context.
The top-left corner of the #PangoLayout will be drawn
at the current point of the cairo context.</doc>
<source-position filename="../pango/pangocairo.h" line="165"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1153">a Cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1154">a Pango layout</doc>
<type name="Pango.Layout" c:type="PangoLayout*"/>
</parameter>
</parameters>
</function>
<function name="show_layout_line" c:identifier="pango_cairo_show_layout_line" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1130">Draws a #PangoLayoutLine in the specified cairo context.
The origin of the glyphs (the left edge of the line) will
be drawn at the current point of the cairo context.</doc>
<source-position filename="../pango/pangocairo.h" line="162"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1132">a Cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="line" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-render.c" line="1133">a #PangoLayoutLine</doc>
<type name="Pango.LayoutLine" c:type="PangoLayoutLine*"/>
</parameter>
</parameters>
</function>
<function name="update_context" c:identifier="pango_cairo_update_context" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="158">Updates a #PangoContext previously created for use with Cairo to
match the current transformation and target surface of a Cairo
context. If any layouts have been created for the context,
it's necessary to call pango_layout_context_changed() on those
layouts.</doc>
<source-position filename="../pango/pangocairo.h" line="116"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="160">a Cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="161">a #PangoContext, from a pangocairo font map</doc>
<type name="Pango.Context" c:type="PangoContext*"/>
</parameter>
</parameters>
</function>
<function name="update_layout" c:identifier="pango_cairo_update_layout" version="1.10">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="476">Updates the private #PangoContext of a #PangoLayout created with
pango_cairo_create_layout() to match the current transformation
and target surface of a Cairo context.</doc>
<source-position filename="../pango/pangocairo.h" line="147"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="cr" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="478">a Cairo context</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangocairo-context.c" line="479">a #PangoLayout, from pango_cairo_create_layout()</doc>
<type name="Pango.Layout" c:type="PangoLayout*"/>
</parameter>
</parameters>
</function>
</namespace>
</repository>

338
gir-files/PangoFT2-1.0.gir Normal file
View File

@ -0,0 +1,338 @@
<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations. -->
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2">
<include name="GObject" version="2.0"/>
<include name="Pango" version="1.0"/>
<include name="cairo" version="1.0"/>
<include name="fontconfig" version="2.0"/>
<include name="freetype2" version="2.0"/>
<package name="pangoft2"/>
<c:include name="pango/pangoft2.h"/>
<namespace name="PangoFT2" version="1.0" shared-library="libpangoft2-1.0.so.0" c:identifier-prefixes="PangoFT2" c:symbol-prefixes="pango_ft2">
<class name="FontMap" c:symbol-prefix="font_map" c:type="PangoFT2FontMap" parent="Pango.FontMap" glib:type-name="PangoFT2FontMap" glib:get-type="pango_ft2_font_map_get_type">
<constructor name="new" c:identifier="pango_ft2_font_map_new">
<source-position filename="../pango/pangoft2.h" line="100"/>
<return-value transfer-ownership="full">
<type name="Pango.FontMap" c:type="PangoFontMap*"/>
</return-value>
</constructor>
<function name="for_display" c:identifier="pango_ft2_font_map_for_display" introspectable="0">
<source-position filename="../pango/pangoft2.h" line="125"/>
<return-value>
<type name="Pango.FontMap" c:type="PangoFontMap*"/>
</return-value>
</function>
<method name="create_context" c:identifier="pango_ft2_font_map_create_context" introspectable="0">
<source-position filename="../pango/pangoft2.h" line="114"/>
<return-value>
<type name="Pango.Context" c:type="PangoContext*"/>
</return-value>
<parameters>
<instance-parameter name="fontmap" transfer-ownership="none">
<type name="FontMap" c:type="PangoFT2FontMap*"/>
</instance-parameter>
</parameters>
</method>
<method name="set_default_substitute" c:identifier="pango_ft2_font_map_set_default_substitute">
<source-position filename="../pango/pangoft2.h" line="106"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="fontmap" transfer-ownership="none">
<type name="FontMap" c:type="PangoFT2FontMap*"/>
</instance-parameter>
<parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2">
<type name="SubstituteFunc" c:type="PangoFT2SubstituteFunc"/>
</parameter>
<parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="notify" transfer-ownership="none" scope="async">
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</parameter>
</parameters>
</method>
<method name="set_resolution" c:identifier="pango_ft2_font_map_set_resolution">
<source-position filename="../pango/pangoft2.h" line="102"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="fontmap" transfer-ownership="none">
<type name="FontMap" c:type="PangoFT2FontMap*"/>
</instance-parameter>
<parameter name="dpi_x" transfer-ownership="none">
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="dpi_y" transfer-ownership="none">
<type name="gdouble" c:type="double"/>
</parameter>
</parameters>
</method>
<method name="substitute_changed" c:identifier="pango_ft2_font_map_substitute_changed">
<source-position filename="../pango/pangoft2.h" line="111"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="fontmap" transfer-ownership="none">
<type name="FontMap" c:type="PangoFT2FontMap*"/>
</instance-parameter>
</parameters>
</method>
</class>
<callback name="SubstituteFunc" c:type="PangoFT2SubstituteFunc">
<doc xml:space="preserve" filename="../pango/pangoft2.h" line="49">Function type for doing final config tweaking on prepared FcPatterns.</doc>
<source-position filename="../pango/pangoft2.h" line="56"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="pattern" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoft2.h" line="51">the &lt;type&gt;FcPattern&lt;/type&gt; to tweak.</doc>
<type name="fontconfig.Pattern" c:type="FcPattern*"/>
</parameter>
<parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../pango/pangoft2.h" line="52">user data.</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<function name="font_get_coverage" c:identifier="pango_ft2_font_get_coverage" introspectable="0">
<doc xml:space="preserve" filename="../pango/pangoft2.c" line="477">Gets the #PangoCoverage for a &lt;type&gt;PangoFT2Font&lt;/type&gt;. Use
pango_font_get_coverage() instead.</doc>
<source-position filename="../pango/pangoft2.h" line="138"/>
<return-value>
<doc xml:space="preserve" filename="../pango/pangoft2.c" line="485">a #PangoCoverage.</doc>
<type name="Pango.Coverage" c:type="PangoCoverage*"/>
</return-value>
<parameters>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoft2.c" line="479">a &lt;type&gt;PangoFT2Font&lt;/type&gt;.</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
<parameter name="language" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoft2.c" line="480">a language tag.</doc>
<type name="Pango.Language" c:type="PangoLanguage*"/>
</parameter>
</parameters>
</function>
<function name="font_get_face" c:identifier="pango_ft2_font_get_face" introspectable="0">
<doc xml:space="preserve" filename="../pango/pangoft2.c" line="161">Returns the native FreeType2 &lt;type&gt;FT_Face&lt;/type&gt; structure used for this #PangoFont.
This may be useful if you want to use FreeType2 functions directly.
Use pango_fc_font_lock_face() instead; when you are done with a
face from pango_fc_font_lock_face() you must call
pango_fc_font_unlock_face().</doc>
<source-position filename="../pango/pangoft2.h" line="136"/>
<return-value nullable="1">
<doc xml:space="preserve" filename="../pango/pangoft2.c" line="172">a pointer to a &lt;type&gt;FT_Face&lt;/type&gt;
structure, with the size set correctly, or %NULL if
@font is %NULL.</doc>
<type name="freetype2.Face" c:type="FT_Face"/>
</return-value>
<parameters>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoft2.c" line="163">a #PangoFont</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
</parameters>
</function>
<function name="font_get_kerning" c:identifier="pango_ft2_font_get_kerning">
<doc xml:space="preserve" filename="../pango/pangoft2.c" line="388">Retrieves kerning information for a combination of two glyphs.
Use pango_fc_font_kern_glyphs() instead.</doc>
<source-position filename="../pango/pangoft2.h" line="132"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoft2.c" line="398">The amount of kerning (in Pango units) to apply for
the given combination of glyphs.</doc>
<type name="gint" c:type="int"/>
</return-value>
<parameters>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoft2.c" line="390">a #PangoFont</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
<parameter name="left" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoft2.c" line="391">the left #PangoGlyph</doc>
<type name="Pango.Glyph" c:type="PangoGlyph"/>
</parameter>
<parameter name="right" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoft2.c" line="392">the right #PangoGlyph</doc>
<type name="Pango.Glyph" c:type="PangoGlyph"/>
</parameter>
</parameters>
</function>
<function name="get_context" c:identifier="pango_ft2_get_context" introspectable="0">
<source-position filename="../pango/pangoft2.h" line="122"/>
<return-value>
<type name="Pango.Context" c:type="PangoContext*"/>
</return-value>
<parameters>
<parameter name="dpi_x" transfer-ownership="none">
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="dpi_y" transfer-ownership="none">
<type name="gdouble" c:type="double"/>
</parameter>
</parameters>
</function>
<function name="get_unknown_glyph" c:identifier="pango_ft2_get_unknown_glyph">
<doc xml:space="preserve" filename="../pango/pangoft2.c" line="496">Return the index of a glyph suitable for drawing unknown characters with
@font, or %PANGO_GLYPH_EMPTY if no suitable glyph found.
If you want to draw an unknown-box for a character that is not covered
by the font,
use PANGO_GET_UNKNOWN_GLYPH() instead.</doc>
<source-position filename="../pango/pangoft2.h" line="130"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoft2.c" line="507">a glyph index into @font, or %PANGO_GLYPH_EMPTY</doc>
<type name="Pango.Glyph" c:type="PangoGlyph"/>
</return-value>
<parameters>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoft2.c" line="498">a #PangoFont</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
</parameters>
</function>
<function name="render" c:identifier="pango_ft2_render">
<source-position filename="../pango/pangoft2.h" line="62"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="bitmap" transfer-ownership="none">
<type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
</parameter>
<parameter name="font" transfer-ownership="none">
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
<parameter name="glyphs" transfer-ownership="none">
<type name="Pango.GlyphString" c:type="PangoGlyphString*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<type name="gint" c:type="gint"/>
</parameter>
</parameters>
</function>
<function name="render_layout" c:identifier="pango_ft2_render_layout">
<source-position filename="../pango/pangoft2.h" line="86"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="bitmap" transfer-ownership="none">
<type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
</parameter>
<parameter name="layout" transfer-ownership="none">
<type name="Pango.Layout" c:type="PangoLayout*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<function name="render_layout_line" c:identifier="pango_ft2_render_layout_line">
<source-position filename="../pango/pangoft2.h" line="76"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="bitmap" transfer-ownership="none">
<type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
</parameter>
<parameter name="line" transfer-ownership="none">
<type name="Pango.LayoutLine" c:type="PangoLayoutLine*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<function name="render_layout_line_subpixel" c:identifier="pango_ft2_render_layout_line_subpixel">
<source-position filename="../pango/pangoft2.h" line="81"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="bitmap" transfer-ownership="none">
<type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
</parameter>
<parameter name="line" transfer-ownership="none">
<type name="Pango.LayoutLine" c:type="PangoLayoutLine*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<function name="render_layout_subpixel" c:identifier="pango_ft2_render_layout_subpixel">
<source-position filename="../pango/pangoft2.h" line="91"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="bitmap" transfer-ownership="none">
<type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
</parameter>
<parameter name="layout" transfer-ownership="none">
<type name="Pango.Layout" c:type="PangoLayout*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<function name="render_transformed" c:identifier="pango_ft2_render_transformed">
<source-position filename="../pango/pangoft2.h" line="68"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="bitmap" transfer-ownership="none">
<type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
</parameter>
<parameter name="matrix" transfer-ownership="none">
<type name="Pango.Matrix" c:type="const PangoMatrix*"/>
</parameter>
<parameter name="font" transfer-ownership="none">
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
<parameter name="glyphs" transfer-ownership="none">
<type name="Pango.GlyphString" c:type="PangoGlyphString*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<function name="shutdown_display" c:identifier="pango_ft2_shutdown_display">
<source-position filename="../pango/pangoft2.h" line="127"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
</namespace>
</repository>

636
gir-files/PangoXft-1.0.gir Normal file
View File

@ -0,0 +1,636 @@
<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations. -->
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2">
<include name="GObject" version="2.0"/>
<include name="Pango" version="1.0"/>
<include name="PangoFT2" version="1.0"/>
<include name="xft" version="2.0"/>
<include name="xlib" version="2.0"/>
<package name="pangoxft"/>
<c:include name="pango/pangoxft.h"/>
<namespace name="PangoXft" version="1.0" shared-library="libpangoxft-1.0.so.0" c:identifier-prefixes="PangoXft" c:symbol-prefixes="pango_xft">
<class name="Font" c:symbol-prefix="font" c:type="PangoXftFont" parent="Pango.Font" glib:type-name="PangoXftFont" glib:get-type="pango_xft_font_get_type">
<doc xml:space="preserve" filename="../pango/pangoxft.h" line="57">#PangoXftFont is an implementation of #PangoFcFont using the Xft
library for rendering. It is used in conjunction with #PangoXftFontMap.</doc>
<function name="get_display" c:identifier="pango_xft_font_get_display" introspectable="0">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="520">Returns the X display of the XftFont of a font.</doc>
<source-position filename="../pango/pangoxft.h" line="116"/>
<return-value>
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="526">the X display of the XftFont associated to @font.</doc>
<type name="xlib.Display" c:type="Display*"/>
</return-value>
<parameters>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="522">a #PangoFont.</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
</parameters>
</function>
<function name="get_font" c:identifier="pango_xft_font_get_font" introspectable="0">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="502">Returns the XftFont of a font.</doc>
<source-position filename="../pango/pangoxft.h" line="114"/>
<return-value nullable="1">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="508">the XftFont associated to @font, or %NULL
if @font is %NULL.</doc>
<type name="xft.Font" c:type="XftFont*"/>
</return-value>
<parameters>
<parameter name="font" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="504">a #PangoFont.</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
</parameters>
</function>
<function name="get_glyph" c:identifier="pango_xft_font_get_glyph" version="1.2">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="604">Gets the glyph index for a given Unicode character
for @font. If you only want to determine
whether the font has the glyph, use pango_xft_font_has_char().
Use pango_fc_font_get_glyph() instead.</doc>
<source-position filename="../pango/pangoxft.h" line="123"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="615">the glyph index, or 0, if the Unicode
character does not exist in the font.</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="606">a #PangoFont for the Xft backend</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
<parameter name="wc" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="607">Unicode codepoint to look up</doc>
<type name="gunichar" c:type="gunichar"/>
</parameter>
</parameters>
</function>
<function name="get_unknown_glyph" c:identifier="pango_xft_font_get_unknown_glyph">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="542">Returns the index of a glyph suitable for drawing @wc as an
unknown character.
Use PANGO_GET_UNKNOWN_GLYPH() instead.</doc>
<source-position filename="../pango/pangoxft.h" line="129"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="552">a glyph index into @font.</doc>
<type name="Pango.Glyph" c:type="PangoGlyph"/>
</return-value>
<parameters>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="544">a #PangoFont.</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
<parameter name="wc" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="545">the Unicode character for which a glyph is needed.</doc>
<type name="gunichar" c:type="gunichar"/>
</parameter>
</parameters>
</function>
<function name="has_char" c:identifier="pango_xft_font_has_char" version="1.2">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="629">Determines whether @font has a glyph for the codepoint @wc.
Use pango_fc_font_has_char() instead.</doc>
<source-position filename="../pango/pangoxft.h" line="126"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="638">%TRUE if @font has the requested codepoint.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="631">a #PangoFont for the Xft backend</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
<parameter name="wc" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="632">Unicode codepoint to look up</doc>
<type name="gunichar" c:type="gunichar"/>
</parameter>
</parameters>
</function>
<function name="lock_face" c:identifier="pango_xft_font_lock_face" version="1.2" introspectable="0">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="563">Gets the FreeType &lt;type&gt;FT_Face&lt;/type&gt; associated with a font,
This face will be kept around until you call
pango_xft_font_unlock_face().
Use pango_fc_font_lock_face() instead.</doc>
<source-position filename="../pango/pangoxft.h" line="119"/>
<return-value>
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="573">the FreeType &lt;type&gt;FT_Face&lt;/type&gt; associated with @font.</doc>
<type name="freetype2.Face" c:type="FT_Face"/>
</return-value>
<parameters>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="565">a #PangoFont.</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
</parameters>
</function>
<function name="unlock_face" c:identifier="pango_xft_font_unlock_face" version="1.2">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="585">Releases a font previously obtained with
pango_xft_font_lock_face().
Use pango_fc_font_unlock_face() instead.</doc>
<source-position filename="../pango/pangoxft.h" line="121"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-font.c" line="587">a #PangoFont.</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
</parameters>
</function>
</class>
<class name="FontMap" c:symbol-prefix="font_map" c:type="PangoXftFontMap" parent="Pango.FontMap" glib:type-name="PangoXftFontMap" glib:get-type="pango_xft_font_map_get_type">
<doc xml:space="preserve" filename="../pango/pangoxft.h" line="44">#PangoXftFontMap is an implementation of #PangoFcFontMap suitable for
the Xft library as the renderer. It is used in to create fonts of
type #PangoXftFont.</doc>
</class>
<class name="Renderer" c:symbol-prefix="renderer" c:type="PangoXftRenderer" version="1.8" parent="Pango.Renderer" glib:type-name="PangoXftRenderer" glib:get-type="pango_xft_renderer_get_type" glib:type-struct="RendererClass">
<doc xml:space="preserve" filename="../pango/pangoxft-render.h" line="48">#PangoXftRenderer is a subclass of #PangoRenderer used for rendering
with Pango's Xft backend. It can be used directly, or it can be
further subclassed to modify exactly how drawing of individual
elements occurs.</doc>
<source-position filename="../pango/pangoxft-render.h" line="96"/>
<constructor name="new" c:identifier="pango_xft_renderer_new" version="1.8">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="904">Create a new #PangoXftRenderer to allow rendering Pango objects
with the Xft library. You must call pango_xft_renderer_set_draw() before
using the renderer.</doc>
<source-position filename="../pango/pangoxft-render.h" line="102"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="913">the newly created #PangoXftRenderer, which should
be freed with g_object_unref().</doc>
<type name="Pango.Renderer" c:type="PangoRenderer*"/>
</return-value>
<parameters>
<parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="906">an X display</doc>
<type name="xlib.Display" c:type="Display*"/>
</parameter>
<parameter name="screen" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="907">the index of the screen for @display to which rendering will be done</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</constructor>
<virtual-method name="composite_glyphs">
<source-position filename="../pango/pangoxft-render.h" line="92"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="xftrenderer" transfer-ownership="none">
<type name="Renderer" c:type="PangoXftRenderer*"/>
</instance-parameter>
<parameter name="xft_font" transfer-ownership="none">
<type name="xft.Font" c:type="XftFont*"/>
</parameter>
<parameter name="glyphs" transfer-ownership="none">
<type name="xft.GlyphSpec" c:type="XftGlyphSpec*"/>
</parameter>
<parameter name="n_glyphs" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="composite_trapezoids">
<source-position filename="../pango/pangoxft-render.h" line="88"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="xftrenderer" transfer-ownership="none">
<type name="Renderer" c:type="PangoXftRenderer*"/>
</instance-parameter>
<parameter name="part" transfer-ownership="none">
<type name="Pango.RenderPart" c:type="PangoRenderPart"/>
</parameter>
<parameter name="trapezoids" transfer-ownership="none">
<type name="xlib.XTrapezoid" c:type="XTrapezoid*"/>
</parameter>
<parameter name="n_trapezoids" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</virtual-method>
<method name="set_default_color" c:identifier="pango_xft_renderer_set_default_color" version="1.8">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="951">Sets the default foreground color for a #XftRenderer.</doc>
<source-position filename="../pango/pangoxft-render.h" line="108"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="xftrenderer" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="953">a #XftRenderer</doc>
<type name="Renderer" c:type="PangoXftRenderer*"/>
</instance-parameter>
<parameter name="default_color" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="954">the default foreground color</doc>
<type name="Pango.Color" c:type="PangoColor*"/>
</parameter>
</parameters>
</method>
<method name="set_draw" c:identifier="pango_xft_renderer_set_draw" version="1.8">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="932">Sets the #XftDraw object that the renderer is drawing to.
The renderer must not be currently active.</doc>
<source-position filename="../pango/pangoxft-render.h" line="105"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="xftrenderer" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="934">a #PangoXftRenderer</doc>
<type name="Renderer" c:type="PangoXftRenderer*"/>
</instance-parameter>
<parameter name="draw" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="935">a #XftDraw</doc>
<type name="xft.Draw" c:type="XftDraw*"/>
</parameter>
</parameters>
</method>
<property name="display" readable="0" writable="1" construct-only="1" transfer-ownership="none">
<type name="gpointer" c:type="gpointer"/>
</property>
<property name="screen" readable="0" writable="1" construct-only="1" transfer-ownership="none">
<type name="gint" c:type="gint"/>
</property>
<field name="parent_instance" readable="0" private="1">
<type name="Pango.Renderer" c:type="PangoRenderer"/>
</field>
<field name="display" readable="0" private="1">
<type name="xlib.Display" c:type="Display*"/>
</field>
<field name="screen" readable="0" private="1">
<type name="gint" c:type="int"/>
</field>
<field name="draw" readable="0" private="1">
<type name="xft.Draw" c:type="XftDraw*"/>
</field>
<field name="priv" readable="0" private="1">
<type name="RendererPrivate" c:type="PangoXftRendererPrivate*"/>
</field>
</class>
<record name="RendererClass" c:type="PangoXftRendererClass" glib:is-gtype-struct-for="Renderer" version="1.8">
<doc xml:space="preserve" filename="../pango/pangoxft-render.h" line="70">The class structure for #PangoXftRenderer</doc>
<source-position filename="../pango/pangoxft-render.h" line="96"/>
<field name="parent_class" readable="0" private="1">
<type name="Pango.RendererClass" c:type="PangoRendererClass"/>
</field>
<field name="composite_trapezoids">
<callback name="composite_trapezoids">
<source-position filename="../pango/pangoxft-render.h" line="88"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="xftrenderer" transfer-ownership="none">
<type name="Renderer" c:type="PangoXftRenderer*"/>
</parameter>
<parameter name="part" transfer-ownership="none">
<type name="Pango.RenderPart" c:type="PangoRenderPart"/>
</parameter>
<parameter name="trapezoids" transfer-ownership="none">
<type name="xlib.XTrapezoid" c:type="XTrapezoid*"/>
</parameter>
<parameter name="n_trapezoids" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</callback>
</field>
<field name="composite_glyphs">
<callback name="composite_glyphs">
<source-position filename="../pango/pangoxft-render.h" line="92"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="xftrenderer" transfer-ownership="none">
<type name="Renderer" c:type="PangoXftRenderer*"/>
</parameter>
<parameter name="xft_font" transfer-ownership="none">
<type name="xft.Font" c:type="XftFont*"/>
</parameter>
<parameter name="glyphs" transfer-ownership="none">
<type name="xft.GlyphSpec" c:type="XftGlyphSpec*"/>
</parameter>
<parameter name="n_glyphs" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</callback>
</field>
</record>
<record name="RendererPrivate" c:type="PangoXftRendererPrivate" disguised="1">
<source-position filename="../pango/pangoxft-render.h" line="39"/>
</record>
<callback name="SubstituteFunc" c:type="PangoXftSubstituteFunc">
<doc xml:space="preserve" filename="../pango/pangoxft.h" line="65">Function type for doing final config tweaking on prepared FcPatterns.</doc>
<source-position filename="../pango/pangoxft.h" line="72"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="pattern" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft.h" line="67">the FcPattern to tweak.</doc>
<type name="fontconfig.Pattern" c:type="FcPattern*"/>
</parameter>
<parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../pango/pangoxft.h" line="68">user data.</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<function name="get_context" c:identifier="pango_xft_get_context" introspectable="0" deprecated="1" deprecated-version="1.22">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="368">Retrieves a #PangoContext appropriate for rendering with
Xft fonts on the given screen of the given display.</doc>
<doc-deprecated xml:space="preserve">Use pango_xft_get_font_map() followed by
pango_font_map_create_context() instead.</doc-deprecated>
<source-position filename="../pango/pangoxft.h" line="82"/>
<return-value>
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="376">the new #PangoContext.</doc>
<type name="Pango.Context" c:type="PangoContext*"/>
</return-value>
<parameters>
<parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="370">an X display.</doc>
<type name="xlib.Display" c:type="Display*"/>
</parameter>
<parameter name="screen" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="371">an X screen.</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<function name="get_font_map" c:identifier="pango_xft_get_font_map" version="1.2">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="211">Returns the #PangoXftFontMap for the given display and screen.
The fontmap is owned by Pango and will be valid until
the display is closed.</doc>
<source-position filename="../pango/pangoxft.h" line="78"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="220">a #PangoFontMap object, owned by Pango.</doc>
<type name="Pango.FontMap" c:type="PangoFontMap*"/>
</return-value>
<parameters>
<parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="213">an X display</doc>
<type name="xlib.Display" c:type="Display*"/>
</parameter>
<parameter name="screen" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="214">the screen number of a screen within @display</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<function name="picture_render" c:identifier="pango_xft_picture_render">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="861">Renders a #PangoGlyphString onto an Xrender &lt;type&gt;Picture&lt;/type&gt; object.</doc>
<source-position filename="../pango/pangoxft-render.h" line="119"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="863">an X display</doc>
<type name="xlib.Display" c:type="Display*"/>
</parameter>
<parameter name="src_picture" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="864">the source picture to draw the string with</doc>
<type name="xlib.Picture" c:type="Picture"/>
</parameter>
<parameter name="dest_picture" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="865">the destination picture to draw the string onto</doc>
<type name="xlib.Picture" c:type="Picture"/>
</parameter>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="866">the font in which to draw the string</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
<parameter name="glyphs" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="867">the glyph string to draw</doc>
<type name="Pango.GlyphString" c:type="PangoGlyphString*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="868">the x position of start of string (in pixels)</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="869">the y position of baseline (in pixels)</doc>
<type name="gint" c:type="gint"/>
</parameter>
</parameters>
</function>
<function name="render" c:identifier="pango_xft_render">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="833">Renders a #PangoGlyphString onto an &lt;type&gt;XftDraw&lt;/type&gt; object wrapping an X drawable.</doc>
<source-position filename="../pango/pangoxft-render.h" line="112"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="draw" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="835">the &lt;type&gt;XftDraw&lt;/type&gt; object.</doc>
<type name="xft.Draw" c:type="XftDraw*"/>
</parameter>
<parameter name="color" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="836">the color in which to draw the string</doc>
<type name="xft.Color" c:type="XftColor*"/>
</parameter>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="837">the font in which to draw the string</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
<parameter name="glyphs" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="838">the glyph string to draw</doc>
<type name="Pango.GlyphString" c:type="PangoGlyphString*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="839">the x position of start of string (in pixels)</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="840">the y position of baseline (in pixels)</doc>
<type name="gint" c:type="gint"/>
</parameter>
</parameters>
</function>
<function name="render_layout" c:identifier="pango_xft_render_layout" version="1.8">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="710">Render a #PangoLayout onto a #XftDraw</doc>
<source-position filename="../pango/pangoxft-render.h" line="141"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="draw" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="712">an #XftDraw</doc>
<type name="xft.Draw" c:type="XftDraw*"/>
</parameter>
<parameter name="color" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="713">the foreground color in which to draw the layout
(may be overridden by color attributes)</doc>
<type name="xft.Color" c:type="XftColor*"/>
</parameter>
<parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="715">a #PangoLayout</doc>
<type name="Pango.Layout" c:type="PangoLayout*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="716">the X position of the left of the layout (in Pango units)</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="717">the Y position of the top of the layout (in Pango units)</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<function name="render_layout_line" c:identifier="pango_xft_render_layout_line" version="1.8">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="747">Render a #PangoLayoutLine onto a #XftDraw</doc>
<source-position filename="../pango/pangoxft-render.h" line="135"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="draw" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="749">an #XftDraw</doc>
<type name="xft.Draw" c:type="XftDraw*"/>
</parameter>
<parameter name="color" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="750">the foreground color in which to draw the layout line
(may be overridden by color attributes)</doc>
<type name="xft.Color" c:type="XftColor*"/>
</parameter>
<parameter name="line" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="752">a #PangoLayoutLine</doc>
<type name="Pango.LayoutLine" c:type="PangoLayoutLine*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="753">the x position of start of string (in Pango units)</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="754">the y position of baseline (in Pango units)</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<function name="render_transformed" c:identifier="pango_xft_render_transformed" version="1.8">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="784">Renders a #PangoGlyphString onto a #XftDraw, possibly
transforming the layed-out coordinates through a transformation
matrix. Note that the transformation matrix for @font is not
changed, so to produce correct rendering results, the @font
must have been loaded using a #PangoContext with an identical
transformation matrix to that passed in to this function.</doc>
<source-position filename="../pango/pangoxft-render.h" line="127"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="draw" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="786">an #XftDraw</doc>
<type name="xft.Draw" c:type="XftDraw*"/>
</parameter>
<parameter name="color" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="787">the color in which to draw the glyphs</doc>
<type name="xft.Color" c:type="XftColor*"/>
</parameter>
<parameter name="matrix" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="789">a #PangoMatrix, or %NULL to use an identity
transformation</doc>
<type name="Pango.Matrix" c:type="PangoMatrix*"/>
</parameter>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="788">the font in which to draw the string</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
<parameter name="glyphs" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="791">the glyph string to draw</doc>
<type name="Pango.GlyphString" c:type="PangoGlyphString*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="792">the x position of the start of the string (in Pango
units in user space coordinates)</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-render.c" line="794">the y position of the baseline (in Pango units
in user space coordinates)</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<function name="set_default_substitute" c:identifier="pango_xft_set_default_substitute" version="1.2">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="291">Sets a function that will be called to do final configuration
substitution on a #FcPattern before it is used to load
the font. This function can be used to do things like set
hinting and antialiasing options.</doc>
<source-position filename="../pango/pangoxft.h" line="90"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="293">an X Display</doc>
<type name="xlib.Display" c:type="Display*"/>
</parameter>
<parameter name="screen" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="294">the screen number of a screen within @display</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="func" transfer-ownership="none" scope="notified" closure="3" destroy="4">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="295">function to call to to do final config tweaking
on #FcPattern objects.</doc>
<type name="SubstituteFunc" c:type="PangoXftSubstituteFunc"/>
</parameter>
<parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="297">data to pass to @func</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="notify" transfer-ownership="none" scope="async">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="298">function to call when @data is no longer used.</doc>
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</parameter>
</parameters>
</function>
<function name="shutdown_display" c:identifier="pango_xft_shutdown_display" version="1.2">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="258">Release any resources that have been cached for the
combination of @display and @screen. Note that when the
X display is closed, resources are released automatically,
without needing to call this function.</doc>
<source-position filename="../pango/pangoxft.h" line="86"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="260">an X display</doc>
<type name="xlib.Display" c:type="Display*"/>
</parameter>
<parameter name="screen" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="261">the screen number of a screen within @display</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
<function name="substitute_changed" c:identifier="pango_xft_substitute_changed" version="1.2">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="330">Call this function any time the results of the
default substitution function set with
pango_xft_set_default_substitute() change.
That is, if your substitution function will return different
results for the same input pattern, you must call this function.</doc>
<source-position filename="../pango/pangoxft.h" line="96"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="332">an X Display</doc>
<type name="xlib.Display" c:type="Display*"/>
</parameter>
<parameter name="screen" transfer-ownership="none">
<doc xml:space="preserve" filename="../pango/pangoxft-fontmap.c" line="333">the screen number of a screen within @display</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>
</function>
</namespace>
</repository>

11
gir-files/README.md Normal file
View File

@ -0,0 +1,11 @@
# gir-files
This repository is used to generate all `gtk-rs` crates. It contains the definitions of the GNOME libraries' APIs.
If a new GTK version was released, you can update the files by doing so:
```bash
./dl.sh && ./fix.sh
```
Please don't forget to check that [`gir`](https://github.com/gtk-rs/gir) can still run with the new files since breaking changes can appear.

6240
gir-files/Secret-1.gir Normal file

File diff suppressed because it is too large Load Diff

21216
gir-files/Soup-2.4.gir Normal file

File diff suppressed because it is too large Load Diff

4333
gir-files/Vte-2.91.gir Normal file

File diff suppressed because it is too large Load Diff

795
gir-files/Vulkan-1.0.gir Normal file
View File

@ -0,0 +1,795 @@
<?xml version="1.0"?>
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" version="1.2">
<namespace name="Vulkan" version="1.0" c:identifier-prefixes="VK" c:symbol-prefixes="vk">
<record name="Flags" c:type="VkFlags"/>
<record name="Bool32" c:type="VkBool32"/>
<record name="DeviceSize" c:type="VkDeviceSize"/>
<record name="SampleMask" c:type="VkSampleMask"/>
<record name="Instance" c:type="VkInstance"/>
<record name="PhysicalDevice" c:type="VkPhysicalDevice"/>
<record name="Device" c:type="VkDevice"/>
<record name="Queue" c:type="VkQueue"/>
<record name="Semaphore" c:type="VkSemaphore"/>
<record name="CommandBuffer" c:type="VkCommandBuffer"/>
<record name="Fence" c:type="VkFence"/>
<record name="DeviceMemory" c:type="VkDeviceMemory"/>
<record name="Buffer" c:type="VkBuffer"/>
<record name="Image" c:type="VkImage"/>
<record name="Event" c:type="VkEvent"/>
<record name="QueryPool" c:type="VkQueryPool"/>
<record name="BufferView" c:type="VkBufferView"/>
<record name="ImageView" c:type="VkImageView"/>
<record name="ShaderModule" c:type="VkShaderModule"/>
<record name="PipelineCache" c:type="VkPipelineCache"/>
<record name="PipelineLayout" c:type="VkPipelineLayout"/>
<record name="RenderPass" c:type="VkRenderPass"/>
<record name="Pipeline" c:type="VkPipeline"/>
<record name="DescriptorSetLayout" c:type="VkDescriptorSetLayout"/>
<record name="Sampler" c:type="VkSampler"/>
<record name="DescriptorPool" c:type="VkDescriptorPool"/>
<record name="DescriptorSet" c:type="VkDescriptorSet"/>
<record name="Framebuffer" c:type="VkFramebuffer"/>
<record name="CommandPool" c:type="VkCommandPool"/>
<record name="PipelineCacheHeaderVersion" c:type="VkPipelineCacheHeaderVersion"/>
<record name="Result" c:type="VkResult"/>
<record name="StructureType" c:type="VkStructureType"/>
<record name="SystemAllocationScope" c:type="VkSystemAllocationScope"/>
<record name="InternalAllocationType" c:type="VkInternalAllocationType"/>
<record name="Format" c:type="VkFormat"/>
<record name="ImageType" c:type="VkImageType"/>
<record name="ImageTiling" c:type="VkImageTiling"/>
<record name="PhysicalDeviceType" c:type="VkPhysicalDeviceType"/>
<record name="QueryType" c:type="VkQueryType"/>
<record name="SharingMode" c:type="VkSharingMode"/>
<record name="ImageLayout" c:type="VkImageLayout"/>
<record name="ImageViewType" c:type="VkImageViewType"/>
<record name="ComponentSwizzle" c:type="VkComponentSwizzle"/>
<record name="VertexInputRate" c:type="VkVertexInputRate"/>
<record name="PrimitiveTopology" c:type="VkPrimitiveTopology"/>
<record name="PolygonMode" c:type="VkPolygonMode"/>
<record name="FrontFace" c:type="VkFrontFace"/>
<record name="CompareOp" c:type="VkCompareOp"/>
<record name="StencilOp" c:type="VkStencilOp"/>
<record name="LogicOp" c:type="VkLogicOp"/>
<record name="BlendFactor" c:type="VkBlendFactor"/>
<record name="BlendOp" c:type="VkBlendOp"/>
<record name="DynamicState" c:type="VkDynamicState"/>
<record name="Filter" c:type="VkFilter"/>
<record name="SamplerMipmapMode" c:type="VkSamplerMipmapMode"/>
<record name="SamplerAddressMode" c:type="VkSamplerAddressMode"/>
<record name="BorderColor" c:type="VkBorderColor"/>
<record name="DescriptorType" c:type="VkDescriptorType"/>
<record name="AttachmentLoadOp" c:type="VkAttachmentLoadOp"/>
<record name="AttachmentStoreOp" c:type="VkAttachmentStoreOp"/>
<record name="PipelineBindPoint" c:type="VkPipelineBindPoint"/>
<record name="CommandBufferLevel" c:type="VkCommandBufferLevel"/>
<record name="IndexType" c:type="VkIndexType"/>
<record name="SubpassContents" c:type="VkSubpassContents"/>
<record name="ObjectType" c:type="VkObjectType"/>
<record name="VendorId" c:type="VkVendorId"/>
<record name="InstanceCreateFlags" c:type="VkInstanceCreateFlags"/>
<record name="FormatFeatureFlagBits" c:type="VkFormatFeatureFlagBits"/>
<record name="FormatFeatureFlags" c:type="VkFormatFeatureFlags"/>
<record name="ImageUsageFlagBits" c:type="VkImageUsageFlagBits"/>
<record name="ImageUsageFlags" c:type="VkImageUsageFlags"/>
<record name="ImageCreateFlagBits" c:type="VkImageCreateFlagBits"/>
<record name="ImageCreateFlags" c:type="VkImageCreateFlags"/>
<record name="SampleCountFlagBits" c:type="VkSampleCountFlagBits"/>
<record name="SampleCountFlags" c:type="VkSampleCountFlags"/>
<record name="QueueFlagBits" c:type="VkQueueFlagBits"/>
<record name="QueueFlags" c:type="VkQueueFlags"/>
<record name="MemoryPropertyFlagBits" c:type="VkMemoryPropertyFlagBits"/>
<record name="MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
<record name="MemoryHeapFlagBits" c:type="VkMemoryHeapFlagBits"/>
<record name="MemoryHeapFlags" c:type="VkMemoryHeapFlags"/>
<record name="DeviceCreateFlags" c:type="VkDeviceCreateFlags"/>
<record name="DeviceQueueCreateFlagBits" c:type="VkDeviceQueueCreateFlagBits"/>
<record name="DeviceQueueCreateFlags" c:type="VkDeviceQueueCreateFlags"/>
<record name="PipelineStageFlagBits" c:type="VkPipelineStageFlagBits"/>
<record name="PipelineStageFlags" c:type="VkPipelineStageFlags"/>
<record name="MemoryMapFlags" c:type="VkMemoryMapFlags"/>
<record name="ImageAspectFlagBits" c:type="VkImageAspectFlagBits"/>
<record name="ImageAspectFlags" c:type="VkImageAspectFlags"/>
<record name="SparseImageFormatFlagBits" c:type="VkSparseImageFormatFlagBits"/>
<record name="SparseImageFormatFlags" c:type="VkSparseImageFormatFlags"/>
<record name="SparseMemoryBindFlagBits" c:type="VkSparseMemoryBindFlagBits"/>
<record name="SparseMemoryBindFlags" c:type="VkSparseMemoryBindFlags"/>
<record name="FenceCreateFlagBits" c:type="VkFenceCreateFlagBits"/>
<record name="FenceCreateFlags" c:type="VkFenceCreateFlags"/>
<record name="SemaphoreCreateFlags" c:type="VkSemaphoreCreateFlags"/>
<record name="EventCreateFlags" c:type="VkEventCreateFlags"/>
<record name="QueryPoolCreateFlags" c:type="VkQueryPoolCreateFlags"/>
<record name="QueryPipelineStatisticFlagBits" c:type="VkQueryPipelineStatisticFlagBits"/>
<record name="QueryPipelineStatisticFlags" c:type="VkQueryPipelineStatisticFlags"/>
<record name="QueryResultFlagBits" c:type="VkQueryResultFlagBits"/>
<record name="QueryResultFlags" c:type="VkQueryResultFlags"/>
<record name="BufferCreateFlagBits" c:type="VkBufferCreateFlagBits"/>
<record name="BufferCreateFlags" c:type="VkBufferCreateFlags"/>
<record name="BufferUsageFlagBits" c:type="VkBufferUsageFlagBits"/>
<record name="BufferUsageFlags" c:type="VkBufferUsageFlags"/>
<record name="BufferViewCreateFlags" c:type="VkBufferViewCreateFlags"/>
<record name="ImageViewCreateFlagBits" c:type="VkImageViewCreateFlagBits"/>
<record name="ImageViewCreateFlags" c:type="VkImageViewCreateFlags"/>
<record name="ShaderModuleCreateFlags" c:type="VkShaderModuleCreateFlags"/>
<record name="PipelineCacheCreateFlags" c:type="VkPipelineCacheCreateFlags"/>
<record name="PipelineCreateFlagBits" c:type="VkPipelineCreateFlagBits"/>
<record name="PipelineCreateFlags" c:type="VkPipelineCreateFlags"/>
<record name="PipelineShaderStageCreateFlags" c:type="VkPipelineShaderStageCreateFlags"/>
<record name="ShaderStageFlagBits" c:type="VkShaderStageFlagBits"/>
<record name="PipelineVertexInputStateCreateFlags" c:type="VkPipelineVertexInputStateCreateFlags"/>
<record name="PipelineInputAssemblyStateCreateFlags" c:type="VkPipelineInputAssemblyStateCreateFlags"/>
<record name="PipelineTessellationStateCreateFlags" c:type="VkPipelineTessellationStateCreateFlags"/>
<record name="PipelineViewportStateCreateFlags" c:type="VkPipelineViewportStateCreateFlags"/>
<record name="PipelineRasterizationStateCreateFlags" c:type="VkPipelineRasterizationStateCreateFlags"/>
<record name="CullModeFlagBits" c:type="VkCullModeFlagBits"/>
<record name="CullModeFlags" c:type="VkCullModeFlags"/>
<record name="PipelineMultisampleStateCreateFlags" c:type="VkPipelineMultisampleStateCreateFlags"/>
<record name="PipelineDepthStencilStateCreateFlags" c:type="VkPipelineDepthStencilStateCreateFlags"/>
<record name="PipelineColorBlendStateCreateFlags" c:type="VkPipelineColorBlendStateCreateFlags"/>
<record name="ColorComponentFlagBits" c:type="VkColorComponentFlagBits"/>
<record name="ColorComponentFlags" c:type="VkColorComponentFlags"/>
<record name="PipelineDynamicStateCreateFlags" c:type="VkPipelineDynamicStateCreateFlags"/>
<record name="PipelineLayoutCreateFlags" c:type="VkPipelineLayoutCreateFlags"/>
<record name="ShaderStageFlags" c:type="VkShaderStageFlags"/>
<record name="SamplerCreateFlagBits" c:type="VkSamplerCreateFlagBits"/>
<record name="SamplerCreateFlags" c:type="VkSamplerCreateFlags"/>
<record name="DescriptorSetLayoutCreateFlagBits" c:type="VkDescriptorSetLayoutCreateFlagBits"/>
<record name="DescriptorSetLayoutCreateFlags" c:type="VkDescriptorSetLayoutCreateFlags"/>
<record name="DescriptorPoolCreateFlagBits" c:type="VkDescriptorPoolCreateFlagBits"/>
<record name="DescriptorPoolCreateFlags" c:type="VkDescriptorPoolCreateFlags"/>
<record name="DescriptorPoolResetFlags" c:type="VkDescriptorPoolResetFlags"/>
<record name="FramebufferCreateFlags" c:type="VkFramebufferCreateFlags"/>
<record name="RenderPassCreateFlags" c:type="VkRenderPassCreateFlags"/>
<record name="AttachmentDescriptionFlagBits" c:type="VkAttachmentDescriptionFlagBits"/>
<record name="AttachmentDescriptionFlags" c:type="VkAttachmentDescriptionFlags"/>
<record name="SubpassDescriptionFlagBits" c:type="VkSubpassDescriptionFlagBits"/>
<record name="SubpassDescriptionFlags" c:type="VkSubpassDescriptionFlags"/>
<record name="AccessFlagBits" c:type="VkAccessFlagBits"/>
<record name="AccessFlags" c:type="VkAccessFlags"/>
<record name="DependencyFlagBits" c:type="VkDependencyFlagBits"/>
<record name="DependencyFlags" c:type="VkDependencyFlags"/>
<record name="CommandPoolCreateFlagBits" c:type="VkCommandPoolCreateFlagBits"/>
<record name="CommandPoolCreateFlags" c:type="VkCommandPoolCreateFlags"/>
<record name="CommandPoolResetFlagBits" c:type="VkCommandPoolResetFlagBits"/>
<record name="CommandPoolResetFlags" c:type="VkCommandPoolResetFlags"/>
<record name="CommandBufferUsageFlagBits" c:type="VkCommandBufferUsageFlagBits"/>
<record name="CommandBufferUsageFlags" c:type="VkCommandBufferUsageFlags"/>
<record name="QueryControlFlagBits" c:type="VkQueryControlFlagBits"/>
<record name="QueryControlFlags" c:type="VkQueryControlFlags"/>
<record name="CommandBufferResetFlagBits" c:type="VkCommandBufferResetFlagBits"/>
<record name="CommandBufferResetFlags" c:type="VkCommandBufferResetFlags"/>
<record name="StencilFaceFlagBits" c:type="VkStencilFaceFlagBits"/>
<record name="StencilFaceFlags" c:type="VkStencilFaceFlags"/>
<record name="ApplicationInfo" c:type="VkApplicationInfo"/>
<record name="InstanceCreateInfo" c:type="VkInstanceCreateInfo"/>
<record name="AllocationCallbacks" c:type="VkAllocationCallbacks"/>
<record name="PhysicalDeviceFeatures" c:type="VkPhysicalDeviceFeatures"/>
<record name="FormatProperties" c:type="VkFormatProperties"/>
<record name="Extent3D" c:type="VkExtent3D"/>
<record name="ImageFormatProperties" c:type="VkImageFormatProperties"/>
<record name="PhysicalDeviceLimits" c:type="VkPhysicalDeviceLimits"/>
<record name="PhysicalDeviceSparseProperties" c:type="VkPhysicalDeviceSparseProperties"/>
<record name="PhysicalDeviceProperties" c:type="VkPhysicalDeviceProperties"/>
<record name="QueueFamilyProperties" c:type="VkQueueFamilyProperties"/>
<record name="MemoryType" c:type="VkMemoryType"/>
<record name="MemoryHeap" c:type="VkMemoryHeap"/>
<record name="PhysicalDeviceMemoryProperties" c:type="VkPhysicalDeviceMemoryProperties"/>
<record name="DeviceQueueCreateInfo" c:type="VkDeviceQueueCreateInfo"/>
<record name="DeviceCreateInfo" c:type="VkDeviceCreateInfo"/>
<record name="ExtensionProperties" c:type="VkExtensionProperties"/>
<record name="LayerProperties" c:type="VkLayerProperties"/>
<record name="SubmitInfo" c:type="VkSubmitInfo"/>
<record name="MemoryAllocateInfo" c:type="VkMemoryAllocateInfo"/>
<record name="MappedMemoryRange" c:type="VkMappedMemoryRange"/>
<record name="MemoryRequirements" c:type="VkMemoryRequirements"/>
<record name="SparseImageFormatProperties" c:type="VkSparseImageFormatProperties"/>
<record name="SparseImageMemoryRequirements" c:type="VkSparseImageMemoryRequirements"/>
<record name="SparseMemoryBind" c:type="VkSparseMemoryBind"/>
<record name="SparseBufferMemoryBindInfo" c:type="VkSparseBufferMemoryBindInfo"/>
<record name="SparseImageOpaqueMemoryBindInfo" c:type="VkSparseImageOpaqueMemoryBindInfo"/>
<record name="ImageSubresource" c:type="VkImageSubresource"/>
<record name="Offset3D" c:type="VkOffset3D"/>
<record name="SparseImageMemoryBind" c:type="VkSparseImageMemoryBind"/>
<record name="SparseImageMemoryBindInfo" c:type="VkSparseImageMemoryBindInfo"/>
<record name="BindSparseInfo" c:type="VkBindSparseInfo"/>
<record name="FenceCreateInfo" c:type="VkFenceCreateInfo"/>
<record name="SemaphoreCreateInfo" c:type="VkSemaphoreCreateInfo"/>
<record name="EventCreateInfo" c:type="VkEventCreateInfo"/>
<record name="QueryPoolCreateInfo" c:type="VkQueryPoolCreateInfo"/>
<record name="BufferCreateInfo" c:type="VkBufferCreateInfo"/>
<record name="BufferViewCreateInfo" c:type="VkBufferViewCreateInfo"/>
<record name="ImageCreateInfo" c:type="VkImageCreateInfo"/>
<record name="SubresourceLayout" c:type="VkSubresourceLayout"/>
<record name="ComponentMapping" c:type="VkComponentMapping"/>
<record name="ImageSubresourceRange" c:type="VkImageSubresourceRange"/>
<record name="ImageViewCreateInfo" c:type="VkImageViewCreateInfo"/>
<record name="ShaderModuleCreateInfo" c:type="VkShaderModuleCreateInfo"/>
<record name="PipelineCacheCreateInfo" c:type="VkPipelineCacheCreateInfo"/>
<record name="SpecializationMapEntry" c:type="VkSpecializationMapEntry"/>
<record name="SpecializationInfo" c:type="VkSpecializationInfo"/>
<record name="PipelineShaderStageCreateInfo" c:type="VkPipelineShaderStageCreateInfo"/>
<record name="VertexInputBindingDescription" c:type="VkVertexInputBindingDescription"/>
<record name="VertexInputAttributeDescription" c:type="VkVertexInputAttributeDescription"/>
<record name="PipelineVertexInputStateCreateInfo" c:type="VkPipelineVertexInputStateCreateInfo"/>
<record name="PipelineInputAssemblyStateCreateInfo" c:type="VkPipelineInputAssemblyStateCreateInfo"/>
<record name="PipelineTessellationStateCreateInfo" c:type="VkPipelineTessellationStateCreateInfo"/>
<record name="Viewport" c:type="VkViewport"/>
<record name="Offset2D" c:type="VkOffset2D"/>
<record name="Extent2D" c:type="VkExtent2D"/>
<record name="Rect2D" c:type="VkRect2D"/>
<record name="PipelineViewportStateCreateInfo" c:type="VkPipelineViewportStateCreateInfo"/>
<record name="PipelineRasterizationStateCreateInfo" c:type="VkPipelineRasterizationStateCreateInfo"/>
<record name="PipelineMultisampleStateCreateInfo" c:type="VkPipelineMultisampleStateCreateInfo"/>
<record name="StencilOpState" c:type="VkStencilOpState"/>
<record name="PipelineDepthStencilStateCreateInfo" c:type="VkPipelineDepthStencilStateCreateInfo"/>
<record name="PipelineColorBlendAttachmentState" c:type="VkPipelineColorBlendAttachmentState"/>
<record name="PipelineColorBlendStateCreateInfo" c:type="VkPipelineColorBlendStateCreateInfo"/>
<record name="PipelineDynamicStateCreateInfo" c:type="VkPipelineDynamicStateCreateInfo"/>
<record name="GraphicsPipelineCreateInfo" c:type="VkGraphicsPipelineCreateInfo"/>
<record name="ComputePipelineCreateInfo" c:type="VkComputePipelineCreateInfo"/>
<record name="PushConstantRange" c:type="VkPushConstantRange"/>
<record name="PipelineLayoutCreateInfo" c:type="VkPipelineLayoutCreateInfo"/>
<record name="SamplerCreateInfo" c:type="VkSamplerCreateInfo"/>
<record name="DescriptorSetLayoutBinding" c:type="VkDescriptorSetLayoutBinding"/>
<record name="DescriptorSetLayoutCreateInfo" c:type="VkDescriptorSetLayoutCreateInfo"/>
<record name="DescriptorPoolSize" c:type="VkDescriptorPoolSize"/>
<record name="DescriptorPoolCreateInfo" c:type="VkDescriptorPoolCreateInfo"/>
<record name="DescriptorSetAllocateInfo" c:type="VkDescriptorSetAllocateInfo"/>
<record name="DescriptorImageInfo" c:type="VkDescriptorImageInfo"/>
<record name="DescriptorBufferInfo" c:type="VkDescriptorBufferInfo"/>
<record name="WriteDescriptorSet" c:type="VkWriteDescriptorSet"/>
<record name="CopyDescriptorSet" c:type="VkCopyDescriptorSet"/>
<record name="FramebufferCreateInfo" c:type="VkFramebufferCreateInfo"/>
<record name="AttachmentDescription" c:type="VkAttachmentDescription"/>
<record name="AttachmentReference" c:type="VkAttachmentReference"/>
<record name="SubpassDescription" c:type="VkSubpassDescription"/>
<record name="SubpassDependency" c:type="VkSubpassDependency"/>
<record name="RenderPassCreateInfo" c:type="VkRenderPassCreateInfo"/>
<record name="CommandPoolCreateInfo" c:type="VkCommandPoolCreateInfo"/>
<record name="CommandBufferAllocateInfo" c:type="VkCommandBufferAllocateInfo"/>
<record name="CommandBufferInheritanceInfo" c:type="VkCommandBufferInheritanceInfo"/>
<record name="CommandBufferBeginInfo" c:type="VkCommandBufferBeginInfo"/>
<record name="BufferCopy" c:type="VkBufferCopy"/>
<record name="ImageSubresourceLayers" c:type="VkImageSubresourceLayers"/>
<record name="ImageCopy" c:type="VkImageCopy"/>
<record name="ImageBlit" c:type="VkImageBlit"/>
<record name="BufferImageCopy" c:type="VkBufferImageCopy"/>
<record name="ClearColorValue" c:type="VkClearColorValue"/>
<record name="ClearDepthStencilValue" c:type="VkClearDepthStencilValue"/>
<record name="ClearValue" c:type="VkClearValue"/>
<record name="ClearAttachment" c:type="VkClearAttachment"/>
<record name="ClearRect" c:type="VkClearRect"/>
<record name="ImageResolve" c:type="VkImageResolve"/>
<record name="MemoryBarrier" c:type="VkMemoryBarrier"/>
<record name="BufferMemoryBarrier" c:type="VkBufferMemoryBarrier"/>
<record name="ImageMemoryBarrier" c:type="VkImageMemoryBarrier"/>
<record name="RenderPassBeginInfo" c:type="VkRenderPassBeginInfo"/>
<record name="DispatchIndirectCommand" c:type="VkDispatchIndirectCommand"/>
<record name="DrawIndexedIndirectCommand" c:type="VkDrawIndexedIndirectCommand"/>
<record name="DrawIndirectCommand" c:type="VkDrawIndirectCommand"/>
<record name="BaseOutStructure" c:type="VkBaseOutStructure"/>
<record name="BaseInStructure" c:type="VkBaseInStructure"/>
<record name="SamplerYcbcrConversion" c:type="VkSamplerYcbcrConversion"/>
<record name="DescriptorUpdateTemplate" c:type="VkDescriptorUpdateTemplate"/>
<record name="PointClippingBehavior" c:type="VkPointClippingBehavior"/>
<record name="TessellationDomainOrigin" c:type="VkTessellationDomainOrigin"/>
<record name="SamplerYcbcrModelConversion" c:type="VkSamplerYcbcrModelConversion"/>
<record name="SamplerYcbcrRange" c:type="VkSamplerYcbcrRange"/>
<record name="ChromaLocation" c:type="VkChromaLocation"/>
<record name="DescriptorUpdateTemplateType" c:type="VkDescriptorUpdateTemplateType"/>
<record name="SubgroupFeatureFlagBits" c:type="VkSubgroupFeatureFlagBits"/>
<record name="SubgroupFeatureFlags" c:type="VkSubgroupFeatureFlags"/>
<record name="PeerMemoryFeatureFlagBits" c:type="VkPeerMemoryFeatureFlagBits"/>
<record name="PeerMemoryFeatureFlags" c:type="VkPeerMemoryFeatureFlags"/>
<record name="MemoryAllocateFlagBits" c:type="VkMemoryAllocateFlagBits"/>
<record name="MemoryAllocateFlags" c:type="VkMemoryAllocateFlags"/>
<record name="CommandPoolTrimFlags" c:type="VkCommandPoolTrimFlags"/>
<record name="DescriptorUpdateTemplateCreateFlags" c:type="VkDescriptorUpdateTemplateCreateFlags"/>
<record name="ExternalMemoryHandleTypeFlagBits" c:type="VkExternalMemoryHandleTypeFlagBits"/>
<record name="ExternalMemoryHandleTypeFlags" c:type="VkExternalMemoryHandleTypeFlags"/>
<record name="ExternalMemoryFeatureFlagBits" c:type="VkExternalMemoryFeatureFlagBits"/>
<record name="ExternalMemoryFeatureFlags" c:type="VkExternalMemoryFeatureFlags"/>
<record name="ExternalFenceHandleTypeFlagBits" c:type="VkExternalFenceHandleTypeFlagBits"/>
<record name="ExternalFenceHandleTypeFlags" c:type="VkExternalFenceHandleTypeFlags"/>
<record name="ExternalFenceFeatureFlagBits" c:type="VkExternalFenceFeatureFlagBits"/>
<record name="ExternalFenceFeatureFlags" c:type="VkExternalFenceFeatureFlags"/>
<record name="FenceImportFlagBits" c:type="VkFenceImportFlagBits"/>
<record name="FenceImportFlags" c:type="VkFenceImportFlags"/>
<record name="SemaphoreImportFlagBits" c:type="VkSemaphoreImportFlagBits"/>
<record name="SemaphoreImportFlags" c:type="VkSemaphoreImportFlags"/>
<record name="ExternalSemaphoreHandleTypeFlagBits" c:type="VkExternalSemaphoreHandleTypeFlagBits"/>
<record name="ExternalSemaphoreHandleTypeFlags" c:type="VkExternalSemaphoreHandleTypeFlags"/>
<record name="ExternalSemaphoreFeatureFlagBits" c:type="VkExternalSemaphoreFeatureFlagBits"/>
<record name="ExternalSemaphoreFeatureFlags" c:type="VkExternalSemaphoreFeatureFlags"/>
<record name="PhysicalDeviceSubgroupProperties" c:type="VkPhysicalDeviceSubgroupProperties"/>
<record name="BindBufferMemoryInfo" c:type="VkBindBufferMemoryInfo"/>
<record name="BindImageMemoryInfo" c:type="VkBindImageMemoryInfo"/>
<record name="PhysicalDevice16BitStorageFeatures" c:type="VkPhysicalDevice16BitStorageFeatures"/>
<record name="MemoryDedicatedRequirements" c:type="VkMemoryDedicatedRequirements"/>
<record name="MemoryDedicatedAllocateInfo" c:type="VkMemoryDedicatedAllocateInfo"/>
<record name="MemoryAllocateFlagsInfo" c:type="VkMemoryAllocateFlagsInfo"/>
<record name="DeviceGroupRenderPassBeginInfo" c:type="VkDeviceGroupRenderPassBeginInfo"/>
<record name="DeviceGroupCommandBufferBeginInfo" c:type="VkDeviceGroupCommandBufferBeginInfo"/>
<record name="DeviceGroupSubmitInfo" c:type="VkDeviceGroupSubmitInfo"/>
<record name="DeviceGroupBindSparseInfo" c:type="VkDeviceGroupBindSparseInfo"/>
<record name="BindBufferMemoryDeviceGroupInfo" c:type="VkBindBufferMemoryDeviceGroupInfo"/>
<record name="BindImageMemoryDeviceGroupInfo" c:type="VkBindImageMemoryDeviceGroupInfo"/>
<record name="PhysicalDeviceGroupProperties" c:type="VkPhysicalDeviceGroupProperties"/>
<record name="DeviceGroupDeviceCreateInfo" c:type="VkDeviceGroupDeviceCreateInfo"/>
<record name="BufferMemoryRequirementsInfo2" c:type="VkBufferMemoryRequirementsInfo2"/>
<record name="ImageMemoryRequirementsInfo2" c:type="VkImageMemoryRequirementsInfo2"/>
<record name="ImageSparseMemoryRequirementsInfo2" c:type="VkImageSparseMemoryRequirementsInfo2"/>
<record name="MemoryRequirements2" c:type="VkMemoryRequirements2"/>
<record name="MemoryRequirements2KHR" c:type="VkMemoryRequirements2KHR"/>
<record name="SparseImageMemoryRequirements2" c:type="VkSparseImageMemoryRequirements2"/>
<record name="PhysicalDeviceFeatures2" c:type="VkPhysicalDeviceFeatures2"/>
<record name="PhysicalDeviceProperties2" c:type="VkPhysicalDeviceProperties2"/>
<record name="FormatProperties2" c:type="VkFormatProperties2"/>
<record name="ImageFormatProperties2" c:type="VkImageFormatProperties2"/>
<record name="PhysicalDeviceImageFormatInfo2" c:type="VkPhysicalDeviceImageFormatInfo2"/>
<record name="QueueFamilyProperties2" c:type="VkQueueFamilyProperties2"/>
<record name="PhysicalDeviceMemoryProperties2" c:type="VkPhysicalDeviceMemoryProperties2"/>
<record name="SparseImageFormatProperties2" c:type="VkSparseImageFormatProperties2"/>
<record name="PhysicalDeviceSparseImageFormatInfo2" c:type="VkPhysicalDeviceSparseImageFormatInfo2"/>
<record name="PhysicalDevicePointClippingProperties" c:type="VkPhysicalDevicePointClippingProperties"/>
<record name="InputAttachmentAspectReference" c:type="VkInputAttachmentAspectReference"/>
<record name="RenderPassInputAttachmentAspectCreateInfo" c:type="VkRenderPassInputAttachmentAspectCreateInfo"/>
<record name="ImageViewUsageCreateInfo" c:type="VkImageViewUsageCreateInfo"/>
<record name="PipelineTessellationDomainOriginStateCreateInfo" c:type="VkPipelineTessellationDomainOriginStateCreateInfo"/>
<record name="RenderPassMultiviewCreateInfo" c:type="VkRenderPassMultiviewCreateInfo"/>
<record name="PhysicalDeviceMultiviewFeatures" c:type="VkPhysicalDeviceMultiviewFeatures"/>
<record name="PhysicalDeviceMultiviewProperties" c:type="VkPhysicalDeviceMultiviewProperties"/>
<record name="PhysicalDeviceVariablePointersFeatures" c:type="VkPhysicalDeviceVariablePointersFeatures"/>
<record name="PhysicalDeviceVariablePointerFeatures" c:type="VkPhysicalDeviceVariablePointerFeatures"/>
<record name="PhysicalDeviceProtectedMemoryFeatures" c:type="VkPhysicalDeviceProtectedMemoryFeatures"/>
<record name="PhysicalDeviceProtectedMemoryProperties" c:type="VkPhysicalDeviceProtectedMemoryProperties"/>
<record name="DeviceQueueInfo2" c:type="VkDeviceQueueInfo2"/>
<record name="ProtectedSubmitInfo" c:type="VkProtectedSubmitInfo"/>
<record name="SamplerYcbcrConversionCreateInfo" c:type="VkSamplerYcbcrConversionCreateInfo"/>
<record name="SamplerYcbcrConversionInfo" c:type="VkSamplerYcbcrConversionInfo"/>
<record name="BindImagePlaneMemoryInfo" c:type="VkBindImagePlaneMemoryInfo"/>
<record name="ImagePlaneMemoryRequirementsInfo" c:type="VkImagePlaneMemoryRequirementsInfo"/>
<record name="PhysicalDeviceSamplerYcbcrConversionFeatures" c:type="VkPhysicalDeviceSamplerYcbcrConversionFeatures"/>
<record name="SamplerYcbcrConversionImageFormatProperties" c:type="VkSamplerYcbcrConversionImageFormatProperties"/>
<record name="DescriptorUpdateTemplateEntry" c:type="VkDescriptorUpdateTemplateEntry"/>
<record name="DescriptorUpdateTemplateCreateInfo" c:type="VkDescriptorUpdateTemplateCreateInfo"/>
<record name="ExternalMemoryProperties" c:type="VkExternalMemoryProperties"/>
<record name="PhysicalDeviceExternalImageFormatInfo" c:type="VkPhysicalDeviceExternalImageFormatInfo"/>
<record name="ExternalImageFormatProperties" c:type="VkExternalImageFormatProperties"/>
<record name="PhysicalDeviceExternalBufferInfo" c:type="VkPhysicalDeviceExternalBufferInfo"/>
<record name="ExternalBufferProperties" c:type="VkExternalBufferProperties"/>
<record name="PhysicalDeviceIDProperties" c:type="VkPhysicalDeviceIDProperties"/>
<record name="ExternalMemoryImageCreateInfo" c:type="VkExternalMemoryImageCreateInfo"/>
<record name="ExternalMemoryBufferCreateInfo" c:type="VkExternalMemoryBufferCreateInfo"/>
<record name="ExportMemoryAllocateInfo" c:type="VkExportMemoryAllocateInfo"/>
<record name="PhysicalDeviceExternalFenceInfo" c:type="VkPhysicalDeviceExternalFenceInfo"/>
<record name="ExternalFenceProperties" c:type="VkExternalFenceProperties"/>
<record name="ExportFenceCreateInfo" c:type="VkExportFenceCreateInfo"/>
<record name="ExportSemaphoreCreateInfo" c:type="VkExportSemaphoreCreateInfo"/>
<record name="PhysicalDeviceExternalSemaphoreInfo" c:type="VkPhysicalDeviceExternalSemaphoreInfo"/>
<record name="ExternalSemaphoreProperties" c:type="VkExternalSemaphoreProperties"/>
<record name="PhysicalDeviceMaintenance3Properties" c:type="VkPhysicalDeviceMaintenance3Properties"/>
<record name="DescriptorSetLayoutSupport" c:type="VkDescriptorSetLayoutSupport"/>
<record name="PhysicalDeviceShaderDrawParametersFeatures" c:type="VkPhysicalDeviceShaderDrawParametersFeatures"/>
<record name="PhysicalDeviceShaderDrawParameterFeatures" c:type="VkPhysicalDeviceShaderDrawParameterFeatures"/>
<record name="SurfaceKHR" c:type="VkSurfaceKHR"/>
<record name="ColorSpaceKHR" c:type="VkColorSpaceKHR"/>
<record name="PresentModeKHR" c:type="VkPresentModeKHR"/>
<record name="SurfaceTransformFlagBitsKHR" c:type="VkSurfaceTransformFlagBitsKHR"/>
<record name="SurfaceTransformFlagsKHR" c:type="VkSurfaceTransformFlagsKHR"/>
<record name="CompositeAlphaFlagBitsKHR" c:type="VkCompositeAlphaFlagBitsKHR"/>
<record name="CompositeAlphaFlagsKHR" c:type="VkCompositeAlphaFlagsKHR"/>
<record name="SurfaceCapabilitiesKHR" c:type="VkSurfaceCapabilitiesKHR"/>
<record name="SurfaceFormatKHR" c:type="VkSurfaceFormatKHR"/>
<record name="SwapchainKHR" c:type="VkSwapchainKHR"/>
<record name="SwapchainCreateFlagBitsKHR" c:type="VkSwapchainCreateFlagBitsKHR"/>
<record name="SwapchainCreateFlagsKHR" c:type="VkSwapchainCreateFlagsKHR"/>
<record name="DeviceGroupPresentModeFlagBitsKHR" c:type="VkDeviceGroupPresentModeFlagBitsKHR"/>
<record name="DeviceGroupPresentModeFlagsKHR" c:type="VkDeviceGroupPresentModeFlagsKHR"/>
<record name="SwapchainCreateInfoKHR" c:type="VkSwapchainCreateInfoKHR"/>
<record name="PresentInfoKHR" c:type="VkPresentInfoKHR"/>
<record name="ImageSwapchainCreateInfoKHR" c:type="VkImageSwapchainCreateInfoKHR"/>
<record name="BindImageMemorySwapchainInfoKHR" c:type="VkBindImageMemorySwapchainInfoKHR"/>
<record name="AcquireNextImageInfoKHR" c:type="VkAcquireNextImageInfoKHR"/>
<record name="DeviceGroupPresentCapabilitiesKHR" c:type="VkDeviceGroupPresentCapabilitiesKHR"/>
<record name="DeviceGroupPresentInfoKHR" c:type="VkDeviceGroupPresentInfoKHR"/>
<record name="DeviceGroupSwapchainCreateInfoKHR" c:type="VkDeviceGroupSwapchainCreateInfoKHR"/>
<record name="DisplayKHR" c:type="VkDisplayKHR"/>
<record name="DisplayModeKHR" c:type="VkDisplayModeKHR"/>
<record name="DisplayPlaneAlphaFlagBitsKHR" c:type="VkDisplayPlaneAlphaFlagBitsKHR"/>
<record name="DisplayPlaneAlphaFlagsKHR" c:type="VkDisplayPlaneAlphaFlagsKHR"/>
<record name="DisplayModeCreateFlagsKHR" c:type="VkDisplayModeCreateFlagsKHR"/>
<record name="DisplaySurfaceCreateFlagsKHR" c:type="VkDisplaySurfaceCreateFlagsKHR"/>
<record name="DisplayPropertiesKHR" c:type="VkDisplayPropertiesKHR"/>
<record name="DisplayModeParametersKHR" c:type="VkDisplayModeParametersKHR"/>
<record name="DisplayModePropertiesKHR" c:type="VkDisplayModePropertiesKHR"/>
<record name="DisplayModeCreateInfoKHR" c:type="VkDisplayModeCreateInfoKHR"/>
<record name="DisplayPlaneCapabilitiesKHR" c:type="VkDisplayPlaneCapabilitiesKHR"/>
<record name="DisplayPlanePropertiesKHR" c:type="VkDisplayPlanePropertiesKHR"/>
<record name="DisplaySurfaceCreateInfoKHR" c:type="VkDisplaySurfaceCreateInfoKHR"/>
<record name="DisplayPresentInfoKHR" c:type="VkDisplayPresentInfoKHR"/>
<record name="RenderPassMultiviewCreateInfoKHR" c:type="VkRenderPassMultiviewCreateInfoKHR"/>
<record name="PhysicalDeviceMultiviewFeaturesKHR" c:type="VkPhysicalDeviceMultiviewFeaturesKHR"/>
<record name="PhysicalDeviceMultiviewPropertiesKHR" c:type="VkPhysicalDeviceMultiviewPropertiesKHR"/>
<record name="PhysicalDeviceFeatures2KHR" c:type="VkPhysicalDeviceFeatures2KHR"/>
<record name="PhysicalDeviceProperties2KHR" c:type="VkPhysicalDeviceProperties2KHR"/>
<record name="FormatProperties2KHR" c:type="VkFormatProperties2KHR"/>
<record name="ImageFormatProperties2KHR" c:type="VkImageFormatProperties2KHR"/>
<record name="PhysicalDeviceImageFormatInfo2KHR" c:type="VkPhysicalDeviceImageFormatInfo2KHR"/>
<record name="QueueFamilyProperties2KHR" c:type="VkQueueFamilyProperties2KHR"/>
<record name="PhysicalDeviceMemoryProperties2KHR" c:type="VkPhysicalDeviceMemoryProperties2KHR"/>
<record name="SparseImageFormatProperties2KHR" c:type="VkSparseImageFormatProperties2KHR"/>
<record name="PhysicalDeviceSparseImageFormatInfo2KHR" c:type="VkPhysicalDeviceSparseImageFormatInfo2KHR"/>
<record name="PeerMemoryFeatureFlagsKHR" c:type="VkPeerMemoryFeatureFlagsKHR"/>
<record name="PeerMemoryFeatureFlagBitsKHR" c:type="VkPeerMemoryFeatureFlagBitsKHR"/>
<record name="MemoryAllocateFlagsKHR" c:type="VkMemoryAllocateFlagsKHR"/>
<record name="MemoryAllocateFlagBitsKHR" c:type="VkMemoryAllocateFlagBitsKHR"/>
<record name="MemoryAllocateFlagsInfoKHR" c:type="VkMemoryAllocateFlagsInfoKHR"/>
<record name="DeviceGroupRenderPassBeginInfoKHR" c:type="VkDeviceGroupRenderPassBeginInfoKHR"/>
<record name="DeviceGroupCommandBufferBeginInfoKHR" c:type="VkDeviceGroupCommandBufferBeginInfoKHR"/>
<record name="DeviceGroupSubmitInfoKHR" c:type="VkDeviceGroupSubmitInfoKHR"/>
<record name="DeviceGroupBindSparseInfoKHR" c:type="VkDeviceGroupBindSparseInfoKHR"/>
<record name="BindBufferMemoryDeviceGroupInfoKHR" c:type="VkBindBufferMemoryDeviceGroupInfoKHR"/>
<record name="BindImageMemoryDeviceGroupInfoKHR" c:type="VkBindImageMemoryDeviceGroupInfoKHR"/>
<record name="CommandPoolTrimFlagsKHR" c:type="VkCommandPoolTrimFlagsKHR"/>
<record name="PhysicalDeviceGroupPropertiesKHR" c:type="VkPhysicalDeviceGroupPropertiesKHR"/>
<record name="DeviceGroupDeviceCreateInfoKHR" c:type="VkDeviceGroupDeviceCreateInfoKHR"/>
<record name="ExternalMemoryHandleTypeFlagsKHR" c:type="VkExternalMemoryHandleTypeFlagsKHR"/>
<record name="ExternalMemoryHandleTypeFlagBitsKHR" c:type="VkExternalMemoryHandleTypeFlagBitsKHR"/>
<record name="ExternalMemoryFeatureFlagsKHR" c:type="VkExternalMemoryFeatureFlagsKHR"/>
<record name="ExternalMemoryFeatureFlagBitsKHR" c:type="VkExternalMemoryFeatureFlagBitsKHR"/>
<record name="ExternalMemoryPropertiesKHR" c:type="VkExternalMemoryPropertiesKHR"/>
<record name="PhysicalDeviceExternalImageFormatInfoKHR" c:type="VkPhysicalDeviceExternalImageFormatInfoKHR"/>
<record name="ExternalImageFormatPropertiesKHR" c:type="VkExternalImageFormatPropertiesKHR"/>
<record name="PhysicalDeviceExternalBufferInfoKHR" c:type="VkPhysicalDeviceExternalBufferInfoKHR"/>
<record name="ExternalBufferPropertiesKHR" c:type="VkExternalBufferPropertiesKHR"/>
<record name="PhysicalDeviceIDPropertiesKHR" c:type="VkPhysicalDeviceIDPropertiesKHR"/>
<record name="ExternalMemoryImageCreateInfoKHR" c:type="VkExternalMemoryImageCreateInfoKHR"/>
<record name="ExternalMemoryBufferCreateInfoKHR" c:type="VkExternalMemoryBufferCreateInfoKHR"/>
<record name="ExportMemoryAllocateInfoKHR" c:type="VkExportMemoryAllocateInfoKHR"/>
<record name="ImportMemoryFdInfoKHR" c:type="VkImportMemoryFdInfoKHR"/>
<record name="MemoryFdPropertiesKHR" c:type="VkMemoryFdPropertiesKHR"/>
<record name="MemoryGetFdInfoKHR" c:type="VkMemoryGetFdInfoKHR"/>
<record name="ExternalSemaphoreHandleTypeFlagsKHR" c:type="VkExternalSemaphoreHandleTypeFlagsKHR"/>
<record name="ExternalSemaphoreHandleTypeFlagBitsKHR" c:type="VkExternalSemaphoreHandleTypeFlagBitsKHR"/>
<record name="ExternalSemaphoreFeatureFlagsKHR" c:type="VkExternalSemaphoreFeatureFlagsKHR"/>
<record name="ExternalSemaphoreFeatureFlagBitsKHR" c:type="VkExternalSemaphoreFeatureFlagBitsKHR"/>
<record name="PhysicalDeviceExternalSemaphoreInfoKHR" c:type="VkPhysicalDeviceExternalSemaphoreInfoKHR"/>
<record name="ExternalSemaphorePropertiesKHR" c:type="VkExternalSemaphorePropertiesKHR"/>
<record name="SemaphoreImportFlagsKHR" c:type="VkSemaphoreImportFlagsKHR"/>
<record name="SemaphoreImportFlagBitsKHR" c:type="VkSemaphoreImportFlagBitsKHR"/>
<record name="ExportSemaphoreCreateInfoKHR" c:type="VkExportSemaphoreCreateInfoKHR"/>
<record name="ImportSemaphoreFdInfoKHR" c:type="VkImportSemaphoreFdInfoKHR"/>
<record name="SemaphoreGetFdInfoKHR" c:type="VkSemaphoreGetFdInfoKHR"/>
<record name="PhysicalDevicePushDescriptorPropertiesKHR" c:type="VkPhysicalDevicePushDescriptorPropertiesKHR"/>
<record name="PhysicalDeviceFloat16Int8FeaturesKHR" c:type="VkPhysicalDeviceFloat16Int8FeaturesKHR"/>
<record name="PhysicalDevice16BitStorageFeaturesKHR" c:type="VkPhysicalDevice16BitStorageFeaturesKHR"/>
<record name="RectLayerKHR" c:type="VkRectLayerKHR"/>
<record name="PresentRegionKHR" c:type="VkPresentRegionKHR"/>
<record name="PresentRegionsKHR" c:type="VkPresentRegionsKHR"/>
<record name="DescriptorUpdateTemplateKHR" c:type="VkDescriptorUpdateTemplateKHR"/>
<record name="DescriptorUpdateTemplateTypeKHR" c:type="VkDescriptorUpdateTemplateTypeKHR"/>
<record name="DescriptorUpdateTemplateCreateFlagsKHR" c:type="VkDescriptorUpdateTemplateCreateFlagsKHR"/>
<record name="DescriptorUpdateTemplateEntryKHR" c:type="VkDescriptorUpdateTemplateEntryKHR"/>
<record name="DescriptorUpdateTemplateCreateInfoKHR" c:type="VkDescriptorUpdateTemplateCreateInfoKHR"/>
<record name="AttachmentDescription2KHR" c:type="VkAttachmentDescription2KHR"/>
<record name="AttachmentReference2KHR" c:type="VkAttachmentReference2KHR"/>
<record name="SubpassDescription2KHR" c:type="VkSubpassDescription2KHR"/>
<record name="SubpassDependency2KHR" c:type="VkSubpassDependency2KHR"/>
<record name="RenderPassCreateInfo2KHR" c:type="VkRenderPassCreateInfo2KHR"/>
<record name="SubpassBeginInfoKHR" c:type="VkSubpassBeginInfoKHR"/>
<record name="SubpassEndInfoKHR" c:type="VkSubpassEndInfoKHR"/>
<record name="SharedPresentSurfaceCapabilitiesKHR" c:type="VkSharedPresentSurfaceCapabilitiesKHR"/>
<record name="ExternalFenceHandleTypeFlagsKHR" c:type="VkExternalFenceHandleTypeFlagsKHR"/>
<record name="ExternalFenceHandleTypeFlagBitsKHR" c:type="VkExternalFenceHandleTypeFlagBitsKHR"/>
<record name="ExternalFenceFeatureFlagsKHR" c:type="VkExternalFenceFeatureFlagsKHR"/>
<record name="ExternalFenceFeatureFlagBitsKHR" c:type="VkExternalFenceFeatureFlagBitsKHR"/>
<record name="PhysicalDeviceExternalFenceInfoKHR" c:type="VkPhysicalDeviceExternalFenceInfoKHR"/>
<record name="ExternalFencePropertiesKHR" c:type="VkExternalFencePropertiesKHR"/>
<record name="FenceImportFlagsKHR" c:type="VkFenceImportFlagsKHR"/>
<record name="FenceImportFlagBitsKHR" c:type="VkFenceImportFlagBitsKHR"/>
<record name="ExportFenceCreateInfoKHR" c:type="VkExportFenceCreateInfoKHR"/>
<record name="ImportFenceFdInfoKHR" c:type="VkImportFenceFdInfoKHR"/>
<record name="FenceGetFdInfoKHR" c:type="VkFenceGetFdInfoKHR"/>
<record name="PointClippingBehaviorKHR" c:type="VkPointClippingBehaviorKHR"/>
<record name="TessellationDomainOriginKHR" c:type="VkTessellationDomainOriginKHR"/>
<record name="PhysicalDevicePointClippingPropertiesKHR" c:type="VkPhysicalDevicePointClippingPropertiesKHR"/>
<record name="RenderPassInputAttachmentAspectCreateInfoKHR" c:type="VkRenderPassInputAttachmentAspectCreateInfoKHR"/>
<record name="InputAttachmentAspectReferenceKHR" c:type="VkInputAttachmentAspectReferenceKHR"/>
<record name="ImageViewUsageCreateInfoKHR" c:type="VkImageViewUsageCreateInfoKHR"/>
<record name="PipelineTessellationDomainOriginStateCreateInfoKHR" c:type="VkPipelineTessellationDomainOriginStateCreateInfoKHR"/>
<record name="PhysicalDeviceSurfaceInfo2KHR" c:type="VkPhysicalDeviceSurfaceInfo2KHR"/>
<record name="SurfaceCapabilities2KHR" c:type="VkSurfaceCapabilities2KHR"/>
<record name="SurfaceFormat2KHR" c:type="VkSurfaceFormat2KHR"/>
<record name="PhysicalDeviceVariablePointerFeaturesKHR" c:type="VkPhysicalDeviceVariablePointerFeaturesKHR"/>
<record name="PhysicalDeviceVariablePointersFeaturesKHR" c:type="VkPhysicalDeviceVariablePointersFeaturesKHR"/>
<record name="DisplayProperties2KHR" c:type="VkDisplayProperties2KHR"/>
<record name="DisplayPlaneProperties2KHR" c:type="VkDisplayPlaneProperties2KHR"/>
<record name="DisplayModeProperties2KHR" c:type="VkDisplayModeProperties2KHR"/>
<record name="DisplayPlaneInfo2KHR" c:type="VkDisplayPlaneInfo2KHR"/>
<record name="DisplayPlaneCapabilities2KHR" c:type="VkDisplayPlaneCapabilities2KHR"/>
<record name="MemoryDedicatedRequirementsKHR" c:type="VkMemoryDedicatedRequirementsKHR"/>
<record name="MemoryDedicatedAllocateInfoKHR" c:type="VkMemoryDedicatedAllocateInfoKHR"/>
<record name="BufferMemoryRequirementsInfo2KHR" c:type="VkBufferMemoryRequirementsInfo2KHR"/>
<record name="ImageMemoryRequirementsInfo2KHR" c:type="VkImageMemoryRequirementsInfo2KHR"/>
<record name="ImageSparseMemoryRequirementsInfo2KHR" c:type="VkImageSparseMemoryRequirementsInfo2KHR"/>
<record name="SparseImageMemoryRequirements2KHR" c:type="VkSparseImageMemoryRequirements2KHR"/>
<record name="ImageFormatListCreateInfoKHR" c:type="VkImageFormatListCreateInfoKHR"/>
<record name="SamplerYcbcrConversionKHR" c:type="VkSamplerYcbcrConversionKHR"/>
<record name="SamplerYcbcrModelConversionKHR" c:type="VkSamplerYcbcrModelConversionKHR"/>
<record name="SamplerYcbcrRangeKHR" c:type="VkSamplerYcbcrRangeKHR"/>
<record name="ChromaLocationKHR" c:type="VkChromaLocationKHR"/>
<record name="SamplerYcbcrConversionCreateInfoKHR" c:type="VkSamplerYcbcrConversionCreateInfoKHR"/>
<record name="SamplerYcbcrConversionInfoKHR" c:type="VkSamplerYcbcrConversionInfoKHR"/>
<record name="BindImagePlaneMemoryInfoKHR" c:type="VkBindImagePlaneMemoryInfoKHR"/>
<record name="ImagePlaneMemoryRequirementsInfoKHR" c:type="VkImagePlaneMemoryRequirementsInfoKHR"/>
<record name="PhysicalDeviceSamplerYcbcrConversionFeaturesKHR" c:type="VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR"/>
<record name="SamplerYcbcrConversionImageFormatPropertiesKHR" c:type="VkSamplerYcbcrConversionImageFormatPropertiesKHR"/>
<record name="BindBufferMemoryInfoKHR" c:type="VkBindBufferMemoryInfoKHR"/>
<record name="BindImageMemoryInfoKHR" c:type="VkBindImageMemoryInfoKHR"/>
<record name="PhysicalDeviceMaintenance3PropertiesKHR" c:type="VkPhysicalDeviceMaintenance3PropertiesKHR"/>
<record name="DescriptorSetLayoutSupportKHR" c:type="VkDescriptorSetLayoutSupportKHR"/>
<record name="PhysicalDevice8BitStorageFeaturesKHR" c:type="VkPhysicalDevice8BitStorageFeaturesKHR"/>
<record name="PhysicalDeviceShaderAtomicInt64FeaturesKHR" c:type="VkPhysicalDeviceShaderAtomicInt64FeaturesKHR"/>
<record name="DriverIdKHR" c:type="VkDriverIdKHR"/>
<record name="ConformanceVersionKHR" c:type="VkConformanceVersionKHR"/>
<record name="PhysicalDeviceDriverPropertiesKHR" c:type="VkPhysicalDeviceDriverPropertiesKHR"/>
<record name="PhysicalDeviceFloatControlsPropertiesKHR" c:type="VkPhysicalDeviceFloatControlsPropertiesKHR"/>
<record name="ResolveModeFlagBitsKHR" c:type="VkResolveModeFlagBitsKHR"/>
<record name="ResolveModeFlagsKHR" c:type="VkResolveModeFlagsKHR"/>
<record name="SubpassDescriptionDepthStencilResolveKHR" c:type="VkSubpassDescriptionDepthStencilResolveKHR"/>
<record name="PhysicalDeviceDepthStencilResolvePropertiesKHR" c:type="VkPhysicalDeviceDepthStencilResolvePropertiesKHR"/>
<record name="PhysicalDeviceVulkanMemoryModelFeaturesKHR" c:type="VkPhysicalDeviceVulkanMemoryModelFeaturesKHR"/>
<record name="SurfaceProtectedCapabilitiesKHR" c:type="VkSurfaceProtectedCapabilitiesKHR"/>
<record name="PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR" c:type="VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR"/>
<record name="DebugReportCallbackEXT" c:type="VkDebugReportCallbackEXT"/>
<record name="DebugReportObjectTypeEXT" c:type="VkDebugReportObjectTypeEXT"/>
<record name="DebugReportFlagBitsEXT" c:type="VkDebugReportFlagBitsEXT"/>
<record name="DebugReportFlagsEXT" c:type="VkDebugReportFlagsEXT"/>
<record name="DebugReportCallbackCreateInfoEXT" c:type="VkDebugReportCallbackCreateInfoEXT"/>
<record name="RasterizationOrderAMD" c:type="VkRasterizationOrderAMD"/>
<record name="PipelineRasterizationStateRasterizationOrderAMD" c:type="VkPipelineRasterizationStateRasterizationOrderAMD"/>
<record name="DebugMarkerObjectNameInfoEXT" c:type="VkDebugMarkerObjectNameInfoEXT"/>
<record name="DebugMarkerObjectTagInfoEXT" c:type="VkDebugMarkerObjectTagInfoEXT"/>
<record name="DebugMarkerMarkerInfoEXT" c:type="VkDebugMarkerMarkerInfoEXT"/>
<record name="DedicatedAllocationImageCreateInfoNV" c:type="VkDedicatedAllocationImageCreateInfoNV"/>
<record name="DedicatedAllocationBufferCreateInfoNV" c:type="VkDedicatedAllocationBufferCreateInfoNV"/>
<record name="DedicatedAllocationMemoryAllocateInfoNV" c:type="VkDedicatedAllocationMemoryAllocateInfoNV"/>
<record name="PipelineRasterizationStateStreamCreateFlagsEXT" c:type="VkPipelineRasterizationStateStreamCreateFlagsEXT"/>
<record name="PhysicalDeviceTransformFeedbackFeaturesEXT" c:type="VkPhysicalDeviceTransformFeedbackFeaturesEXT"/>
<record name="PhysicalDeviceTransformFeedbackPropertiesEXT" c:type="VkPhysicalDeviceTransformFeedbackPropertiesEXT"/>
<record name="PipelineRasterizationStateStreamCreateInfoEXT" c:type="VkPipelineRasterizationStateStreamCreateInfoEXT"/>
<record name="ImageViewHandleInfoNVX" c:type="VkImageViewHandleInfoNVX"/>
<record name="TextureLODGatherFormatPropertiesAMD" c:type="VkTextureLODGatherFormatPropertiesAMD"/>
<record name="ShaderInfoTypeAMD" c:type="VkShaderInfoTypeAMD"/>
<record name="ShaderResourceUsageAMD" c:type="VkShaderResourceUsageAMD"/>
<record name="ShaderStatisticsInfoAMD" c:type="VkShaderStatisticsInfoAMD"/>
<record name="PhysicalDeviceCornerSampledImageFeaturesNV" c:type="VkPhysicalDeviceCornerSampledImageFeaturesNV"/>
<record name="ExternalMemoryHandleTypeFlagBitsNV" c:type="VkExternalMemoryHandleTypeFlagBitsNV"/>
<record name="ExternalMemoryHandleTypeFlagsNV" c:type="VkExternalMemoryHandleTypeFlagsNV"/>
<record name="ExternalMemoryFeatureFlagBitsNV" c:type="VkExternalMemoryFeatureFlagBitsNV"/>
<record name="ExternalMemoryFeatureFlagsNV" c:type="VkExternalMemoryFeatureFlagsNV"/>
<record name="ExternalImageFormatPropertiesNV" c:type="VkExternalImageFormatPropertiesNV"/>
<record name="ExternalMemoryImageCreateInfoNV" c:type="VkExternalMemoryImageCreateInfoNV"/>
<record name="ExportMemoryAllocateInfoNV" c:type="VkExportMemoryAllocateInfoNV"/>
<record name="ValidationCheckEXT" c:type="VkValidationCheckEXT"/>
<record name="ValidationFlagsEXT" c:type="VkValidationFlagsEXT"/>
<record name="ImageViewASTCDecodeModeEXT" c:type="VkImageViewASTCDecodeModeEXT"/>
<record name="PhysicalDeviceASTCDecodeFeaturesEXT" c:type="VkPhysicalDeviceASTCDecodeFeaturesEXT"/>
<record name="ConditionalRenderingFlagBitsEXT" c:type="VkConditionalRenderingFlagBitsEXT"/>
<record name="ConditionalRenderingFlagsEXT" c:type="VkConditionalRenderingFlagsEXT"/>
<record name="ConditionalRenderingBeginInfoEXT" c:type="VkConditionalRenderingBeginInfoEXT"/>
<record name="PhysicalDeviceConditionalRenderingFeaturesEXT" c:type="VkPhysicalDeviceConditionalRenderingFeaturesEXT"/>
<record name="CommandBufferInheritanceConditionalRenderingInfoEXT" c:type="VkCommandBufferInheritanceConditionalRenderingInfoEXT"/>
<record name="ObjectTableNVX" c:type="VkObjectTableNVX"/>
<record name="IndirectCommandsLayoutNVX" c:type="VkIndirectCommandsLayoutNVX"/>
<record name="IndirectCommandsTokenTypeNVX" c:type="VkIndirectCommandsTokenTypeNVX"/>
<record name="ObjectEntryTypeNVX" c:type="VkObjectEntryTypeNVX"/>
<record name="IndirectCommandsLayoutUsageFlagBitsNVX" c:type="VkIndirectCommandsLayoutUsageFlagBitsNVX"/>
<record name="IndirectCommandsLayoutUsageFlagsNVX" c:type="VkIndirectCommandsLayoutUsageFlagsNVX"/>
<record name="ObjectEntryUsageFlagBitsNVX" c:type="VkObjectEntryUsageFlagBitsNVX"/>
<record name="ObjectEntryUsageFlagsNVX" c:type="VkObjectEntryUsageFlagsNVX"/>
<record name="DeviceGeneratedCommandsFeaturesNVX" c:type="VkDeviceGeneratedCommandsFeaturesNVX"/>
<record name="DeviceGeneratedCommandsLimitsNVX" c:type="VkDeviceGeneratedCommandsLimitsNVX"/>
<record name="IndirectCommandsTokenNVX" c:type="VkIndirectCommandsTokenNVX"/>
<record name="IndirectCommandsLayoutTokenNVX" c:type="VkIndirectCommandsLayoutTokenNVX"/>
<record name="IndirectCommandsLayoutCreateInfoNVX" c:type="VkIndirectCommandsLayoutCreateInfoNVX"/>
<record name="CmdProcessCommandsInfoNVX" c:type="VkCmdProcessCommandsInfoNVX"/>
<record name="CmdReserveSpaceForCommandsInfoNVX" c:type="VkCmdReserveSpaceForCommandsInfoNVX"/>
<record name="ObjectTableCreateInfoNVX" c:type="VkObjectTableCreateInfoNVX"/>
<record name="ObjectTableEntryNVX" c:type="VkObjectTableEntryNVX"/>
<record name="ObjectTablePipelineEntryNVX" c:type="VkObjectTablePipelineEntryNVX"/>
<record name="ObjectTableDescriptorSetEntryNVX" c:type="VkObjectTableDescriptorSetEntryNVX"/>
<record name="ObjectTableVertexBufferEntryNVX" c:type="VkObjectTableVertexBufferEntryNVX"/>
<record name="ObjectTableIndexBufferEntryNVX" c:type="VkObjectTableIndexBufferEntryNVX"/>
<record name="ObjectTablePushConstantEntryNVX" c:type="VkObjectTablePushConstantEntryNVX"/>
<record name="ViewportWScalingNV" c:type="VkViewportWScalingNV"/>
<record name="PipelineViewportWScalingStateCreateInfoNV" c:type="VkPipelineViewportWScalingStateCreateInfoNV"/>
<record name="SurfaceCounterFlagBitsEXT" c:type="VkSurfaceCounterFlagBitsEXT"/>
<record name="SurfaceCounterFlagsEXT" c:type="VkSurfaceCounterFlagsEXT"/>
<record name="SurfaceCapabilities2EXT" c:type="VkSurfaceCapabilities2EXT"/>
<record name="DisplayPowerStateEXT" c:type="VkDisplayPowerStateEXT"/>
<record name="DeviceEventTypeEXT" c:type="VkDeviceEventTypeEXT"/>
<record name="DisplayEventTypeEXT" c:type="VkDisplayEventTypeEXT"/>
<record name="DisplayPowerInfoEXT" c:type="VkDisplayPowerInfoEXT"/>
<record name="DeviceEventInfoEXT" c:type="VkDeviceEventInfoEXT"/>
<record name="DisplayEventInfoEXT" c:type="VkDisplayEventInfoEXT"/>
<record name="SwapchainCounterCreateInfoEXT" c:type="VkSwapchainCounterCreateInfoEXT"/>
<record name="RefreshCycleDurationGOOGLE" c:type="VkRefreshCycleDurationGOOGLE"/>
<record name="PastPresentationTimingGOOGLE" c:type="VkPastPresentationTimingGOOGLE"/>
<record name="PresentTimeGOOGLE" c:type="VkPresentTimeGOOGLE"/>
<record name="PresentTimesInfoGOOGLE" c:type="VkPresentTimesInfoGOOGLE"/>
<record name="PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX" c:type="VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX"/>
<record name="ViewportCoordinateSwizzleNV" c:type="VkViewportCoordinateSwizzleNV"/>
<record name="PipelineViewportSwizzleStateCreateFlagsNV" c:type="VkPipelineViewportSwizzleStateCreateFlagsNV"/>
<record name="ViewportSwizzleNV" c:type="VkViewportSwizzleNV"/>
<record name="PipelineViewportSwizzleStateCreateInfoNV" c:type="VkPipelineViewportSwizzleStateCreateInfoNV"/>
<record name="DiscardRectangleModeEXT" c:type="VkDiscardRectangleModeEXT"/>
<record name="PipelineDiscardRectangleStateCreateFlagsEXT" c:type="VkPipelineDiscardRectangleStateCreateFlagsEXT"/>
<record name="PhysicalDeviceDiscardRectanglePropertiesEXT" c:type="VkPhysicalDeviceDiscardRectanglePropertiesEXT"/>
<record name="PipelineDiscardRectangleStateCreateInfoEXT" c:type="VkPipelineDiscardRectangleStateCreateInfoEXT"/>
<record name="ConservativeRasterizationModeEXT" c:type="VkConservativeRasterizationModeEXT"/>
<record name="PipelineRasterizationConservativeStateCreateFlagsEXT" c:type="VkPipelineRasterizationConservativeStateCreateFlagsEXT"/>
<record name="PhysicalDeviceConservativeRasterizationPropertiesEXT" c:type="VkPhysicalDeviceConservativeRasterizationPropertiesEXT"/>
<record name="PipelineRasterizationConservativeStateCreateInfoEXT" c:type="VkPipelineRasterizationConservativeStateCreateInfoEXT"/>
<record name="PipelineRasterizationDepthClipStateCreateFlagsEXT" c:type="VkPipelineRasterizationDepthClipStateCreateFlagsEXT"/>
<record name="PhysicalDeviceDepthClipEnableFeaturesEXT" c:type="VkPhysicalDeviceDepthClipEnableFeaturesEXT"/>
<record name="PipelineRasterizationDepthClipStateCreateInfoEXT" c:type="VkPipelineRasterizationDepthClipStateCreateInfoEXT"/>
<record name="XYColorEXT" c:type="VkXYColorEXT"/>
<record name="HdrMetadataEXT" c:type="VkHdrMetadataEXT"/>
<record name="DebugUtilsMessengerEXT" c:type="VkDebugUtilsMessengerEXT"/>
<record name="DebugUtilsMessengerCallbackDataFlagsEXT" c:type="VkDebugUtilsMessengerCallbackDataFlagsEXT"/>
<record name="DebugUtilsMessengerCreateFlagsEXT" c:type="VkDebugUtilsMessengerCreateFlagsEXT"/>
<record name="DebugUtilsMessageSeverityFlagBitsEXT" c:type="VkDebugUtilsMessageSeverityFlagBitsEXT"/>
<record name="DebugUtilsMessageSeverityFlagsEXT" c:type="VkDebugUtilsMessageSeverityFlagsEXT"/>
<record name="DebugUtilsMessageTypeFlagBitsEXT" c:type="VkDebugUtilsMessageTypeFlagBitsEXT"/>
<record name="DebugUtilsMessageTypeFlagsEXT" c:type="VkDebugUtilsMessageTypeFlagsEXT"/>
<record name="DebugUtilsObjectNameInfoEXT" c:type="VkDebugUtilsObjectNameInfoEXT"/>
<record name="DebugUtilsObjectTagInfoEXT" c:type="VkDebugUtilsObjectTagInfoEXT"/>
<record name="DebugUtilsLabelEXT" c:type="VkDebugUtilsLabelEXT"/>
<record name="DebugUtilsMessengerCallbackDataEXT" c:type="VkDebugUtilsMessengerCallbackDataEXT"/>
<record name="DebugUtilsMessengerCreateInfoEXT" c:type="VkDebugUtilsMessengerCreateInfoEXT"/>
<record name="SamplerReductionModeEXT" c:type="VkSamplerReductionModeEXT"/>
<record name="SamplerReductionModeCreateInfoEXT" c:type="VkSamplerReductionModeCreateInfoEXT"/>
<record name="PhysicalDeviceSamplerFilterMinmaxPropertiesEXT" c:type="VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT"/>
<record name="PhysicalDeviceInlineUniformBlockFeaturesEXT" c:type="VkPhysicalDeviceInlineUniformBlockFeaturesEXT"/>
<record name="PhysicalDeviceInlineUniformBlockPropertiesEXT" c:type="VkPhysicalDeviceInlineUniformBlockPropertiesEXT"/>
<record name="WriteDescriptorSetInlineUniformBlockEXT" c:type="VkWriteDescriptorSetInlineUniformBlockEXT"/>
<record name="DescriptorPoolInlineUniformBlockCreateInfoEXT" c:type="VkDescriptorPoolInlineUniformBlockCreateInfoEXT"/>
<record name="SampleLocationEXT" c:type="VkSampleLocationEXT"/>
<record name="SampleLocationsInfoEXT" c:type="VkSampleLocationsInfoEXT"/>
<record name="AttachmentSampleLocationsEXT" c:type="VkAttachmentSampleLocationsEXT"/>
<record name="SubpassSampleLocationsEXT" c:type="VkSubpassSampleLocationsEXT"/>
<record name="RenderPassSampleLocationsBeginInfoEXT" c:type="VkRenderPassSampleLocationsBeginInfoEXT"/>
<record name="PipelineSampleLocationsStateCreateInfoEXT" c:type="VkPipelineSampleLocationsStateCreateInfoEXT"/>
<record name="PhysicalDeviceSampleLocationsPropertiesEXT" c:type="VkPhysicalDeviceSampleLocationsPropertiesEXT"/>
<record name="MultisamplePropertiesEXT" c:type="VkMultisamplePropertiesEXT"/>
<record name="BlendOverlapEXT" c:type="VkBlendOverlapEXT"/>
<record name="PhysicalDeviceBlendOperationAdvancedFeaturesEXT" c:type="VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT"/>
<record name="PhysicalDeviceBlendOperationAdvancedPropertiesEXT" c:type="VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT"/>
<record name="PipelineColorBlendAdvancedStateCreateInfoEXT" c:type="VkPipelineColorBlendAdvancedStateCreateInfoEXT"/>
<record name="PipelineCoverageToColorStateCreateFlagsNV" c:type="VkPipelineCoverageToColorStateCreateFlagsNV"/>
<record name="PipelineCoverageToColorStateCreateInfoNV" c:type="VkPipelineCoverageToColorStateCreateInfoNV"/>
<record name="CoverageModulationModeNV" c:type="VkCoverageModulationModeNV"/>
<record name="PipelineCoverageModulationStateCreateFlagsNV" c:type="VkPipelineCoverageModulationStateCreateFlagsNV"/>
<record name="PipelineCoverageModulationStateCreateInfoNV" c:type="VkPipelineCoverageModulationStateCreateInfoNV"/>
<record name="DrmFormatModifierPropertiesEXT" c:type="VkDrmFormatModifierPropertiesEXT"/>
<record name="DrmFormatModifierPropertiesListEXT" c:type="VkDrmFormatModifierPropertiesListEXT"/>
<record name="PhysicalDeviceImageDrmFormatModifierInfoEXT" c:type="VkPhysicalDeviceImageDrmFormatModifierInfoEXT"/>
<record name="ImageDrmFormatModifierListCreateInfoEXT" c:type="VkImageDrmFormatModifierListCreateInfoEXT"/>
<record name="ImageDrmFormatModifierExplicitCreateInfoEXT" c:type="VkImageDrmFormatModifierExplicitCreateInfoEXT"/>
<record name="ImageDrmFormatModifierPropertiesEXT" c:type="VkImageDrmFormatModifierPropertiesEXT"/>
<record name="ValidationCacheEXT" c:type="VkValidationCacheEXT"/>
<record name="ValidationCacheHeaderVersionEXT" c:type="VkValidationCacheHeaderVersionEXT"/>
<record name="ValidationCacheCreateFlagsEXT" c:type="VkValidationCacheCreateFlagsEXT"/>
<record name="ValidationCacheCreateInfoEXT" c:type="VkValidationCacheCreateInfoEXT"/>
<record name="ShaderModuleValidationCacheCreateInfoEXT" c:type="VkShaderModuleValidationCacheCreateInfoEXT"/>
<record name="DescriptorBindingFlagBitsEXT" c:type="VkDescriptorBindingFlagBitsEXT"/>
<record name="DescriptorBindingFlagsEXT" c:type="VkDescriptorBindingFlagsEXT"/>
<record name="DescriptorSetLayoutBindingFlagsCreateInfoEXT" c:type="VkDescriptorSetLayoutBindingFlagsCreateInfoEXT"/>
<record name="PhysicalDeviceDescriptorIndexingFeaturesEXT" c:type="VkPhysicalDeviceDescriptorIndexingFeaturesEXT"/>
<record name="PhysicalDeviceDescriptorIndexingPropertiesEXT" c:type="VkPhysicalDeviceDescriptorIndexingPropertiesEXT"/>
<record name="DescriptorSetVariableDescriptorCountAllocateInfoEXT" c:type="VkDescriptorSetVariableDescriptorCountAllocateInfoEXT"/>
<record name="DescriptorSetVariableDescriptorCountLayoutSupportEXT" c:type="VkDescriptorSetVariableDescriptorCountLayoutSupportEXT"/>
<record name="ShadingRatePaletteEntryNV" c:type="VkShadingRatePaletteEntryNV"/>
<record name="CoarseSampleOrderTypeNV" c:type="VkCoarseSampleOrderTypeNV"/>
<record name="ShadingRatePaletteNV" c:type="VkShadingRatePaletteNV"/>
<record name="PipelineViewportShadingRateImageStateCreateInfoNV" c:type="VkPipelineViewportShadingRateImageStateCreateInfoNV"/>
<record name="PhysicalDeviceShadingRateImageFeaturesNV" c:type="VkPhysicalDeviceShadingRateImageFeaturesNV"/>
<record name="PhysicalDeviceShadingRateImagePropertiesNV" c:type="VkPhysicalDeviceShadingRateImagePropertiesNV"/>
<record name="CoarseSampleLocationNV" c:type="VkCoarseSampleLocationNV"/>
<record name="CoarseSampleOrderCustomNV" c:type="VkCoarseSampleOrderCustomNV"/>
<record name="PipelineViewportCoarseSampleOrderStateCreateInfoNV" c:type="VkPipelineViewportCoarseSampleOrderStateCreateInfoNV"/>
<record name="AccelerationStructureNV" c:type="VkAccelerationStructureNV"/>
<record name="RayTracingShaderGroupTypeNV" c:type="VkRayTracingShaderGroupTypeNV"/>
<record name="GeometryTypeNV" c:type="VkGeometryTypeNV"/>
<record name="AccelerationStructureTypeNV" c:type="VkAccelerationStructureTypeNV"/>
<record name="CopyAccelerationStructureModeNV" c:type="VkCopyAccelerationStructureModeNV"/>
<record name="AccelerationStructureMemoryRequirementsTypeNV" c:type="VkAccelerationStructureMemoryRequirementsTypeNV"/>
<record name="GeometryFlagBitsNV" c:type="VkGeometryFlagBitsNV"/>
<record name="GeometryFlagsNV" c:type="VkGeometryFlagsNV"/>
<record name="GeometryInstanceFlagBitsNV" c:type="VkGeometryInstanceFlagBitsNV"/>
<record name="GeometryInstanceFlagsNV" c:type="VkGeometryInstanceFlagsNV"/>
<record name="BuildAccelerationStructureFlagBitsNV" c:type="VkBuildAccelerationStructureFlagBitsNV"/>
<record name="BuildAccelerationStructureFlagsNV" c:type="VkBuildAccelerationStructureFlagsNV"/>
<record name="RayTracingShaderGroupCreateInfoNV" c:type="VkRayTracingShaderGroupCreateInfoNV"/>
<record name="RayTracingPipelineCreateInfoNV" c:type="VkRayTracingPipelineCreateInfoNV"/>
<record name="GeometryTrianglesNV" c:type="VkGeometryTrianglesNV"/>
<record name="GeometryAABBNV" c:type="VkGeometryAABBNV"/>
<record name="GeometryDataNV" c:type="VkGeometryDataNV"/>
<record name="GeometryNV" c:type="VkGeometryNV"/>
<record name="AccelerationStructureInfoNV" c:type="VkAccelerationStructureInfoNV"/>
<record name="AccelerationStructureCreateInfoNV" c:type="VkAccelerationStructureCreateInfoNV"/>
<record name="BindAccelerationStructureMemoryInfoNV" c:type="VkBindAccelerationStructureMemoryInfoNV"/>
<record name="WriteDescriptorSetAccelerationStructureNV" c:type="VkWriteDescriptorSetAccelerationStructureNV"/>
<record name="AccelerationStructureMemoryRequirementsInfoNV" c:type="VkAccelerationStructureMemoryRequirementsInfoNV"/>
<record name="PhysicalDeviceRayTracingPropertiesNV" c:type="VkPhysicalDeviceRayTracingPropertiesNV"/>
<record name="PhysicalDeviceRepresentativeFragmentTestFeaturesNV" c:type="VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV"/>
<record name="PipelineRepresentativeFragmentTestStateCreateInfoNV" c:type="VkPipelineRepresentativeFragmentTestStateCreateInfoNV"/>
<record name="PhysicalDeviceImageViewImageFormatInfoEXT" c:type="VkPhysicalDeviceImageViewImageFormatInfoEXT"/>
<record name="FilterCubicImageViewImageFormatPropertiesEXT" c:type="VkFilterCubicImageViewImageFormatPropertiesEXT"/>
<record name="QueueGlobalPriorityEXT" c:type="VkQueueGlobalPriorityEXT"/>
<record name="DeviceQueueGlobalPriorityCreateInfoEXT" c:type="VkDeviceQueueGlobalPriorityCreateInfoEXT"/>
<record name="ImportMemoryHostPointerInfoEXT" c:type="VkImportMemoryHostPointerInfoEXT"/>
<record name="MemoryHostPointerPropertiesEXT" c:type="VkMemoryHostPointerPropertiesEXT"/>
<record name="PhysicalDeviceExternalMemoryHostPropertiesEXT" c:type="VkPhysicalDeviceExternalMemoryHostPropertiesEXT"/>
<record name="TimeDomainEXT" c:type="VkTimeDomainEXT"/>
<record name="CalibratedTimestampInfoEXT" c:type="VkCalibratedTimestampInfoEXT"/>
<record name="PhysicalDeviceShaderCorePropertiesAMD" c:type="VkPhysicalDeviceShaderCorePropertiesAMD"/>
<record name="MemoryOverallocationBehaviorAMD" c:type="VkMemoryOverallocationBehaviorAMD"/>
<record name="DeviceMemoryOverallocationCreateInfoAMD" c:type="VkDeviceMemoryOverallocationCreateInfoAMD"/>
<record name="PhysicalDeviceVertexAttributeDivisorPropertiesEXT" c:type="VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT"/>
<record name="VertexInputBindingDivisorDescriptionEXT" c:type="VkVertexInputBindingDivisorDescriptionEXT"/>
<record name="PipelineVertexInputDivisorStateCreateInfoEXT" c:type="VkPipelineVertexInputDivisorStateCreateInfoEXT"/>
<record name="PhysicalDeviceVertexAttributeDivisorFeaturesEXT" c:type="VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT"/>
<record name="PipelineCreationFeedbackFlagBitsEXT" c:type="VkPipelineCreationFeedbackFlagBitsEXT"/>
<record name="PipelineCreationFeedbackFlagsEXT" c:type="VkPipelineCreationFeedbackFlagsEXT"/>
<record name="PipelineCreationFeedbackEXT" c:type="VkPipelineCreationFeedbackEXT"/>
<record name="PipelineCreationFeedbackCreateInfoEXT" c:type="VkPipelineCreationFeedbackCreateInfoEXT"/>
<record name="PhysicalDeviceComputeShaderDerivativesFeaturesNV" c:type="VkPhysicalDeviceComputeShaderDerivativesFeaturesNV"/>
<record name="PhysicalDeviceMeshShaderFeaturesNV" c:type="VkPhysicalDeviceMeshShaderFeaturesNV"/>
<record name="PhysicalDeviceMeshShaderPropertiesNV" c:type="VkPhysicalDeviceMeshShaderPropertiesNV"/>
<record name="DrawMeshTasksIndirectCommandNV" c:type="VkDrawMeshTasksIndirectCommandNV"/>
<record name="PhysicalDeviceFragmentShaderBarycentricFeaturesNV" c:type="VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV"/>
<record name="PhysicalDeviceShaderImageFootprintFeaturesNV" c:type="VkPhysicalDeviceShaderImageFootprintFeaturesNV"/>
<record name="PipelineViewportExclusiveScissorStateCreateInfoNV" c:type="VkPipelineViewportExclusiveScissorStateCreateInfoNV"/>
<record name="PhysicalDeviceExclusiveScissorFeaturesNV" c:type="VkPhysicalDeviceExclusiveScissorFeaturesNV"/>
<record name="QueueFamilyCheckpointPropertiesNV" c:type="VkQueueFamilyCheckpointPropertiesNV"/>
<record name="CheckpointDataNV" c:type="VkCheckpointDataNV"/>
<record name="PhysicalDevicePCIBusInfoPropertiesEXT" c:type="VkPhysicalDevicePCIBusInfoPropertiesEXT"/>
<record name="DisplayNativeHdrSurfaceCapabilitiesAMD" c:type="VkDisplayNativeHdrSurfaceCapabilitiesAMD"/>
<record name="SwapchainDisplayNativeHdrCreateInfoAMD" c:type="VkSwapchainDisplayNativeHdrCreateInfoAMD"/>
<record name="PhysicalDeviceFragmentDensityMapFeaturesEXT" c:type="VkPhysicalDeviceFragmentDensityMapFeaturesEXT"/>
<record name="PhysicalDeviceFragmentDensityMapPropertiesEXT" c:type="VkPhysicalDeviceFragmentDensityMapPropertiesEXT"/>
<record name="RenderPassFragmentDensityMapCreateInfoEXT" c:type="VkRenderPassFragmentDensityMapCreateInfoEXT"/>
<record name="PhysicalDeviceScalarBlockLayoutFeaturesEXT" c:type="VkPhysicalDeviceScalarBlockLayoutFeaturesEXT"/>
<record name="PhysicalDeviceMemoryBudgetPropertiesEXT" c:type="VkPhysicalDeviceMemoryBudgetPropertiesEXT"/>
<record name="PhysicalDeviceMemoryPriorityFeaturesEXT" c:type="VkPhysicalDeviceMemoryPriorityFeaturesEXT"/>
<record name="MemoryPriorityAllocateInfoEXT" c:type="VkMemoryPriorityAllocateInfoEXT"/>
<record name="PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV" c:type="VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV"/>
<record name="DeviceAddress" c:type="VkDeviceAddress"/>
<record name="PhysicalDeviceBufferDeviceAddressFeaturesEXT" c:type="VkPhysicalDeviceBufferDeviceAddressFeaturesEXT"/>
<record name="PhysicalDeviceBufferAddressFeaturesEXT" c:type="VkPhysicalDeviceBufferAddressFeaturesEXT"/>
<record name="BufferDeviceAddressInfoEXT" c:type="VkBufferDeviceAddressInfoEXT"/>
<record name="BufferDeviceAddressCreateInfoEXT" c:type="VkBufferDeviceAddressCreateInfoEXT"/>
<record name="ImageStencilUsageCreateInfoEXT" c:type="VkImageStencilUsageCreateInfoEXT"/>
<record name="ValidationFeatureEnableEXT" c:type="VkValidationFeatureEnableEXT"/>
<record name="ValidationFeatureDisableEXT" c:type="VkValidationFeatureDisableEXT"/>
<record name="ValidationFeaturesEXT" c:type="VkValidationFeaturesEXT"/>
<record name="ComponentTypeNV" c:type="VkComponentTypeNV"/>
<record name="ScopeNV" c:type="VkScopeNV"/>
<record name="CooperativeMatrixPropertiesNV" c:type="VkCooperativeMatrixPropertiesNV"/>
<record name="PhysicalDeviceCooperativeMatrixFeaturesNV" c:type="VkPhysicalDeviceCooperativeMatrixFeaturesNV"/>
<record name="PhysicalDeviceCooperativeMatrixPropertiesNV" c:type="VkPhysicalDeviceCooperativeMatrixPropertiesNV"/>
<record name="CoverageReductionModeNV" c:type="VkCoverageReductionModeNV"/>
<record name="PipelineCoverageReductionStateCreateFlagsNV" c:type="VkPipelineCoverageReductionStateCreateFlagsNV"/>
<record name="PhysicalDeviceCoverageReductionModeFeaturesNV" c:type="VkPhysicalDeviceCoverageReductionModeFeaturesNV"/>
<record name="PipelineCoverageReductionStateCreateInfoNV" c:type="VkPipelineCoverageReductionStateCreateInfoNV"/>
<record name="FramebufferMixedSamplesCombinationNV" c:type="VkFramebufferMixedSamplesCombinationNV"/>
<record name="PhysicalDeviceYcbcrImageArraysFeaturesEXT" c:type="VkPhysicalDeviceYcbcrImageArraysFeaturesEXT"/>
<record name="HeadlessSurfaceCreateFlagsEXT" c:type="VkHeadlessSurfaceCreateFlagsEXT"/>
<record name="HeadlessSurfaceCreateInfoEXT" c:type="VkHeadlessSurfaceCreateInfoEXT"/>
<record name="PhysicalDeviceHostQueryResetFeaturesEXT" c:type="VkPhysicalDeviceHostQueryResetFeaturesEXT"/>
</namespace>
</repository>

18155
gir-files/WebKit2-4.0.gir Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

270
gir-files/cairo-1.0.gir Normal file
View File

@ -0,0 +1,270 @@
<?xml version="1.0"?>
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2">
<package name="cairo-gobject"/>
<c:include name="cairo-gobject.h"/>
<namespace name="cairo" version="1.0" shared-library="libcairo-gobject.so.2" c:identifier-prefixes="cairo" c:symbol-prefixes="cairo">
<record name="Context" c:type="cairo_t" foreign="1" glib:type-name="CairoContext" glib:get-type="cairo_gobject_context_get_type"/>
<record name="Device" c:type="cairo_device_t" foreign="1" glib:type-name="CairoDevice" glib:get-type="cairo_gobject_device_get_type"/>
<record name="Surface" c:type="cairo_surface_t" foreign="1" glib:type-name="CairoSurface" glib:get-type="cairo_gobject_surface_get_type"/>
<record name="Matrix" c:type="cairo_matrix_t" foreign="1"/>
<record name="Pattern" c:type="cairo_pattern_t" foreign="1" glib:type-name="CairoPattern" glib:get-type="cairo_gobject_pattern_get_type"/>
<record name="Region" c:type="cairo_region_t" foreign="1" glib:type-name="CairoRegion" glib:get-type="cairo_gobject_region_get_type"/>
<enumeration name="Status" c:type="cairo_status_t" glib:type-name="cairo_status_t" glib:get-type="cairo_gobject_status_get_type">
<member name="success" value="0" c:identifier="CAIRO_STATUS_SUCCESS"/>
<member name="no_memory" value="1" c:identifier="CAIRO_STATUS_NO_MEMORY"/>
<member name="invalid_restore" value="2" c:identifier="CAIRO_STATUS_INVALID_RESTORE"/>
<member name="invalid_pop_group" value="3" c:identifier="CAIRO_STATUS_INVALID_POP_GROUP"/>
<member name="no_current_point" value="4" c:identifier="CAIRO_STATUS_NO_CURRENT_POINT"/>
<member name="invalid_matrix" value="5" c:identifier="CAIRO_STATUS_INVALID_MATRIX"/>
<member name="invalid_status" value="6" c:identifier="CAIRO_STATUS_INVALID_STATUS"/>
<member name="null_pointer" value="7" c:identifier="CAIRO_STATUS_NULL_POINTER"/>
<member name="invalid_string" value="8" c:identifier="CAIRO_STATUS_INVALID_STRING"/>
<member name="invalid_path_data" value="9" c:identifier="CAIRO_STATUS_INVALID_PATH_DATA"/>
<member name="read_error" value="10" c:identifier="CAIRO_STATUS_READ_ERROR"/>
<member name="write_error" value="11" c:identifier="CAIRO_STATUS_WRITE_ERROR"/>
<member name="surface_finished" value="12" c:identifier="CAIRO_STATUS_SURFACE_FINISHED"/>
<member name="surface_type_mismatch" value="13" c:identifier="CAIRO_STATUS_SURFACE_TYPE_MISMATCH"/>
<member name="pattern_type_mismatch" value="14" c:identifier="CAIRO_STATUS_PATTERN_TYPE_MISMATCH"/>
<member name="invalid_content" value="15" c:identifier="CAIRO_STATUS_INVALID_CONTENT"/>
<member name="invalid_format" value="16" c:identifier="CAIRO_STATUS_INVALID_FORMAT"/>
<member name="invalid_visual" value="17" c:identifier="CAIRO_STATUS_INVALID_VISUAL"/>
<member name="file_not_found" value="18" c:identifier="CAIRO_STATUS_FILE_NOT_FOUND"/>
<member name="invalid_dash" value="19" c:identifier="CAIRO_STATUS_INVALID_DASH"/>
<member name="invalid_dsc_comment" value="20" c:identifier="CAIRO_STATUS_INVALID_DSC_COMMENT"/>
<member name="invalid_index" value="21" c:identifier="CAIRO_STATUS_INVALID_INDEX"/>
<member name="clip_not_representable" value="22" c:identifier="CAIRO_STATUS_CLIP_NOT_REPRESENTABLE"/>
<member name="temp_file_error" value="23" c:identifier="CAIRO_STATUS_TEMP_FILE_ERROR"/>
<member name="invalid_stride" value="24" c:identifier="CAIRO_STATUS_INVALID_STRIDE"/>
<member name="font_type_mismatch" value="25" c:identifier="CAIRO_STATUS_FONT_TYPE_MISMATCH"/>
<member name="user_font_immutable" value="26" c:identifier="CAIRO_STATUS_USER_FONT_IMMUTABLE"/>
<member name="user_font_error" value="27" c:identifier="CAIRO_STATUS_USER_FONT_ERROR"/>
<member name="negative_count" value="28" c:identifier="CAIRO_STATUS_NEGATIVE_COUNT"/>
<member name="invalid_clusters" value="29" c:identifier="CAIRO_STATUS_INVALID_CLUSTERS"/>
<member name="invalid_slant" value="30" c:identifier="CAIRO_STATUS_INVALID_SLANT"/>
<member name="invalid_weight" value="31" c:identifier="CAIRO_STATUS_INVALID_WEIGHT"/>
<member name="invalid_size" value="32" c:identifier="CAIRO_STATUS_INVALID_SIZE"/>
<member name="user_font_not_implemented" value="33" c:identifier="CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED"/>
<member name="device_type_mismatch" value="34" c:identifier="CAIRO_STATUS_DEVICE_TYPE_MISMATCH"/>
<member name="device_error" value="35" c:identifier="CAIRO_STATUS_DEVICE_ERROR"/>
<member name="invalid_mesh_construction" value="36" c:identifier="CAIRO_STATUS_INVALID_MESH_CONSTRUCTION"/>
<member name="device_finished" value="37" c:identifier="CAIRO_STATUS_DEVICE_FINISHED"/>
<member name="jbig2_global_missing" value="38" c:identifier="CAIRO_STATUS_JBIG2_GLOBAL_MISSING"/>
</enumeration>
<enumeration name="Content" c:type="cairo_content_t" glib:type-name="cairo_content_t" glib:get-type="cairo_gobject_content_get_type">
<member name="color" value="4096" c:identifier="CAIRO_CONTENT_COLOR"/>
<member name="alpha" value="8192" c:identifier="CAIRO_CONTENT_ALPHA"/>
<member name="color_alpha" value="12288" c:identifier="CAIRO_CONTENT_COLOR_ALPHA"/>
</enumeration>
<enumeration name="Operator" c:type="cairo_operator_t" glib:type-name="cairo_operator_t" glib:get-type="cairo_gobject_operator_get_type">
<member name="clear" value="0" c:identifier="CAIRO_OPERATOR_CLEAR"/>
<member name="source" value="1" c:identifier="CAIRO_OPERATOR_SOURCE"/>
<member name="over" value="2" c:identifier="CAIRO_OPERATOR_OVER"/>
<member name="in" value="3" c:identifier="CAIRO_OPERATOR_IN"/>
<member name="out" value="4" c:identifier="CAIRO_OPERATOR_OUT"/>
<member name="atop" value="5" c:identifier="CAIRO_OPERATOR_ATOP"/>
<member name="dest" value="6" c:identifier="CAIRO_OPERATOR_DEST"/>
<member name="dest_over" value="7" c:identifier="CAIRO_OPERATOR_DEST_OVER"/>
<member name="dest_in" value="8" c:identifier="CAIRO_OPERATOR_DEST_IN"/>
<member name="dest_out" value="9" c:identifier="CAIRO_OPERATOR_DEST_OUT"/>
<member name="dest_atop" value="10" c:identifier="CAIRO_OPERATOR_DEST_ATOP"/>
<member name="xor" value="11" c:identifier="CAIRO_OPERATOR_XOR"/>
<member name="add" value="12" c:identifier="CAIRO_OPERATOR_ADD"/>
<member name="saturate" value="13" c:identifier="CAIRO_OPERATOR_SATURATE"/>
<member name="multiply" value="14" c:identifier="CAIRO_OPERATOR_MULTIPLY"/>
<member name="screen" value="15" c:identifier="CAIRO_OPERATOR_SCREEN"/>
<member name="overlay" value="16" c:identifier="CAIRO_OPERATOR_OVERLAY"/>
<member name="darken" value="17" c:identifier="CAIRO_OPERATOR_DARKEN"/>
<member name="lighten" value="18" c:identifier="CAIRO_OPERATOR_LIGHTEN"/>
<member name="color_dodge" value="19" c:identifier="CAIRO_OPERATOR_COLOR_DODGE"/>
<member name="color_burn" value="20" c:identifier="CAIRO_OPERATOR_COLOR_BURN"/>
<member name="hard_light" value="21" c:identifier="CAIRO_OPERATOR_HARD_LIGHT"/>
<member name="soft_light" value="22" c:identifier="CAIRO_OPERATOR_SOFT_LIGHT"/>
<member name="difference" value="23" c:identifier="CAIRO_OPERATOR_DIFFERENCE"/>
<member name="exclusion" value="24" c:identifier="CAIRO_OPERATOR_EXCLUSION"/>
<member name="hsl_hue" value="25" c:identifier="CAIRO_OPERATOR_HSL_HUE"/>
<member name="hsl_saturation" value="26" c:identifier="CAIRO_OPERATOR_HSL_SATURATION"/>
<member name="hsl_color" value="27" c:identifier="CAIRO_OPERATOR_HSL_COLOR"/>
<member name="hsl_luminosity" value="28" c:identifier="CAIRO_OPERATOR_HSL_LUMINOSITY"/>
</enumeration>
<enumeration name="Antialias" c:type="cairo_antialias_t" glib:type-name="cairo_antialias_t" glib:get-type="cairo_gobject_antialias_get_type">
<member name="default" value="0" c:identifier="CAIRO_ANTIALIAS_DEFAULT"/>
<member name="none" value="1" c:identifier="CAIRO_ANTIALIAS_NONE"/>
<member name="gray" value="2" c:identifier="CAIRO_ANTIALIAS_GRAY"/>
<member name="subpixel" value="3" c:identifier="CAIRO_ANTIALIAS_SUBPIXEL"/>
<member name="fast" value="4" c:identifier="CAIRO_ANTIALIAS_FAST"/>
<member name="good" value="5" c:identifier="CAIRO_ANTIALIAS_GOOD"/>
<member name="best" value="6" c:identifier="CAIRO_ANTIALIAS_BEST"/>
</enumeration>
<enumeration name="FillRule" c:type="cairo_fill_rule_t" glib:type-name="cairo_fill_rule_t" glib:get-type="cairo_gobject_fill_rule_get_type">
<member name="winding" value="0" c:identifier="CAIRO_FILL_RULE_WINDING"/>
<member name="even_odd" value="1" c:identifier="CAIRO_FILL_RULE_EVEN_ODD"/>
</enumeration>
<enumeration name="LineCap" c:type="cairo_line_cap_t" glib:type-name="cairo_line_cap_t" glib:get-type="cairo_gobject_line_cap_get_type">
<member name="butt" value="0" c:identifier="CAIRO_LINE_CAP_BUTT"/>
<member name="round" value="1" c:identifier="CAIRO_LINE_CAP_ROUND"/>
<member name="square" value="2" c:identifier="CAIRO_LINE_CAP_SQUARE"/>
</enumeration>
<enumeration name="LineJoin" c:type="cairo_line_join_t" glib:type-name="cairo_line_join_t" glib:get-type="cairo_gobject_line_join_get_type">
<member name="miter" value="0" c:identifier="CAIRO_LINE_JOIN_MITER"/>
<member name="round" value="1" c:identifier="CAIRO_LINE_JOIN_ROUND"/>
<member name="bevel" value="2" c:identifier="CAIRO_LINE_JOIN_BEVEL"/>
</enumeration>
<enumeration name="TextClusterFlags" c:type="cairo_text_cluster_flags_t" glib:type-name="cairo_text_cluster_flags_t" glib:get-type="cairo_gobject_text_cluster_flags_get_type">
<member name="backward" value="1" c:identifier="CAIRO_TEXT_CLUSTER_FLAG_BACKWARD"/>
</enumeration>
<enumeration name="FontSlant" c:type="cairo_font_slant_t" glib:type-name="cairo_font_slant_t" glib:get-type="cairo_gobject_font_slant_get_type">
<member name="normal" value="0" c:identifier="CAIRO_FONT_SLANT_NORMAL"/>
<member name="italic" value="1" c:identifier="CAIRO_FONT_SLANT_ITALIC"/>
<member name="oblique" value="2" c:identifier="CAIRO_FONT_SLANT_OBLIQUE"/>
</enumeration>
<enumeration name="FontWeight" c:type="cairo_font_weight_t" glib:type-name="cairo_font_weight_t" glib:get-type="cairo_gobject_font_weight_get_type">
<member name="normal" value="0" c:identifier="CAIRO_FONT_WEIGHT_NORMAL"/>
<member name="bold" value="1" c:identifier="CAIRO_FONT_WEIGHT_BOLD"/>
</enumeration>
<enumeration name="SubpixelOrder" c:type="cairo_subpixel_order_t" glib:type-name="cairo_subpixel_order_t" glib:get-type="cairo_gobject_subpixel_order_get_type">
<member name="default" value="0" c:identifier="CAIRO_SUBPIXEL_ORDER_DEFAULT"/>
<member name="rgb" value="1" c:identifier="CAIRO_SUBPIXEL_ORDER_RGB"/>
<member name="bgr" value="2" c:identifier="CAIRO_SUBPIXEL_ORDER_BGR"/>
<member name="vrgb" value="3" c:identifier="CAIRO_SUBPIXEL_ORDER_VRGB"/>
<member name="vbgr" value="4" c:identifier="CAIRO_SUBPIXEL_ORDER_VBGR"/>
</enumeration>
<enumeration name="HintStyle" c:type="cairo_hint_style_t" glib:type-name="cairo_hint_style_t" glib:get-type="cairo_gobject_hint_style_get_type">
<member name="default" value="0" c:identifier="CAIRO_HINT_STYLE_DEFAULT"/>
<member name="none" value="1" c:identifier="CAIRO_HINT_STYLE_NONE"/>
<member name="slight" value="2" c:identifier="CAIRO_HINT_STYLE_SLIGHT"/>
<member name="medium" value="3" c:identifier="CAIRO_HINT_STYLE_MEDIUM"/>
<member name="full" value="4" c:identifier="CAIRO_HINT_STYLE_FULL"/>
</enumeration>
<enumeration name="HintMetrics" c:type="cairo_hint_metrics_t" glib:type-name="cairo_hint_metrics_t" glib:get-type="cairo_gobject_hint_metrics_get_type">
<member name="default" value="0" c:identifier="CAIRO_HINT_METRICS_DEFAULT"/>
<member name="off" value="1" c:identifier="CAIRO_HINT_METRICS_OFF"/>
<member name="on" value="2" c:identifier="CAIRO_HINT_METRICS_ON"/>
</enumeration>
<record name="FontOptions" c:type="cairo_font_options_t" foreign="1" glib:type-name="CairoFontOptions" glib:get-type="cairo_gobject_font_options_get_type"/>
<enumeration name="FontType" c:type="cairo_font_type_t" glib:type-name="cairo_font_type_t" glib:get-type="cairo_gobject_font_type_get_type">
<member name="toy" value="0" c:identifier="CAIRO_FONT_TYPE_TOY"/>
<member name="ft" value="1" c:identifier="CAIRO_FONT_TYPE_FT"/>
<member name="win32" value="2" c:identifier="CAIRO_FONT_TYPE_WIN32"/>
<member name="quartz" value="3" c:identifier="CAIRO_FONT_TYPE_QUARTZ"/>
<member name="user" value="4" c:identifier="CAIRO_FONT_TYPE_USER"/>
</enumeration>
<enumeration name="PathDataType" c:type="cairo_path_data_type_t" glib:type-name="cairo_path_data_type_t" glib:get-type="cairo_gobject_path_data_type_get_type">
<member name="move_to" value="0" c:identifier="CAIRO_PATH_MOVE_TO"/>
<member name="line_to" value="1" c:identifier="CAIRO_PATH_LINE_TO"/>
<member name="curve_to" value="2" c:identifier="CAIRO_PATH_CURVE_TO"/>
<member name="close_path" value="3" c:identifier="CAIRO_PATH_CLOSE_PATH"/>
</enumeration>
<enumeration name="DeviceType" c:type="cairo_device_type_t" glib:type-name="cairo_device_type_t" glib:get-type="cairo_gobject_device_type_get_type">
<member name="drm" value="0" c:identifier="CAIRO_DEVICE_TYPE_DRM"/>
<member name="gl" value="1" c:identifier="CAIRO_DEVICE_TYPE_GL"/>
<member name="script" value="2" c:identifier="CAIRO_DEVICE_TYPE_SCRIPT"/>
<member name="xcb" value="3" c:identifier="CAIRO_DEVICE_TYPE_XCB"/>
<member name="xlib" value="4" c:identifier="CAIRO_DEVICE_TYPE_XLIB"/>
<member name="xml" value="5" c:identifier="CAIRO_DEVICE_TYPE_XML"/>
<member name="cogl" value="6" c:identifier="CAIRO_DEVICE_TYPE_COGL"/>
<member name="win32" value="7" c:identifier="CAIRO_DEVICE_TYPE_WIN32"/>
<member name="invalid" value="-1" c:identifier="CAIRO_DEVICE_TYPE_INVALID"/>
</enumeration>
<enumeration name="SurfaceType" c:type="cairo_surface_type_t" glib:type-name="cairo_surface_type_t" glib:get-type="cairo_gobject_surface_type_get_type">
<member name="image" value="0" c:identifier="CAIRO_SURFACE_TYPE_IMAGE"/>
<member name="pdf" value="1" c:identifier="CAIRO_SURFACE_TYPE_PDF"/>
<member name="ps" value="2" c:identifier="CAIRO_SURFACE_TYPE_PS"/>
<member name="xlib" value="3" c:identifier="CAIRO_SURFACE_TYPE_XLIB"/>
<member name="xcb" value="4" c:identifier="CAIRO_SURFACE_TYPE_XCB"/>
<member name="glitz" value="5" c:identifier="CAIRO_SURFACE_TYPE_GLITZ"/>
<member name="quartz" value="6" c:identifier="CAIRO_SURFACE_TYPE_QUARTZ"/>
<member name="win32" value="7" c:identifier="CAIRO_SURFACE_TYPE_WIN32"/>
<member name="beos" value="8" c:identifier="CAIRO_SURFACE_TYPE_BEOS"/>
<member name="directfb" value="9" c:identifier="CAIRO_SURFACE_TYPE_DIRECTFB"/>
<member name="svg" value="10" c:identifier="CAIRO_SURFACE_TYPE_SVG"/>
<member name="os2" value="11" c:identifier="CAIRO_SURFACE_TYPE_OS2"/>
<member name="win32_printing" value="12" c:identifier="CAIRO_SURFACE_TYPE_WIN32_PRINTING"/>
<member name="quartz_image" value="13" c:identifier="CAIRO_SURFACE_TYPE_QUARTZ_IMAGE"/>
<member name="script" value="14" c:identifier="CAIRO_SURFACE_TYPE_SCRIPT"/>
<member name="qt" value="15" c:identifier="CAIRO_SURFACE_TYPE_QT"/>
<member name="recording" value="16" c:identifier="CAIRO_SURFACE_TYPE_RECORDING"/>
<member name="vg" value="17" c:identifier="CAIRO_SURFACE_TYPE_VG"/>
<member name="gl" value="18" c:identifier="CAIRO_SURFACE_TYPE_GL"/>
<member name="drm" value="19" c:identifier="CAIRO_SURFACE_TYPE_DRM"/>
<member name="tee" value="20" c:identifier="CAIRO_SURFACE_TYPE_TEE"/>
<member name="xml" value="21" c:identifier="CAIRO_SURFACE_TYPE_XML"/>
<member name="skia" value="22" c:identifier="CAIRO_SURFACE_TYPE_SKIA"/>
<member name="subsurface" value="23" c:identifier="CAIRO_SURFACE_TYPE_SUBSURFACE"/>
<member name="cogl" value="24" c:identifier="CAIRO_SURFACE_TYPE_COGL"/>
</enumeration>
<enumeration name="Format" c:type="cairo_format_t" glib:type-name="cairo_format_t" glib:get-type="cairo_gobject_format_get_type">
<member name="invalid" value="-1" c:identifier="CAIRO_FORMAT_INVALID"/>
<member name="argb32" value="0" c:identifier="CAIRO_FORMAT_ARGB32"/>
<member name="rgb24" value="1" c:identifier="CAIRO_FORMAT_RGB24"/>
<member name="a8" value="2" c:identifier="CAIRO_FORMAT_A8"/>
<member name="a1" value="3" c:identifier="CAIRO_FORMAT_A1"/>
<member name="rgb16_565" value="4" c:identifier="CAIRO_FORMAT_RGB16_565"/>
<member name="rgb30" value="5" c:identifier="CAIRO_FORMAT_RGB30"/>
</enumeration>
<enumeration name="PatternType" c:type="cairo_pattern_type_t" glib:type-name="cairo_pattern_type_t" glib:get-type="cairo_gobject_pattern_type_get_type">
<member name="solid" value="0" c:identifier="CAIRO_PATTERN_TYPE_SOLID"/>
<member name="surface" value="1" c:identifier="CAIRO_PATTERN_TYPE_SURFACE"/>
<member name="linear" value="2" c:identifier="CAIRO_PATTERN_TYPE_LINEAR"/>
<member name="radial" value="3" c:identifier="CAIRO_PATTERN_TYPE_RADIAL"/>
<member name="mesh" value="4" c:identifier="CAIRO_PATTERN_TYPE_MESH"/>
<member name="raster_source" value="5" c:identifier="CAIRO_PATTERN_TYPE_RASTER_SOURCE"/>
</enumeration>
<enumeration name="Extend" c:type="cairo_extend_t" glib:type-name="cairo_extend_t" glib:get-type="cairo_gobject_extend_get_type">
<member name="none" value="0" c:identifier="CAIRO_EXTEND_NONE"/>
<member name="repeat" value="1" c:identifier="CAIRO_EXTEND_REPEAT"/>
<member name="reflect" value="2" c:identifier="CAIRO_EXTEND_REFLECT"/>
<member name="pad" value="3" c:identifier="CAIRO_EXTEND_PAD"/>
</enumeration>
<enumeration name="Filter" c:type="cairo_filter_t" glib:type-name="cairo_filter_t" glib:get-type="cairo_gobject_filter_get_type">
<member name="fast" value="0" c:identifier="CAIRO_FILTER_FAST"/>
<member name="good" value="1" c:identifier="CAIRO_FILTER_GOOD"/>
<member name="best" value="2" c:identifier="CAIRO_FILTER_BEST"/>
<member name="nearest" value="3" c:identifier="CAIRO_FILTER_NEAREST"/>
<member name="bilinear" value="4" c:identifier="CAIRO_FILTER_BILINEAR"/>
<member name="gaussian" value="5" c:identifier="CAIRO_FILTER_GAUSSIAN"/>
</enumeration>
<enumeration name="RegionOverlap" c:type="cairo_region_overlap_t" glib:type-name="cairo_region_overlap_t" glib:get-type="cairo_gobject_region_overlap_get_type">
<member name="in" value="0" c:identifier="CAIRO_REGION_OVERLAP_IN"/>
<member name="out" value="1" c:identifier="CAIRO_REGION_OVERLAP_OUT"/>
<member name="part" value="2" c:identifier="CAIRO_REGION_OVERLAP_PART"/>
</enumeration>
<record name="FontFace" c:type="cairo_font_face_t" foreign="1" glib:type-name="CairoFontFace" glib:get-type="cairo_gobject_font_face_get_type"/>
<record name="ScaledFont" c:type="cairo_scaled_font_t" foreign="1" glib:type-name="CairoScaledFont" glib:get-type="cairo_gobject_scaled_font_get_type"/>
<record name="Path" c:type="cairo_path_t" foreign="1"/>
<record name="Rectangle" c:type="cairo_rectangle_t" glib:type-name="CairoRectangle" glib:get-type="cairo_gobject_rectangle_get_type">
<field name="x" writable="1">
<type name="gdouble" c:type="gdouble"/>
</field>
<field name="y" writable="1">
<type name="gdouble" c:type="gdouble"/>
</field>
<field name="width" writable="1">
<type name="gdouble" c:type="gdouble"/>
</field>
<field name="height" writable="1">
<type name="gdouble" c:type="gdouble"/>
</field>
</record>
<record name="RectangleInt" c:type="cairo_rectangle_int_t" glib:type-name="CairoRectangleInt" glib:get-type="cairo_gobject_rectangle_int_get_type">
<field name="x" writable="1">
<type name="gint" c:type="gint"/>
</field>
<field name="y" writable="1">
<type name="gint" c:type="gint"/>
</field>
<field name="width" writable="1">
<type name="gint" c:type="gint"/>
</field>
<field name="height" writable="1">
<type name="gint" c:type="gint"/>
</field>
</record>
<function name="image_surface_create" c:identifier="cairo_image_surface_create">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
</parameters>
</function>
</namespace>
</repository>

21
gir-files/dl.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/sh
set -e
VER="eoan"
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libatk1.0-dev/download
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libgirepository1.0-dev/download
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libpango1.0-dev/download
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libgdk-pixbuf2.0-dev/download
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libgtk-3-dev/download
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libgtksourceview-3.0-dev/download
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libsecret-1-dev/download
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libvte-2.91-dev/download
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libjavascriptcoregtk-4.0-dev/download
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libsoup2.4-dev/download
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libwebkit2gtk-4.0-dev/download
# version 4
./gir-dl.sh https://packages.debian.org/experimental/amd64/libgtk-4-dev/download http.us.debian.org
./reformat.sh

104
gir-files/fix.sh Executable file
View File

@ -0,0 +1,104 @@
#!/bin/bash
set -x -e
# Remove Int32 alias because it misses c:type, it not like anyone actually cares about it.
xmlstarlet ed -P -L \
-d '//_:alias[@name="Int32"]' \
freetype2-2.0.gir
# gir uses error domain to find quark function corresponding to given error enum,
# but in this case it happens to be named differently, i.e., as g_option_error_quark.
xmlstarlet ed -P -L \
-u '//*[@glib:error-domain="g-option-context-error-quark"]/@glib:error-domain' -v g-option-error-quark \
GLib-2.0.gir
# GtkIconSize usage
xmlstarlet ed -P -L \
-u '//_:type[@c:type="GtkIconSize"]/@name' -v "IconSize" \
-u '//_:type[@c:type="GtkIconSize*"]/@name' -v "IconSize" \
Gtk-3.0.gir
# incorrect GIR due to gobject-introspection GitLab issue #189
xmlstarlet ed -P -L \
-u '//_:class[@name="IconTheme"]/_:method//_:parameter[@name="icon_names"]/_:array/@c:type' -v "const gchar**" \
-u '//_:class[@name="IconTheme"]/_:method[@name="get_search_path"]//_:parameter[@name="path"]/_:array/@c:type' -v "gchar***" \
-u '//_:class[@name="IconTheme"]/_:method[@name="set_search_path"]//_:parameter[@name="path"]/_:array/@c:type' -v "const gchar**" \
Gtk-3.0.gir
# incorrect GIR due to gobject-introspection GitLab issue #189
xmlstarlet ed -P -L \
-u '//_:record[@name="KeyFile"]/_:method[@name="set_boolean_list"]//_:parameter[@name="list"]/_:array/@c:type' -v "gboolean*" \
-u '//_:record[@name="KeyFile"]/_:method[@name="set_double_list"]//_:parameter[@name="list"]/_:array/@c:type' -v "gdouble*" \
-u '//_:record[@name="KeyFile"]/_:method[@name="set_integer_list"]//_:parameter[@name="list"]/_:array/@c:type' -v "gint*" \
-u '//_:record[@name="KeyFile"]/_:method[@name="set_locale_string_list"]//_:parameter[@name="list"]/_:array/@c:type' -v "const gchar* const*" \
-u '//_:record[@name="KeyFile"]/_:method[@name="set_string_list"]//_:parameter[@name="list"]/_:array/@c:type' -v "const gchar* const*" \
GLib-2.0.gir
# incorrect GIR due to gobject-introspection GitLab issue #189
xmlstarlet ed -P -L \
-u '//_:class[@name="Object"]/_:method[@name="getv"]//_:parameter[@name="names"]/_:array/@c:type' -v "const gchar**" \
-u '//_:class[@name="Object"]/_:method[@name="getv"]//_:parameter[@name="values"]/_:array/@c:type' -v "GValue*" \
-u '//_:class[@name="Object"]/_:method[@name="setv"]//_:parameter[@name="names"]/_:array/@c:type' -v "const gchar**" \
-u '//_:class[@name="Object"]/_:method[@name="setv"]//_:parameter[@name="values"]/_:array/@c:type' -v "const GValue*" \
-u '//_:class[@name="Object"]/_:constructor[@name="new_with_properties"]//_:parameter[@name="names"]/_:array/@c:type' -v "const char**" \
-u '//_:class[@name="Object"]/_:constructor[@name="new_with_properties"]//_:parameter[@name="values"]/_:array/@c:type' -v "const GValue*" \
GObject-2.0.gir
# incorrectly marked as transfer-none GitLab issue #197
xmlstarlet ed -P -L \
-u '//_:class[@name="Binding"]/_:method[@name="unbind"]//_:instance-parameter[@name="binding"]/@transfer-ownership' -v "full" \
GObject-2.0.gir
# fix wrong "full" transfer ownership
xmlstarlet ed -P -L \
-u '//_:method[@c:identifier="gdk_frame_clock_get_current_timings"]/_:return-value/@transfer-ownership' -v "none" \
-u '//_:method[@c:identifier="gdk_frame_clock_get_timings"]/_:return-value/@transfer-ownership' -v "none" \
Gdk-3.0.gir
# replace "gint" response_id parameters with "ResponseType"
xmlstarlet ed -P -L \
-u '//_:parameter[@name="response_id"]/_:type[@name="gint"]/@c:type' -v "GtkResponseType" \
-u '//_:parameter[@name="response_id"]/_:type[@name="gint"]/@name' -v "ResponseType" \
Gtk-3.0.gir Gtk-4.0.gir
# fix wrong "full" transfer ownership
xmlstarlet ed -P -L \
-u '//_:constructor[@c:identifier="gtk_shortcut_label_new"]/_:return-value/@transfer-ownership' -v "none" \
Gtk-3.0.gir Gtk-4.0.gir
# add out annotation for functions returning GValue
xmlstarlet ed -P -L \
-a '//_:method[@c:identifier="gtk_style_context_get_style_property"]//_:parameter[@name="value" and not(@direction)]' -type attr -n "direction" -v "out" \
-a '//_:method[@c:identifier="gtk_style_context_get_style_property"]//_:parameter[@name="value" and not(@caller-allocates)]' -type attr -n "caller-allocates" -v "1" \
-a '//_:method[@c:identifier="gtk_cell_area_cell_get_property"]//_:parameter[@name="value" and not(@direction)]' -type attr -n "direction" -v "out" \
-a '//_:method[@c:identifier="gtk_cell_area_cell_get_property"]//_:parameter[@name="value" and not(@caller-allocates)]' -type attr -n "caller-allocates" -v "1" \
-a '//_:method[@c:identifier="gtk_container_child_get_property"]//_:parameter[@name="value" and not(@direction)]' -type attr -n "direction" -v "out" \
-a '//_:method[@c:identifier="gtk_container_child_get_property"]//_:parameter[@name="value" and not(@caller-allocates)]' -type attr -n "caller-allocates" -v "1" \
-a '//_:method[@c:identifier="gtk_widget_style_get_property"]//_:parameter[@name="value" and not(@direction)]' -type attr -n "direction" -v "out" \
-a '//_:method[@c:identifier="gtk_widget_style_get_property"]//_:parameter[@name="value" and not(@caller-allocates)]' -type attr -n "caller-allocates" -v "1" \
Gtk-3.0.gir
xmlstarlet tr JavaScriptCore-4.0.xsl JavaScriptCore-4.0.gir | xmlstarlet fo > JavaScriptCore-4.0.gir.tmp
mv JavaScriptCore-4.0.gir.tmp JavaScriptCore-4.0.gir
# fill in types from JavaScriptCore
xmlstarlet ed -P -L \
-i '//_:type[not(@name) and @c:type="JSGlobalContextRef"]' -t 'attr' -n 'name' -v "JavaScriptCore.GlobalContextRef" \
-i '//_:type[not(@name) and @c:type="JSValueRef"]' -t 'attr' -n 'name' -v "JavaScriptCore.ValueRef" \
WebKit2WebExtension-4.0.gir WebKit2-4.0.gir
xmlstarlet ed -P -L \
-u '//_:constant[@name="DOM_NODE_FILTER_SHOW_ALL"]/_:type/@name' -v "guint" \
-u '//_:constant[@name="DOM_NODE_FILTER_SHOW_ALL"]/_:type/@c:type' -v "guint" \
WebKit2WebExtension-4.0.gir
# remove source-position from gtk 4.0
xmlstarlet ed -P -L \
-d '//_:source-position' \
Gdk-4.0.gir GdkX11-4.0.gir Graphene-1.0.gir Gsk-4.0.gir Gtk-4.0.gir
# fix cyclic dependency on gtk 4.0
xmlstarlet ed -P -L \
-u '//_:callback[@name="ParseErrorFunc"]/_:parameters/_:parameter[@name="section"]/_:type[@c:type="const GtkCssSection*"]/@c:type' -v "gconstpointer" \
-a '//_:callback[@name="ParseErrorFunc"]/_:parameters/_:parameter[@name="section"]/_:type[not(@name) and @c:type="gconstpointer"]' -type attr -n "name" -v "gconstpointer" \
Gsk-4.0.gir

View File

@ -0,0 +1,14 @@
<?xml version="1.0"?>
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" version="1.2">
<namespace name="fontconfig" version="2.0" c:identifier-prefixes="Fc" c:symbol-prefixes="fc">
<record name="Pattern" c:type="FcPattern"/>
<record name="CharSet" c:type="FcCharSet"/>
<function name="init" c:identifier="FcInit">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
</parameters>
</function>
</namespace>
</repository>

View File

@ -0,0 +1,16 @@
<?xml version="1.0"?>
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" version="1.2">
<namespace name="freetype2" version="2.0" c:identifier-prefixes="FT" c:symbol-prefixes="FT">
<record name="Bitmap" c:type="FT_Bitmap"/>
<record name="Face" c:type="FT_Face"/>
<record name="Library" c:type="FT_Library"/>
<function name="library_version" c:identifier="FT_Library_Version">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
</parameters>
</function>
</namespace>
</repository>

19
gir-files/gir-dl.sh Executable file
View File

@ -0,0 +1,19 @@
#!/bin/bash
set -e -u -o pipefail
MIRRORS="$1"
echo $MIRRORS
if [ $# -lt 2 ]; then
MIRROR="mirrors.kernel.org"
else
MIRROR="$2"
fi
wget -q --show-progress -O tmp.html "$MIRRORS"
URL=`cat tmp.html | grep -oP "http://$MIRROR/[^\"]+"`
rm tmp.html
echo $URL
wget -q --show-progress -O tmp.deb "$URL"
ar x tmp.deb data.tar.xz
rm tmp.deb
tar xf data.tar.xz --strip-components 4 ./usr/share/gir-1.0
rm data.tar.xz

21
gir-files/libxml2-2.0.gir Normal file
View File

@ -0,0 +1,21 @@
<?xml version="1.0"?>
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" version="1.2">
<package name="libxml-2.0"/>
<namespace name="libxml2" version="2.0" c:identifier-prefixes="xml" c:symbol-prefixes="xml">
<record name="Node" c:type="xmlNode"/>
<record name="NodePtr" c:type="xmlNodePtr"/>
<record name="Doc" c:type="xmlDoc"/>
<record name="DocPtr" c:type="xmlDocPtr"/>
<record name="NsPtr" c:type="xmlNsPtr"/>
<record name="Char" c:type="xmlChar"/>
<record name="TextWriter" c:type="xmlTextWriterPtr"/>
<record name="TextReader" c:type="xmlTextReaderPtr"/>
<function name="dummy" c:identifier="dummy">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
</parameters>
</function>
</namespace>
</repository>

6
gir-files/reformat.sh Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash
set -x -e
for file in *.gir; do
xmlstarlet ed -P -L "$file"
done

7
gir-files/vivid-64.txt Normal file
View File

@ -0,0 +1,7 @@
https://launchpad.net/~gnome3-team/+archive/ubuntu/gnome3-staging/+files/libatk1.0-dev_2.16.0-2%7Evivid0_amd64.deb
https://launchpad.net/~gnome3-team/+archive/ubuntu/gnome3-staging/+files/libgdk-pixbuf2.0-dev_2.31.4-1%7Evivid0_amd64.deb
https://launchpad.net/~gnome3-team/+archive/ubuntu/gnome3-staging/+files/libgirepository1.0-dev_1.44.0-1%7Evivid0_amd64.deb
https://launchpad.net/~gnome3-team/+archive/ubuntu/gnome3-staging/+files/libgtk-3-dev_3.16.3-0ubuntu1%7Evivid2_amd64.deb
https://launchpad.net/~gnome3-team/+archive/ubuntu/gnome3-staging/+files/libpango1.0-dev_1.36.7-1%7Eutopic1_amd64.deb
https://launchpad.net/~gnome3-team/+archive/ubuntu/gnome3-staging/+files/libsecret-1-dev_0.18.2-1%7Evivid0_amd64.deb
https://launchpad.net/~gnome3-team/+archive/ubuntu/gnome3-staging/+files/libvte-2.91-dev_0.40.2-1ubuntu1%7Evivid1_amd64.deb

14
gir-files/win32-1.0.gir Normal file
View File

@ -0,0 +1,14 @@
<?xml version="1.0"?>
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" version="1.2">
<namespace name="win32" version="1.0" c:identifier-prefixes="" c:symbol-prefixes="Win32">
<alias name="HWND" c:type="HWND">
<type name="guint" c:type="guint"/>
</alias>
<alias name="HICON" c:type="HICON">
<type name="gulong" c:type="gulong"/>
</alias>
<alias name="HGDIOBJ" c:type="HGDIOBJ">
<type name="gulong" c:type="gulong"/>
</alias>
</namespace>
</repository>

6
gir-files/xfixes-4.0.gir Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0"?>
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" version="1.2">
<namespace name="xfixes" version="4.0" c:identifier-prefixes="X" c:symbol-prefixes="X">
<record name="XserverRegion" c:type="XserverRegion"/>
</namespace>
</repository>

19
gir-files/xft-2.0.gir Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0"?>
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" version="1.2">
<include name="xlib" version="2.0"/>
<namespace name="xft" version="2.0" c:identifier-prefixes="Xft" c:symbol-prefixes="Xft">
<record name="Color" c:type="XftColor"/>
<record name="Draw" c:type="XftDraw"/>
<record name="Font" c:type="XftFont"/>
<record name="GlyphSpec" c:type="XftGlyphSpec"/>
<function name="init" c:identifier="XftInit">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
</parameters>
</function>
</namespace>
</repository>

63
gir-files/xlib-2.0.gir Normal file
View File

@ -0,0 +1,63 @@
<?xml version="1.0"?>
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" version="1.2">
<namespace name="xlib" version="2.0" c:identifier-prefixes="" c:symbol-prefixes="X">
<alias name="Atom" c:type="Atom">
<type name="gulong" c:type="gulong"/>
</alias>
<alias name="Colormap" c:type="Colormap">
<type name="gulong" c:type="gulong"/>
</alias>
<alias name="Cursor" c:type="Cursor">
<type name="gulong" c:type="gulong"/>
</alias>
<record name="Display" c:type="Display"/>
<alias name="Drawable" c:type="Drawable">
<type name="gulong" c:type="gulong"/>
</alias>
<alias name="GC" c:type="GC">
<type name="gpointer" c:type="gpointer"/>
</alias>
<alias name="KeyCode" c:type="KeyCode">
<type name="guint8" c:type="guint8"/>
</alias>
<alias name="KeySym" c:type="KeySym">
<type name="gulong" c:type="gulong"/>
</alias>
<alias name="Picture" c:type="Picture">
<type name="gulong" c:type="gulong"/>
</alias>
<record name="Screen" c:type="Screen"/>
<alias name="Time" c:type="Time">
<type name="gulong" c:type="gulong"/>
</alias>
<record name="Visual" c:type="Visual"/>
<alias name="VisualID" c:type="VisualID">
<type name="gulong" c:type="gulong"/>
</alias>
<alias name="Window" c:type="Window">
<type name="gulong" c:type="gulong"/>
</alias>
<union name="XEvent" c:type="XEvent"/>
<record name="XConfigureEvent" c:type="XConfigureEvent"/>
<alias name="XID" c:type="XID">
<type name="gulong" c:type="gulong"/>
</alias>
<alias name="Pixmap" c:type="Pixmap">
<type name="gulong" c:type="gulong"/>
</alias>
<record name="XImage" c:type="XImage"/>
<record name="XFontStruct" c:type="XFontStruct"/>
<record name="XTrapezoid" c:type="XTrapezoid"/>
<record name="XVisualInfo" c:type="XVisualInfo"/>
<record name="XWindowAttributes" c:type="XWindowAttributes"/>
<function name="open_display" c:identifier="XOpenDisplay">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
</parameters>
</function>
</namespace>
</repository>

12
gir-files/xrandr-1.3.gir Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" version="1.2">
<namespace name="xrandr" version="1.3" c:identifier-prefixes="XRR" c:symbol-prefixes="XRR">
<record name="ScreenSize" c:type="XRRScreenSize"/>
<record name="ScreenChangeNotifyEvent" c:type="XRRScreenChangeNotifyEvent"/>
<record name="NotifyEvent" c:type="XRRNotifyEvent"/>
<record name="ScreenResources" c:type="XRRScreenResources"/>
<record name="OutputChangeNotifyEvent" c:type="XRROutputChangeNotifyEvent"/>
<record name="CrtcChangeNotifyEvent" c:type="XRRCrtcChangeNotifyEvent"/>
<record name="OutputPropertyNotifyEvent" c:type="XRROutputPropertyNotifyEvent"/>
</namespace>
</repository>

32
lightdm-sys/Cargo.toml Normal file
View File

@ -0,0 +1,32 @@
[package]
name = "light-dm-sys"
version = "0.0.1"
links = "light_dm"
build = "build.rs"
[package.metadata.docs.rs]
features = ["dox"]
[lib]
name = "light_dm_sys"
[dependencies]
libc = "0.2"
[dependencies.gio-sys]
git = "https://github.com/gtk-rs/sys"
[dependencies.gobject-sys]
git = "https://github.com/gtk-rs/sys"
[dependencies.glib-sys]
git = "https://github.com/gtk-rs/sys"
[build-dependencies]
pkg-config = "0.3.7"
[dev-dependencies]
shell-words = "0.1.0"
tempfile = "3"
[features]
dox = []

9
lightdm-sys/Gir.toml Normal file
View File

@ -0,0 +1,9 @@
[options]
library = "LightDM"
version = "1"
target_path = "."
min_cfg_version = "1"
work_mode = "sys"
girs_dir = "../gir-files/"
external_libraries = ["Gio", "GObject", "GLib"]

82
lightdm-sys/build.rs Normal file
View File

@ -0,0 +1,82 @@
// This file was generated by gir (https://github.com/gtk-rs/gir @ 2abca11)
// from gir-files (https://github.com/gtk-rs/gir-files @ b89185a)
// DO NOT EDIT
#[cfg(not(feature = "dox"))]
extern crate pkg_config;
#[cfg(not(feature = "dox"))]
use pkg_config::{Config, Error};
#[cfg(not(feature = "dox"))]
use std::env;
#[cfg(not(feature = "dox"))]
use std::io;
#[cfg(not(feature = "dox"))]
use std::io::prelude::*;
#[cfg(not(feature = "dox"))]
use std::process;
#[cfg(feature = "dox")]
fn main() {} // prevent linking libraries to avoid documentation failure
#[cfg(not(feature = "dox"))]
fn main() {
if let Err(s) = find() {
let _ = writeln!(io::stderr(), "{}", s);
process::exit(1);
}
}
#[cfg(not(feature = "dox"))]
fn find() -> Result<(), Error> {
let package_name = "liblightdm-gobject-1";
let shared_libs = ["lightdm-gobject-1"];
let version = { "1" };
if let Ok(inc_dir) = env::var("GTK_INCLUDE_DIR") {
println!("cargo:include={}", inc_dir);
}
if let Ok(lib_dir) = env::var("GTK_LIB_DIR") {
for lib_ in shared_libs.iter() {
println!("cargo:rustc-link-lib=dylib={}", lib_);
}
println!("cargo:rustc-link-search=native={}", lib_dir);
return Ok(());
}
let target = env::var("TARGET").expect("TARGET environment variable doesn't exist");
let hardcode_shared_libs = target.contains("windows");
let mut config = Config::new();
config.atleast_version(version);
config.print_system_libs(false);
if hardcode_shared_libs {
config.cargo_metadata(false);
}
match config.probe(package_name) {
Ok(library) => {
if let Ok(paths) = std::env::join_paths(library.include_paths) {
println!("cargo:include={}", paths.to_string_lossy());
}
if hardcode_shared_libs {
for lib_ in shared_libs.iter() {
println!("cargo:rustc-link-lib=dylib={}", lib_);
}
for path in library.link_paths.iter() {
println!(
"cargo:rustc-link-search=native={}",
path.to_str().expect("library path doesn't exist")
);
}
}
Ok(())
}
Err(Error::EnvNoPkgConfig(_)) | Err(Error::Command { .. }) => {
for lib_ in shared_libs.iter() {
println!("cargo:rustc-link-lib=dylib={}", lib_);
}
Ok(())
}
Err(err) => Err(err),
}
}

534
lightdm-sys/src/lib.rs Normal file
View File

@ -0,0 +1,534 @@
// This file was generated by gir (https://github.com/gtk-rs/gir @ 2abca11)
// from gir-files (https://github.com/gtk-rs/gir-files @ b89185a)
// DO NOT EDIT
#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
#![allow(
clippy::approx_constant,
clippy::type_complexity,
clippy::unreadable_literal
)]
extern crate gio_sys as gio;
extern crate glib_sys as glib;
extern crate gobject_sys as gobject;
extern crate libc;
#[allow(unused_imports)]
use libc::{
c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
intptr_t, size_t, ssize_t, time_t, uintptr_t, FILE,
};
#[allow(unused_imports)]
use glib::{gboolean, gconstpointer, gpointer, GType};
// Enums
pub type LightDMGreeterError = c_int;
pub const LIGHTDM_GREETER_ERROR_COMMUNICATION_ERROR: LightDMGreeterError = 0;
pub const LIGHTDM_GREETER_ERROR_CONNECTION_FAILED: LightDMGreeterError = 1;
pub const LIGHTDM_GREETER_ERROR_SESSION_FAILED: LightDMGreeterError = 2;
pub const LIGHTDM_GREETER_ERROR_NO_AUTOLOGIN: LightDMGreeterError = 3;
pub const LIGHTDM_GREETER_ERROR_INVALID_USER: LightDMGreeterError = 4;
pub type LightDMMessageType = c_int;
pub const LIGHTDM_MESSAGE_TYPE_INFO: LightDMMessageType = 0;
pub const LIGHTDM_MESSAGE_TYPE_ERROR: LightDMMessageType = 1;
pub type LightDMPromptType = c_int;
pub const LIGHTDM_PROMPT_TYPE_QUESTION: LightDMPromptType = 0;
pub const LIGHTDM_PROMPT_TYPE_SECRET: LightDMPromptType = 1;
// Constants
pub const LIGHTDM_GREETER_SIGNAL_AUTHENTICATION_COMPLETE: *const c_char =
b"authentication-complete\0" as *const u8 as *const c_char;
pub const LIGHTDM_GREETER_SIGNAL_AUTOLOGIN_TIMER_EXPIRED: *const c_char =
b"autologin-timer-expired\0" as *const u8 as *const c_char;
pub const LIGHTDM_GREETER_SIGNAL_IDLE: *const c_char = b"idle\0" as *const u8 as *const c_char;
pub const LIGHTDM_GREETER_SIGNAL_RESET: *const c_char = b"reset\0" as *const u8 as *const c_char;
pub const LIGHTDM_GREETER_SIGNAL_SHOW_MESSAGE: *const c_char =
b"show-message\0" as *const u8 as *const c_char;
pub const LIGHTDM_GREETER_SIGNAL_SHOW_PROMPT: *const c_char =
b"show-prompt\0" as *const u8 as *const c_char;
pub const LIGHTDM_SIGNAL_USER_CHANGED: *const c_char = b"changed\0" as *const u8 as *const c_char;
pub const LIGHTDM_USER_LIST_SIGNAL_USER_ADDED: *const c_char =
b"user-added\0" as *const u8 as *const c_char;
pub const LIGHTDM_USER_LIST_SIGNAL_USER_CHANGED: *const c_char =
b"user-changed\0" as *const u8 as *const c_char;
pub const LIGHTDM_USER_LIST_SIGNAL_USER_REMOVED: *const c_char =
b"user-removed\0" as *const u8 as *const c_char;
// Records
#[repr(C)]
#[derive(Copy, Clone)]
pub struct LightDMGreeterClass {
pub parent_class: gobject::GObjectClass,
pub show_message:
Option<unsafe extern "C" fn(*mut LightDMGreeter, *const c_char, LightDMMessageType)>,
pub show_prompt:
Option<unsafe extern "C" fn(*mut LightDMGreeter, *const c_char, LightDMPromptType)>,
pub authentication_complete: Option<unsafe extern "C" fn(*mut LightDMGreeter)>,
pub autologin_timer_expired: Option<unsafe extern "C" fn(*mut LightDMGreeter)>,
pub idle: Option<unsafe extern "C" fn(*mut LightDMGreeter)>,
pub reset: Option<unsafe extern "C" fn(*mut LightDMGreeter)>,
pub reserved1: Option<unsafe extern "C" fn()>,
pub reserved2: Option<unsafe extern "C" fn()>,
pub reserved3: Option<unsafe extern "C" fn()>,
pub reserved4: Option<unsafe extern "C" fn()>,
}
impl ::std::fmt::Debug for LightDMGreeterClass {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("LightDMGreeterClass @ {:?}", self as *const _))
.field("show_message", &self.show_message)
.field("show_prompt", &self.show_prompt)
.field("authentication_complete", &self.authentication_complete)
.field("autologin_timer_expired", &self.autologin_timer_expired)
.field("idle", &self.idle)
.field("reset", &self.reset)
.field("reserved1", &self.reserved1)
.field("reserved2", &self.reserved2)
.field("reserved3", &self.reserved3)
.field("reserved4", &self.reserved4)
.finish()
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct LightDMLanguageClass {
pub parent_class: gobject::GObjectClass,
pub reserved1: Option<unsafe extern "C" fn()>,
pub reserved2: Option<unsafe extern "C" fn()>,
pub reserved3: Option<unsafe extern "C" fn()>,
pub reserved4: Option<unsafe extern "C" fn()>,
pub reserved5: Option<unsafe extern "C" fn()>,
pub reserved6: Option<unsafe extern "C" fn()>,
}
impl ::std::fmt::Debug for LightDMLanguageClass {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("LightDMLanguageClass @ {:?}", self as *const _))
.field("reserved1", &self.reserved1)
.field("reserved2", &self.reserved2)
.field("reserved3", &self.reserved3)
.field("reserved4", &self.reserved4)
.field("reserved5", &self.reserved5)
.field("reserved6", &self.reserved6)
.finish()
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct LightDMLayoutClass {
pub parent_class: gobject::GObjectClass,
pub reserved1: Option<unsafe extern "C" fn()>,
pub reserved2: Option<unsafe extern "C" fn()>,
pub reserved3: Option<unsafe extern "C" fn()>,
pub reserved4: Option<unsafe extern "C" fn()>,
pub reserved5: Option<unsafe extern "C" fn()>,
pub reserved6: Option<unsafe extern "C" fn()>,
}
impl ::std::fmt::Debug for LightDMLayoutClass {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("LightDMLayoutClass @ {:?}", self as *const _))
.field("reserved1", &self.reserved1)
.field("reserved2", &self.reserved2)
.field("reserved3", &self.reserved3)
.field("reserved4", &self.reserved4)
.field("reserved5", &self.reserved5)
.field("reserved6", &self.reserved6)
.finish()
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct LightDMSessionClass {
pub parent_class: gobject::GObjectClass,
pub reserved1: Option<unsafe extern "C" fn()>,
pub reserved2: Option<unsafe extern "C" fn()>,
pub reserved3: Option<unsafe extern "C" fn()>,
pub reserved4: Option<unsafe extern "C" fn()>,
pub reserved5: Option<unsafe extern "C" fn()>,
pub reserved6: Option<unsafe extern "C" fn()>,
}
impl ::std::fmt::Debug for LightDMSessionClass {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("LightDMSessionClass @ {:?}", self as *const _))
.field("reserved1", &self.reserved1)
.field("reserved2", &self.reserved2)
.field("reserved3", &self.reserved3)
.field("reserved4", &self.reserved4)
.field("reserved5", &self.reserved5)
.field("reserved6", &self.reserved6)
.finish()
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct LightDMUserClass {
pub parent_class: gobject::GObjectClass,
pub changed: Option<unsafe extern "C" fn(*mut LightDMUser)>,
pub reserved1: Option<unsafe extern "C" fn()>,
pub reserved2: Option<unsafe extern "C" fn()>,
pub reserved3: Option<unsafe extern "C" fn()>,
pub reserved4: Option<unsafe extern "C" fn()>,
pub reserved5: Option<unsafe extern "C" fn()>,
pub reserved6: Option<unsafe extern "C" fn()>,
}
impl ::std::fmt::Debug for LightDMUserClass {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("LightDMUserClass @ {:?}", self as *const _))
.field("changed", &self.changed)
.field("reserved1", &self.reserved1)
.field("reserved2", &self.reserved2)
.field("reserved3", &self.reserved3)
.field("reserved4", &self.reserved4)
.field("reserved5", &self.reserved5)
.field("reserved6", &self.reserved6)
.finish()
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct LightDMUserListClass {
pub parent_class: gobject::GObjectClass,
pub user_added: Option<unsafe extern "C" fn(*mut LightDMUserList, *mut LightDMUser)>,
pub user_changed: Option<unsafe extern "C" fn(*mut LightDMUserList, *mut LightDMUser)>,
pub user_removed: Option<unsafe extern "C" fn(*mut LightDMUserList, *mut LightDMUser)>,
pub reserved1: Option<unsafe extern "C" fn()>,
pub reserved2: Option<unsafe extern "C" fn()>,
pub reserved3: Option<unsafe extern "C" fn()>,
pub reserved4: Option<unsafe extern "C" fn()>,
pub reserved5: Option<unsafe extern "C" fn()>,
pub reserved6: Option<unsafe extern "C" fn()>,
}
impl ::std::fmt::Debug for LightDMUserListClass {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("LightDMUserListClass @ {:?}", self as *const _))
.field("user_added", &self.user_added)
.field("user_changed", &self.user_changed)
.field("user_removed", &self.user_removed)
.field("reserved1", &self.reserved1)
.field("reserved2", &self.reserved2)
.field("reserved3", &self.reserved3)
.field("reserved4", &self.reserved4)
.field("reserved5", &self.reserved5)
.field("reserved6", &self.reserved6)
.finish()
}
}
// Classes
#[repr(C)]
#[derive(Copy, Clone)]
pub struct LightDMGreeter {
pub parent_instance: gobject::GObject,
}
impl ::std::fmt::Debug for LightDMGreeter {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("LightDMGreeter @ {:?}", self as *const _))
.field("parent_instance", &self.parent_instance)
.finish()
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct LightDMLanguage {
pub parent_instance: gobject::GObject,
}
impl ::std::fmt::Debug for LightDMLanguage {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("LightDMLanguage @ {:?}", self as *const _))
.field("parent_instance", &self.parent_instance)
.finish()
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct LightDMLayout {
pub parent_instance: gobject::GObject,
}
impl ::std::fmt::Debug for LightDMLayout {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("LightDMLayout @ {:?}", self as *const _))
.field("parent_instance", &self.parent_instance)
.finish()
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct LightDMSession {
pub parent_instance: gobject::GObject,
}
impl ::std::fmt::Debug for LightDMSession {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("LightDMSession @ {:?}", self as *const _))
.field("parent_instance", &self.parent_instance)
.finish()
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct LightDMUser {
pub parent_instance: gobject::GObject,
}
impl ::std::fmt::Debug for LightDMUser {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("LightDMUser @ {:?}", self as *const _))
.field("parent_instance", &self.parent_instance)
.finish()
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct LightDMUserList {
pub parent_instance: gobject::GObject,
}
impl ::std::fmt::Debug for LightDMUserList {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
f.debug_struct(&format!("LightDMUserList @ {:?}", self as *const _))
.field("parent_instance", &self.parent_instance)
.finish()
}
}
extern "C" {
//=========================================================================
// LightDMGreeterError
//=========================================================================
pub fn lightdm_greeter_error_get_type() -> GType;
pub fn lightdm_greeter_error_quark() -> glib::GQuark;
//=========================================================================
// LightDMMessageType
//=========================================================================
pub fn lightdm_message_type_get_type() -> GType;
//=========================================================================
// LightDMPromptType
//=========================================================================
pub fn lightdm_prompt_type_get_type() -> GType;
//=========================================================================
// LightDMGreeter
//=========================================================================
pub fn lightdm_greeter_get_type() -> GType;
pub fn lightdm_greeter_new() -> *mut LightDMGreeter;
pub fn lightdm_greeter_authenticate(
greeter: *mut LightDMGreeter,
username: *const c_char,
error: *mut *mut glib::GError,
) -> gboolean;
pub fn lightdm_greeter_authenticate_as_guest(
greeter: *mut LightDMGreeter,
error: *mut *mut glib::GError,
) -> gboolean;
pub fn lightdm_greeter_authenticate_autologin(
greeter: *mut LightDMGreeter,
error: *mut *mut glib::GError,
) -> gboolean;
pub fn lightdm_greeter_authenticate_remote(
greeter: *mut LightDMGreeter,
session: *const c_char,
username: *const c_char,
error: *mut *mut glib::GError,
) -> gboolean;
pub fn lightdm_greeter_cancel_authentication(
greeter: *mut LightDMGreeter,
error: *mut *mut glib::GError,
) -> gboolean;
pub fn lightdm_greeter_cancel_autologin(greeter: *mut LightDMGreeter);
pub fn lightdm_greeter_connect_sync(
greeter: *mut LightDMGreeter,
error: *mut *mut glib::GError,
) -> gboolean;
pub fn lightdm_greeter_connect_to_daemon(
greeter: *mut LightDMGreeter,
cancellable: *mut gio::GCancellable,
callback: gio::GAsyncReadyCallback,
user_data: gpointer,
);
pub fn lightdm_greeter_connect_to_daemon_finish(
greeter: *mut LightDMGreeter,
result: *mut gio::GAsyncResult,
error: *mut *mut glib::GError,
) -> gboolean;
pub fn lightdm_greeter_connect_to_daemon_sync(
greeter: *mut LightDMGreeter,
error: *mut *mut glib::GError,
) -> gboolean;
pub fn lightdm_greeter_ensure_shared_data_dir(
greeter: *mut LightDMGreeter,
username: *const c_char,
cancellable: *mut gio::GCancellable,
callback: gio::GAsyncReadyCallback,
user_data: gpointer,
);
pub fn lightdm_greeter_ensure_shared_data_dir_finish(
greeter: *mut LightDMGreeter,
result: *mut gio::GAsyncResult,
error: *mut *mut glib::GError,
) -> *mut c_char;
pub fn lightdm_greeter_ensure_shared_data_dir_sync(
greeter: *mut LightDMGreeter,
username: *const c_char,
error: *mut *mut glib::GError,
) -> *mut c_char;
pub fn lightdm_greeter_get_authentication_user(greeter: *mut LightDMGreeter) -> *const c_char;
pub fn lightdm_greeter_get_autologin_guest_hint(greeter: *mut LightDMGreeter) -> gboolean;
pub fn lightdm_greeter_get_autologin_session_hint(
greeter: *mut LightDMGreeter,
) -> *const c_char;
pub fn lightdm_greeter_get_autologin_timeout_hint(greeter: *mut LightDMGreeter) -> c_int;
pub fn lightdm_greeter_get_autologin_user_hint(greeter: *mut LightDMGreeter) -> *const c_char;
pub fn lightdm_greeter_get_default_session_hint(greeter: *mut LightDMGreeter) -> *const c_char;
pub fn lightdm_greeter_get_has_guest_account_hint(greeter: *mut LightDMGreeter) -> gboolean;
pub fn lightdm_greeter_get_hide_users_hint(greeter: *mut LightDMGreeter) -> gboolean;
pub fn lightdm_greeter_get_hint(
greeter: *mut LightDMGreeter,
name: *const c_char,
) -> *const c_char;
pub fn lightdm_greeter_get_in_authentication(greeter: *mut LightDMGreeter) -> gboolean;
pub fn lightdm_greeter_get_is_authenticated(greeter: *mut LightDMGreeter) -> gboolean;
pub fn lightdm_greeter_get_lock_hint(greeter: *mut LightDMGreeter) -> gboolean;
pub fn lightdm_greeter_get_select_guest_hint(greeter: *mut LightDMGreeter) -> gboolean;
pub fn lightdm_greeter_get_select_user_hint(greeter: *mut LightDMGreeter) -> *const c_char;
pub fn lightdm_greeter_get_show_manual_login_hint(greeter: *mut LightDMGreeter) -> gboolean;
pub fn lightdm_greeter_get_show_remote_login_hint(greeter: *mut LightDMGreeter) -> gboolean;
pub fn lightdm_greeter_respond(
greeter: *mut LightDMGreeter,
response: *const c_char,
error: *mut *mut glib::GError,
) -> gboolean;
pub fn lightdm_greeter_set_language(
greeter: *mut LightDMGreeter,
language: *const c_char,
error: *mut *mut glib::GError,
) -> gboolean;
pub fn lightdm_greeter_set_resettable(greeter: *mut LightDMGreeter, resettable: gboolean);
pub fn lightdm_greeter_start_session(
greeter: *mut LightDMGreeter,
session: *const c_char,
cancellable: *mut gio::GCancellable,
callback: gio::GAsyncReadyCallback,
user_data: gpointer,
);
pub fn lightdm_greeter_start_session_finish(
greeter: *mut LightDMGreeter,
result: *mut gio::GAsyncResult,
error: *mut *mut glib::GError,
) -> gboolean;
pub fn lightdm_greeter_start_session_sync(
greeter: *mut LightDMGreeter,
session: *const c_char,
error: *mut *mut glib::GError,
) -> gboolean;
//=========================================================================
// LightDMLanguage
//=========================================================================
pub fn lightdm_language_get_type() -> GType;
pub fn lightdm_language_get_code(language: *mut LightDMLanguage) -> *const c_char;
pub fn lightdm_language_get_name(language: *mut LightDMLanguage) -> *const c_char;
pub fn lightdm_language_get_territory(language: *mut LightDMLanguage) -> *const c_char;
pub fn lightdm_language_matches(
language: *mut LightDMLanguage,
code: *const c_char,
) -> gboolean;
//=========================================================================
// LightDMLayout
//=========================================================================
pub fn lightdm_layout_get_type() -> GType;
pub fn lightdm_layout_get_description(layout: *mut LightDMLayout) -> *const c_char;
pub fn lightdm_layout_get_name(layout: *mut LightDMLayout) -> *const c_char;
pub fn lightdm_layout_get_short_description(layout: *mut LightDMLayout) -> *const c_char;
//=========================================================================
// LightDMSession
//=========================================================================
pub fn lightdm_session_get_type() -> GType;
pub fn lightdm_session_get_comment(session: *mut LightDMSession) -> *const c_char;
pub fn lightdm_session_get_key(session: *mut LightDMSession) -> *const c_char;
pub fn lightdm_session_get_name(session: *mut LightDMSession) -> *const c_char;
pub fn lightdm_session_get_session_type(session: *mut LightDMSession) -> *const c_char;
//=========================================================================
// LightDMUser
//=========================================================================
pub fn lightdm_user_get_type() -> GType;
pub fn lightdm_user_get_background(user: *mut LightDMUser) -> *const c_char;
pub fn lightdm_user_get_display_name(user: *mut LightDMUser) -> *const c_char;
pub fn lightdm_user_get_has_messages(user: *mut LightDMUser) -> gboolean;
pub fn lightdm_user_get_home_directory(user: *mut LightDMUser) -> *const c_char;
pub fn lightdm_user_get_image(user: *mut LightDMUser) -> *const c_char;
pub fn lightdm_user_get_is_locked(user: *mut LightDMUser) -> gboolean;
pub fn lightdm_user_get_language(user: *mut LightDMUser) -> *const c_char;
pub fn lightdm_user_get_layout(user: *mut LightDMUser) -> *const c_char;
pub fn lightdm_user_get_layouts(user: *mut LightDMUser) -> *const *const c_char;
pub fn lightdm_user_get_logged_in(user: *mut LightDMUser) -> gboolean;
pub fn lightdm_user_get_name(user: *mut LightDMUser) -> *const c_char;
pub fn lightdm_user_get_real_name(user: *mut LightDMUser) -> *const c_char;
pub fn lightdm_user_get_session(user: *mut LightDMUser) -> *const c_char;
pub fn lightdm_user_get_uid(user: *mut LightDMUser) -> c_uint;
//=========================================================================
// LightDMUserList
//=========================================================================
pub fn lightdm_user_list_get_type() -> GType;
pub fn lightdm_user_list_get_instance() -> *mut LightDMUserList;
pub fn lightdm_user_list_get_length(user_list: *mut LightDMUserList) -> c_int;
pub fn lightdm_user_list_get_user_by_name(
user_list: *mut LightDMUserList,
username: *const c_char,
) -> *mut LightDMUser;
pub fn lightdm_user_list_get_users(user_list: *mut LightDMUserList) -> *mut glib::GList;
//=========================================================================
// Other functions
//=========================================================================
pub fn lightdm_get_can_hibernate() -> gboolean;
pub fn lightdm_get_can_restart() -> gboolean;
pub fn lightdm_get_can_shutdown() -> gboolean;
pub fn lightdm_get_can_suspend() -> gboolean;
pub fn lightdm_get_hostname() -> *const c_char;
pub fn lightdm_get_language() -> *mut LightDMLanguage;
pub fn lightdm_get_languages() -> *mut glib::GList;
pub fn lightdm_get_layout() -> *mut LightDMLayout;
pub fn lightdm_get_layouts() -> *mut glib::GList;
pub fn lightdm_get_motd() -> *mut c_char;
pub fn lightdm_get_os_id() -> *const c_char;
pub fn lightdm_get_os_name() -> *const c_char;
pub fn lightdm_get_os_pretty_name() -> *const c_char;
pub fn lightdm_get_os_version() -> *const c_char;
pub fn lightdm_get_os_version_id() -> *const c_char;
pub fn lightdm_get_remote_sessions() -> *mut glib::GList;
pub fn lightdm_get_sessions() -> *mut glib::GList;
pub fn lightdm_hibernate(error: *mut *mut glib::GError) -> gboolean;
pub fn lightdm_restart(error: *mut *mut glib::GError) -> gboolean;
pub fn lightdm_set_layout(layout: *mut LightDMLayout);
pub fn lightdm_shutdown(error: *mut *mut glib::GError) -> gboolean;
pub fn lightdm_suspend(error: *mut *mut glib::GError) -> gboolean;
}

388
lightdm-sys/tests/abi.rs Normal file
View File

@ -0,0 +1,388 @@
// This file was generated by gir (https://github.com/gtk-rs/gir @ 2abca11)
// from gir-files (https://github.com/gtk-rs/gir-files @ b89185a)
// DO NOT EDIT
extern crate light_dm_sys;
extern crate shell_words;
extern crate tempfile;
use light_dm_sys::*;
use std::env;
use std::error::Error;
use std::mem::{align_of, size_of};
use std::path::Path;
use std::process::Command;
use std::str;
use tempfile::Builder;
static PACKAGES: &[&str] = &["liblightdm-gobject-1"];
#[derive(Clone, Debug)]
struct Compiler {
pub args: Vec<String>,
}
impl Compiler {
pub fn new() -> Result<Compiler, Box<dyn Error>> {
let mut args = get_var("CC", "cc")?;
args.push("-Wno-deprecated-declarations".to_owned());
// For %z support in printf when using MinGW.
args.push("-D__USE_MINGW_ANSI_STDIO".to_owned());
args.extend(get_var("CFLAGS", "")?);
args.extend(get_var("CPPFLAGS", "")?);
args.extend(pkg_config_cflags(PACKAGES)?);
Ok(Compiler { args })
}
pub fn define<'a, V: Into<Option<&'a str>>>(&mut self, var: &str, val: V) {
let arg = match val.into() {
None => format!("-D{}", var),
Some(val) => format!("-D{}={}", var, val),
};
self.args.push(arg);
}
pub fn compile(&self, src: &Path, out: &Path) -> Result<(), Box<dyn Error>> {
let mut cmd = self.to_command();
cmd.arg(src);
cmd.arg("-o");
cmd.arg(out);
let status = cmd.spawn()?.wait()?;
if !status.success() {
return Err(format!("compilation command {:?} failed, {}", &cmd, status).into());
}
Ok(())
}
fn to_command(&self) -> Command {
let mut cmd = Command::new(&self.args[0]);
cmd.args(&self.args[1..]);
cmd
}
}
fn get_var(name: &str, default: &str) -> Result<Vec<String>, Box<dyn Error>> {
match env::var(name) {
Ok(value) => Ok(shell_words::split(&value)?),
Err(env::VarError::NotPresent) => Ok(shell_words::split(default)?),
Err(err) => Err(format!("{} {}", name, err).into()),
}
}
fn pkg_config_cflags(packages: &[&str]) -> Result<Vec<String>, Box<dyn Error>> {
if packages.is_empty() {
return Ok(Vec::new());
}
let mut cmd = Command::new("pkg-config");
cmd.arg("--cflags");
cmd.args(packages);
let out = cmd.output()?;
if !out.status.success() {
return Err(format!("command {:?} returned {}", &cmd, out.status).into());
}
let stdout = str::from_utf8(&out.stdout)?;
Ok(shell_words::split(stdout.trim())?)
}
#[derive(Copy, Clone, Debug, Eq, PartialEq)]
struct Layout {
size: usize,
alignment: usize,
}
#[derive(Copy, Clone, Debug, Default, Eq, PartialEq)]
struct Results {
/// Number of successfully completed tests.
passed: usize,
/// Total number of failed tests (including those that failed to compile).
failed: usize,
/// Number of tests that failed to compile.
failed_to_compile: usize,
}
impl Results {
fn record_passed(&mut self) {
self.passed += 1;
}
fn record_failed(&mut self) {
self.failed += 1;
}
fn record_failed_to_compile(&mut self) {
self.failed += 1;
self.failed_to_compile += 1;
}
fn summary(&self) -> String {
format!(
"{} passed; {} failed (compilation errors: {})",
self.passed, self.failed, self.failed_to_compile
)
}
fn expect_total_success(&self) {
if self.failed == 0 {
println!("OK: {}", self.summary());
} else {
panic!("FAILED: {}", self.summary());
};
}
}
#[test]
fn cross_validate_constants_with_c() {
let tmpdir = Builder::new()
.prefix("abi")
.tempdir()
.expect("temporary directory");
let cc = Compiler::new().expect("configured compiler");
assert_eq!(
"1",
get_c_value(tmpdir.path(), &cc, "1").expect("C constant"),
"failed to obtain correct constant value for 1"
);
let mut results: Results = Default::default();
for (i, &(name, rust_value)) in RUST_CONSTANTS.iter().enumerate() {
match get_c_value(tmpdir.path(), &cc, name) {
Err(e) => {
results.record_failed_to_compile();
eprintln!("{}", e);
}
Ok(ref c_value) => {
if rust_value == c_value {
results.record_passed();
} else {
results.record_failed();
eprintln!(
"Constant value mismatch for {}\nRust: {:?}\nC: {:?}",
name, rust_value, c_value
);
}
}
};
if (i + 1) % 25 == 0 {
println!("constants ... {}", results.summary());
}
}
results.expect_total_success();
}
#[test]
fn cross_validate_layout_with_c() {
let tmpdir = Builder::new()
.prefix("abi")
.tempdir()
.expect("temporary directory");
let cc = Compiler::new().expect("configured compiler");
assert_eq!(
Layout {
size: 1,
alignment: 1
},
get_c_layout(tmpdir.path(), &cc, "char").expect("C layout"),
"failed to obtain correct layout for char type"
);
let mut results: Results = Default::default();
for (i, &(name, rust_layout)) in RUST_LAYOUTS.iter().enumerate() {
match get_c_layout(tmpdir.path(), &cc, name) {
Err(e) => {
results.record_failed_to_compile();
eprintln!("{}", e);
}
Ok(c_layout) => {
if rust_layout == c_layout {
results.record_passed();
} else {
results.record_failed();
eprintln!(
"Layout mismatch for {}\nRust: {:?}\nC: {:?}",
name, rust_layout, &c_layout
);
}
}
};
if (i + 1) % 25 == 0 {
println!("layout ... {}", results.summary());
}
}
results.expect_total_success();
}
fn get_c_layout(dir: &Path, cc: &Compiler, name: &str) -> Result<Layout, Box<dyn Error>> {
let exe = dir.join("layout");
let mut cc = cc.clone();
cc.define("ABI_TYPE_NAME", name);
cc.compile(Path::new("tests/layout.c"), &exe)?;
let mut abi_cmd = Command::new(exe);
let output = abi_cmd.output()?;
if !output.status.success() {
return Err(format!("command {:?} failed, {:?}", &abi_cmd, &output).into());
}
let stdout = str::from_utf8(&output.stdout)?;
let mut words = stdout.trim().split_whitespace();
let size = words.next().unwrap().parse().unwrap();
let alignment = words.next().unwrap().parse().unwrap();
Ok(Layout { size, alignment })
}
fn get_c_value(dir: &Path, cc: &Compiler, name: &str) -> Result<String, Box<dyn Error>> {
let exe = dir.join("constant");
let mut cc = cc.clone();
cc.define("ABI_CONSTANT_NAME", name);
cc.compile(Path::new("tests/constant.c"), &exe)?;
let mut abi_cmd = Command::new(exe);
let output = abi_cmd.output()?;
if !output.status.success() {
return Err(format!("command {:?} failed, {:?}", &abi_cmd, &output).into());
}
let output = str::from_utf8(&output.stdout)?.trim();
if !output.starts_with("###gir test###") || !output.ends_with("###gir test###") {
return Err(format!(
"command {:?} return invalid output, {:?}",
&abi_cmd, &output
)
.into());
}
Ok(String::from(&output[14..(output.len() - 14)]))
}
const RUST_LAYOUTS: &[(&str, Layout)] = &[
(
"LightDMGreeter",
Layout {
size: size_of::<LightDMGreeter>(),
alignment: align_of::<LightDMGreeter>(),
},
),
(
"LightDMGreeterClass",
Layout {
size: size_of::<LightDMGreeterClass>(),
alignment: align_of::<LightDMGreeterClass>(),
},
),
(
"LightDMGreeterError",
Layout {
size: size_of::<LightDMGreeterError>(),
alignment: align_of::<LightDMGreeterError>(),
},
),
(
"LightDMLanguage",
Layout {
size: size_of::<LightDMLanguage>(),
alignment: align_of::<LightDMLanguage>(),
},
),
(
"LightDMLanguageClass",
Layout {
size: size_of::<LightDMLanguageClass>(),
alignment: align_of::<LightDMLanguageClass>(),
},
),
(
"LightDMLayout",
Layout {
size: size_of::<LightDMLayout>(),
alignment: align_of::<LightDMLayout>(),
},
),
(
"LightDMLayoutClass",
Layout {
size: size_of::<LightDMLayoutClass>(),
alignment: align_of::<LightDMLayoutClass>(),
},
),
(
"LightDMMessageType",
Layout {
size: size_of::<LightDMMessageType>(),
alignment: align_of::<LightDMMessageType>(),
},
),
(
"LightDMPromptType",
Layout {
size: size_of::<LightDMPromptType>(),
alignment: align_of::<LightDMPromptType>(),
},
),
(
"LightDMSession",
Layout {
size: size_of::<LightDMSession>(),
alignment: align_of::<LightDMSession>(),
},
),
(
"LightDMSessionClass",
Layout {
size: size_of::<LightDMSessionClass>(),
alignment: align_of::<LightDMSessionClass>(),
},
),
(
"LightDMUser",
Layout {
size: size_of::<LightDMUser>(),
alignment: align_of::<LightDMUser>(),
},
),
(
"LightDMUserClass",
Layout {
size: size_of::<LightDMUserClass>(),
alignment: align_of::<LightDMUserClass>(),
},
),
(
"LightDMUserList",
Layout {
size: size_of::<LightDMUserList>(),
alignment: align_of::<LightDMUserList>(),
},
),
(
"LightDMUserListClass",
Layout {
size: size_of::<LightDMUserListClass>(),
alignment: align_of::<LightDMUserListClass>(),
},
),
];
const RUST_CONSTANTS: &[(&str, &str)] = &[
("(gint) LIGHTDM_GREETER_ERROR_COMMUNICATION_ERROR", "0"),
("(gint) LIGHTDM_GREETER_ERROR_CONNECTION_FAILED", "1"),
("(gint) LIGHTDM_GREETER_ERROR_INVALID_USER", "4"),
("(gint) LIGHTDM_GREETER_ERROR_NO_AUTOLOGIN", "3"),
("(gint) LIGHTDM_GREETER_ERROR_SESSION_FAILED", "2"),
(
"LIGHTDM_GREETER_SIGNAL_AUTHENTICATION_COMPLETE",
"authentication-complete",
),
(
"LIGHTDM_GREETER_SIGNAL_AUTOLOGIN_TIMER_EXPIRED",
"autologin-timer-expired",
),
("LIGHTDM_GREETER_SIGNAL_IDLE", "idle"),
("LIGHTDM_GREETER_SIGNAL_RESET", "reset"),
("LIGHTDM_GREETER_SIGNAL_SHOW_MESSAGE", "show-message"),
("LIGHTDM_GREETER_SIGNAL_SHOW_PROMPT", "show-prompt"),
("(gint) LIGHTDM_MESSAGE_TYPE_ERROR", "1"),
("(gint) LIGHTDM_MESSAGE_TYPE_INFO", "0"),
("(gint) LIGHTDM_PROMPT_TYPE_QUESTION", "0"),
("(gint) LIGHTDM_PROMPT_TYPE_SECRET", "1"),
("LIGHTDM_SIGNAL_USER_CHANGED", "changed"),
("LIGHTDM_USER_LIST_SIGNAL_USER_ADDED", "user-added"),
("LIGHTDM_USER_LIST_SIGNAL_USER_CHANGED", "user-changed"),
("LIGHTDM_USER_LIST_SIGNAL_USER_REMOVED", "user-removed"),
];

View File

@ -0,0 +1,27 @@
// This file was generated by gir (https://github.com/gtk-rs/gir @ 2abca11)
// from gir-files (https://github.com/gtk-rs/gir-files @ b89185a)
// DO NOT EDIT
#include "manual.h"
#include <stdio.h>
int main() {
printf(_Generic((ABI_CONSTANT_NAME),
char *: "###gir test###%s###gir test###\n",
const char *: "###gir test###%s###gir test###\n",
char: "###gir test###%c###gir test###\n",
signed char: "###gir test###%hhd###gir test###\n",
unsigned char: "###gir test###%hhu###gir test###\n",
short int: "###gir test###%hd###gir test###\n",
unsigned short int: "###gir test###%hu###gir test###\n",
int: "###gir test###%d###gir test###\n",
unsigned int: "###gir test###%u###gir test###\n",
long: "###gir test###%ld###gir test###\n",
unsigned long: "###gir test###%lu###gir test###\n",
long long: "###gir test###%lld###gir test###\n",
unsigned long long: "###gir test###%llu###gir test###\n",
double: "###gir test###%f###gir test###\n",
long double: "###gir test###%ld###gir test###\n"),
ABI_CONSTANT_NAME);
return 0;
}

View File

@ -0,0 +1,12 @@
// This file was generated by gir (https://github.com/gtk-rs/gir @ 2abca11)
// from gir-files (https://github.com/gtk-rs/gir-files @ b89185a)
// DO NOT EDIT
#include "manual.h"
#include <stdalign.h>
#include <stdio.h>
int main() {
printf("%zu\n%zu", sizeof(ABI_TYPE_NAME), alignof(ABI_TYPE_NAME));
return 0;
}

View File

@ -0,0 +1,3 @@
// Feel free to edit this file, it won't be regenerated by gir generator unless removed.
#include <lightdm.h>

67
src/auto/constants.rs Normal file
View File

@ -0,0 +1,67 @@
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT
use light_dm_sys;
use std::ffi::CStr;
pub static GREETER_SIGNAL_AUTHENTICATION_COMPLETE: once_cell::sync::Lazy<&'static str> =
once_cell::sync::Lazy::new(|| unsafe {
CStr::from_ptr(light_dm_sys::LIGHTDM_GREETER_SIGNAL_AUTHENTICATION_COMPLETE)
.to_str()
.unwrap()
});
pub static GREETER_SIGNAL_AUTOLOGIN_TIMER_EXPIRED: once_cell::sync::Lazy<&'static str> =
once_cell::sync::Lazy::new(|| unsafe {
CStr::from_ptr(light_dm_sys::LIGHTDM_GREETER_SIGNAL_AUTOLOGIN_TIMER_EXPIRED)
.to_str()
.unwrap()
});
pub static GREETER_SIGNAL_IDLE: once_cell::sync::Lazy<&'static str> =
once_cell::sync::Lazy::new(|| unsafe {
CStr::from_ptr(light_dm_sys::LIGHTDM_GREETER_SIGNAL_IDLE)
.to_str()
.unwrap()
});
pub static GREETER_SIGNAL_RESET: once_cell::sync::Lazy<&'static str> =
once_cell::sync::Lazy::new(|| unsafe {
CStr::from_ptr(light_dm_sys::LIGHTDM_GREETER_SIGNAL_RESET)
.to_str()
.unwrap()
});
pub static GREETER_SIGNAL_SHOW_MESSAGE: once_cell::sync::Lazy<&'static str> =
once_cell::sync::Lazy::new(|| unsafe {
CStr::from_ptr(light_dm_sys::LIGHTDM_GREETER_SIGNAL_SHOW_MESSAGE)
.to_str()
.unwrap()
});
pub static GREETER_SIGNAL_SHOW_PROMPT: once_cell::sync::Lazy<&'static str> =
once_cell::sync::Lazy::new(|| unsafe {
CStr::from_ptr(light_dm_sys::LIGHTDM_GREETER_SIGNAL_SHOW_PROMPT)
.to_str()
.unwrap()
});
pub static SIGNAL_USER_CHANGED: once_cell::sync::Lazy<&'static str> =
once_cell::sync::Lazy::new(|| unsafe {
CStr::from_ptr(light_dm_sys::LIGHTDM_SIGNAL_USER_CHANGED)
.to_str()
.unwrap()
});
pub static USER_LIST_SIGNAL_USER_ADDED: once_cell::sync::Lazy<&'static str> =
once_cell::sync::Lazy::new(|| unsafe {
CStr::from_ptr(light_dm_sys::LIGHTDM_USER_LIST_SIGNAL_USER_ADDED)
.to_str()
.unwrap()
});
pub static USER_LIST_SIGNAL_USER_CHANGED: once_cell::sync::Lazy<&'static str> =
once_cell::sync::Lazy::new(|| unsafe {
CStr::from_ptr(light_dm_sys::LIGHTDM_USER_LIST_SIGNAL_USER_CHANGED)
.to_str()
.unwrap()
});
pub static USER_LIST_SIGNAL_USER_REMOVED: once_cell::sync::Lazy<&'static str> =
once_cell::sync::Lazy::new(|| unsafe {
CStr::from_ptr(light_dm_sys::LIGHTDM_USER_LIST_SIGNAL_USER_REMOVED)
.to_str()
.unwrap()
});

264
src/auto/enums.rs Normal file
View File

@ -0,0 +1,264 @@
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT
use glib::error::ErrorDomain;
use glib::translate::*;
use glib::value::FromValue;
use glib::value::FromValueOptional;
use glib::value::SetValue;
use glib::value::Value;
use glib::Quark;
use glib::StaticType;
use glib::Type;
use gobject_sys;
use light_dm_sys;
use std::fmt;
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
#[non_exhaustive]
pub enum GreeterError {
CommunicationError,
ConnectionFailed,
SessionFailed,
NoAutologin,
InvalidUser,
#[doc(hidden)]
__Unknown(i32),
}
impl fmt::Display for GreeterError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(
f,
"GreeterError::{}",
match *self {
GreeterError::CommunicationError => "CommunicationError",
GreeterError::ConnectionFailed => "ConnectionFailed",
GreeterError::SessionFailed => "SessionFailed",
GreeterError::NoAutologin => "NoAutologin",
GreeterError::InvalidUser => "InvalidUser",
_ => "Unknown",
}
)
}
}
#[doc(hidden)]
impl ToGlib for GreeterError {
type GlibType = light_dm_sys::LightDMGreeterError;
fn to_glib(&self) -> light_dm_sys::LightDMGreeterError {
match *self {
GreeterError::CommunicationError => {
light_dm_sys::LIGHTDM_GREETER_ERROR_COMMUNICATION_ERROR
}
GreeterError::ConnectionFailed => light_dm_sys::LIGHTDM_GREETER_ERROR_CONNECTION_FAILED,
GreeterError::SessionFailed => light_dm_sys::LIGHTDM_GREETER_ERROR_SESSION_FAILED,
GreeterError::NoAutologin => light_dm_sys::LIGHTDM_GREETER_ERROR_NO_AUTOLOGIN,
GreeterError::InvalidUser => light_dm_sys::LIGHTDM_GREETER_ERROR_INVALID_USER,
GreeterError::__Unknown(value) => value,
}
}
}
#[doc(hidden)]
impl FromGlib<light_dm_sys::LightDMGreeterError> for GreeterError {
fn from_glib(value: light_dm_sys::LightDMGreeterError) -> Self {
match value {
0 => GreeterError::CommunicationError,
1 => GreeterError::ConnectionFailed,
2 => GreeterError::SessionFailed,
3 => GreeterError::NoAutologin,
4 => GreeterError::InvalidUser,
value => GreeterError::__Unknown(value),
}
}
}
impl ErrorDomain for GreeterError {
fn domain() -> Quark {
unsafe { from_glib(light_dm_sys::lightdm_greeter_error_quark()) }
}
fn code(self) -> i32 {
self.to_glib()
}
fn from(code: i32) -> Option<Self> {
match code {
0 => Some(GreeterError::CommunicationError),
1 => Some(GreeterError::ConnectionFailed),
2 => Some(GreeterError::SessionFailed),
3 => Some(GreeterError::NoAutologin),
4 => Some(GreeterError::InvalidUser),
value => Some(GreeterError::__Unknown(value)),
}
}
}
impl StaticType for GreeterError {
fn static_type() -> Type {
unsafe { from_glib(light_dm_sys::lightdm_greeter_error_get_type()) }
}
}
impl<'a> FromValueOptional<'a> for GreeterError {
unsafe fn from_value_optional(value: &Value) -> Option<Self> {
Some(FromValue::from_value(value))
}
}
impl<'a> FromValue<'a> for GreeterError {
unsafe fn from_value(value: &Value) -> Self {
from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
}
}
impl SetValue for GreeterError {
unsafe fn set_value(value: &mut Value, this: &Self) {
gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
}
}
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
#[non_exhaustive]
pub enum MessageType {
Info,
Error,
#[doc(hidden)]
__Unknown(i32),
}
impl fmt::Display for MessageType {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(
f,
"MessageType::{}",
match *self {
MessageType::Info => "Info",
MessageType::Error => "Error",
_ => "Unknown",
}
)
}
}
#[doc(hidden)]
impl ToGlib for MessageType {
type GlibType = light_dm_sys::LightDMMessageType;
fn to_glib(&self) -> light_dm_sys::LightDMMessageType {
match *self {
MessageType::Info => light_dm_sys::LIGHTDM_MESSAGE_TYPE_INFO,
MessageType::Error => light_dm_sys::LIGHTDM_MESSAGE_TYPE_ERROR,
MessageType::__Unknown(value) => value,
}
}
}
#[doc(hidden)]
impl FromGlib<light_dm_sys::LightDMMessageType> for MessageType {
fn from_glib(value: light_dm_sys::LightDMMessageType) -> Self {
match value {
0 => MessageType::Info,
1 => MessageType::Error,
value => MessageType::__Unknown(value),
}
}
}
impl StaticType for MessageType {
fn static_type() -> Type {
unsafe { from_glib(light_dm_sys::lightdm_message_type_get_type()) }
}
}
impl<'a> FromValueOptional<'a> for MessageType {
unsafe fn from_value_optional(value: &Value) -> Option<Self> {
Some(FromValue::from_value(value))
}
}
impl<'a> FromValue<'a> for MessageType {
unsafe fn from_value(value: &Value) -> Self {
from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
}
}
impl SetValue for MessageType {
unsafe fn set_value(value: &mut Value, this: &Self) {
gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
}
}
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
#[non_exhaustive]
pub enum PromptType {
Question,
Secret,
#[doc(hidden)]
__Unknown(i32),
}
impl fmt::Display for PromptType {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(
f,
"PromptType::{}",
match *self {
PromptType::Question => "Question",
PromptType::Secret => "Secret",
_ => "Unknown",
}
)
}
}
#[doc(hidden)]
impl ToGlib for PromptType {
type GlibType = light_dm_sys::LightDMPromptType;
fn to_glib(&self) -> light_dm_sys::LightDMPromptType {
match *self {
PromptType::Question => light_dm_sys::LIGHTDM_PROMPT_TYPE_QUESTION,
PromptType::Secret => light_dm_sys::LIGHTDM_PROMPT_TYPE_SECRET,
PromptType::__Unknown(value) => value,
}
}
}
#[doc(hidden)]
impl FromGlib<light_dm_sys::LightDMPromptType> for PromptType {
fn from_glib(value: light_dm_sys::LightDMPromptType) -> Self {
match value {
0 => PromptType::Question,
1 => PromptType::Secret,
value => PromptType::__Unknown(value),
}
}
}
impl StaticType for PromptType {
fn static_type() -> Type {
unsafe { from_glib(light_dm_sys::lightdm_prompt_type_get_type()) }
}
}
impl<'a> FromValueOptional<'a> for PromptType {
unsafe fn from_value_optional(value: &Value) -> Option<Self> {
Some(FromValue::from_value(value))
}
}
impl<'a> FromValue<'a> for PromptType {
unsafe fn from_value(value: &Value) -> Self {
from_glib(gobject_sys::g_value_get_enum(value.to_glib_none().0))
}
}
impl SetValue for PromptType {
unsafe fn set_value(value: &mut Value, this: &Self) {
gobject_sys::g_value_set_enum(value.to_glib_none_mut().0, this.to_glib())
}
}

135
src/auto/functions.rs Normal file
View File

@ -0,0 +1,135 @@
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT
use glib;
use glib::object::IsA;
use glib::translate::*;
use glib::GString;
use light_dm_sys;
use std::ptr;
use Language;
use Layout;
use Session;
pub fn get_can_hibernate() -> bool {
unsafe { from_glib(light_dm_sys::lightdm_get_can_hibernate()) }
}
pub fn get_can_restart() -> bool {
unsafe { from_glib(light_dm_sys::lightdm_get_can_restart()) }
}
pub fn get_can_shutdown() -> bool {
unsafe { from_glib(light_dm_sys::lightdm_get_can_shutdown()) }
}
pub fn get_can_suspend() -> bool {
unsafe { from_glib(light_dm_sys::lightdm_get_can_suspend()) }
}
pub fn get_hostname() -> Option<GString> {
unsafe { from_glib_none(light_dm_sys::lightdm_get_hostname()) }
}
pub fn get_language() -> Option<Language> {
unsafe { from_glib_none(light_dm_sys::lightdm_get_language()) }
}
pub fn get_languages() -> Vec<Language> {
unsafe { FromGlibPtrContainer::from_glib_none(light_dm_sys::lightdm_get_languages()) }
}
pub fn get_layout() -> Option<Layout> {
unsafe { from_glib_none(light_dm_sys::lightdm_get_layout()) }
}
pub fn get_layouts() -> Vec<Layout> {
unsafe { FromGlibPtrContainer::from_glib_none(light_dm_sys::lightdm_get_layouts()) }
}
pub fn get_motd() -> Option<GString> {
unsafe { from_glib_full(light_dm_sys::lightdm_get_motd()) }
}
pub fn get_os_id() -> Option<GString> {
unsafe { from_glib_none(light_dm_sys::lightdm_get_os_id()) }
}
pub fn get_os_name() -> Option<GString> {
unsafe { from_glib_none(light_dm_sys::lightdm_get_os_name()) }
}
pub fn get_os_pretty_name() -> Option<GString> {
unsafe { from_glib_none(light_dm_sys::lightdm_get_os_pretty_name()) }
}
pub fn get_os_version() -> Option<GString> {
unsafe { from_glib_none(light_dm_sys::lightdm_get_os_version()) }
}
pub fn get_os_version_id() -> Option<GString> {
unsafe { from_glib_none(light_dm_sys::lightdm_get_os_version_id()) }
}
pub fn get_remote_sessions() -> Vec<Session> {
unsafe { FromGlibPtrContainer::from_glib_none(light_dm_sys::lightdm_get_remote_sessions()) }
}
pub fn get_sessions() -> Vec<Session> {
unsafe { FromGlibPtrContainer::from_glib_none(light_dm_sys::lightdm_get_sessions()) }
}
pub fn hibernate() -> Result<(), glib::Error> {
unsafe {
let mut error = ptr::null_mut();
let _ = light_dm_sys::lightdm_hibernate(&mut error);
if error.is_null() {
Ok(())
} else {
Err(from_glib_full(error))
}
}
}
pub fn restart() -> Result<(), glib::Error> {
unsafe {
let mut error = ptr::null_mut();
let _ = light_dm_sys::lightdm_restart(&mut error);
if error.is_null() {
Ok(())
} else {
Err(from_glib_full(error))
}
}
}
pub fn set_layout<P: IsA<Layout>>(layout: &P) {
unsafe {
light_dm_sys::lightdm_set_layout(layout.as_ref().to_glib_none().0);
}
}
pub fn shutdown() -> Result<(), glib::Error> {
unsafe {
let mut error = ptr::null_mut();
let _ = light_dm_sys::lightdm_shutdown(&mut error);
if error.is_null() {
Ok(())
} else {
Err(from_glib_full(error))
}
}
}
pub fn suspend() -> Result<(), glib::Error> {
unsafe {
let mut error = ptr::null_mut();
let _ = light_dm_sys::lightdm_suspend(&mut error);
if error.is_null() {
Ok(())
} else {
Err(from_glib_full(error))
}
}
}

1281
src/auto/greeter.rs Normal file

File diff suppressed because it is too large Load Diff

157
src/auto/language.rs Normal file
View File

@ -0,0 +1,157 @@
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT
use glib::object::Cast;
use glib::object::IsA;
use glib::signal::connect_raw;
use glib::signal::SignalHandlerId;
use glib::translate::*;
use glib::GString;
use glib::StaticType;
use glib::ToValue;
use glib_sys;
use light_dm_sys;
use std::boxed::Box as Box_;
use std::fmt;
use std::mem::transmute;
glib_wrapper! {
pub struct Language(Object<light_dm_sys::LightDMLanguage, light_dm_sys::LightDMLanguageClass, LanguageClass>);
match fn {
get_type => || light_dm_sys::lightdm_language_get_type(),
}
}
#[derive(Clone, Default)]
pub struct LanguageBuilder {
code: Option<String>,
}
impl LanguageBuilder {
pub fn new() -> Self {
Self::default()
}
pub fn build(self) -> Language {
let mut properties: Vec<(&str, &dyn ToValue)> = vec![];
if let Some(ref code) = self.code {
properties.push(("code", code));
}
glib::Object::new(Language::static_type(), &properties)
.expect("object new")
.downcast()
.expect("downcast")
}
pub fn code(mut self, code: &str) -> Self {
self.code = Some(code.to_string());
self
}
}
pub const NONE_LANGUAGE: Option<&Language> = None;
pub trait LanguageExt: 'static {
fn get_code(&self) -> Option<GString>;
fn get_name(&self) -> Option<GString>;
fn get_territory(&self) -> Option<GString>;
fn matches(&self, code: &str) -> bool;
fn connect_property_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_property_territory_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
}
impl<O: IsA<Language>> LanguageExt for O {
fn get_code(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_language_get_code(
self.as_ref().to_glib_none().0,
))
}
}
fn get_name(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_language_get_name(
self.as_ref().to_glib_none().0,
))
}
}
fn get_territory(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_language_get_territory(
self.as_ref().to_glib_none().0,
))
}
}
fn matches(&self, code: &str) -> bool {
unsafe {
from_glib(light_dm_sys::lightdm_language_matches(
self.as_ref().to_glib_none().0,
code.to_glib_none().0,
))
}
}
fn connect_property_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_name_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMLanguage,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<Language>,
{
let f: &F = &*(f as *const F);
f(&Language::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::name\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_name_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_territory_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_territory_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMLanguage,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<Language>,
{
let f: &F = &*(f as *const F);
f(&Language::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::territory\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_territory_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
}
impl fmt::Display for Language {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "Language")
}
}

107
src/auto/layout.rs Normal file
View File

@ -0,0 +1,107 @@
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT
use glib::object::Cast;
use glib::object::IsA;
use glib::translate::*;
use glib::GString;
use glib::StaticType;
use glib::ToValue;
use light_dm_sys;
use std::fmt;
glib_wrapper! {
pub struct Layout(Object<light_dm_sys::LightDMLayout, light_dm_sys::LightDMLayoutClass, LayoutClass>);
match fn {
get_type => || light_dm_sys::lightdm_layout_get_type(),
}
}
#[derive(Clone, Default)]
pub struct LayoutBuilder {
description: Option<String>,
name: Option<String>,
short_description: Option<String>,
}
impl LayoutBuilder {
pub fn new() -> Self {
Self::default()
}
pub fn build(self) -> Layout {
let mut properties: Vec<(&str, &dyn ToValue)> = vec![];
if let Some(ref description) = self.description {
properties.push(("description", description));
}
if let Some(ref name) = self.name {
properties.push(("name", name));
}
if let Some(ref short_description) = self.short_description {
properties.push(("short-description", short_description));
}
glib::Object::new(Layout::static_type(), &properties)
.expect("object new")
.downcast()
.expect("downcast")
}
pub fn description(mut self, description: &str) -> Self {
self.description = Some(description.to_string());
self
}
pub fn name(mut self, name: &str) -> Self {
self.name = Some(name.to_string());
self
}
pub fn short_description(mut self, short_description: &str) -> Self {
self.short_description = Some(short_description.to_string());
self
}
}
pub const NONE_LAYOUT: Option<&Layout> = None;
pub trait LayoutExt: 'static {
fn get_description(&self) -> Option<GString>;
fn get_name(&self) -> Option<GString>;
fn get_short_description(&self) -> Option<GString>;
}
impl<O: IsA<Layout>> LayoutExt for O {
fn get_description(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_layout_get_description(
self.as_ref().to_glib_none().0,
))
}
}
fn get_name(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_layout_get_name(
self.as_ref().to_glib_none().0,
))
}
}
fn get_short_description(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_layout_get_short_description(
self.as_ref().to_glib_none().0,
))
}
}
}
impl fmt::Display for Layout {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "Layout")
}
}

58
src/auto/mod.rs Normal file
View File

@ -0,0 +1,58 @@
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT
mod greeter;
pub use self::greeter::GreeterExt;
pub use self::greeter::{Greeter, GreeterClass, NONE_GREETER};
mod language;
pub use self::language::LanguageBuilder;
pub use self::language::LanguageExt;
pub use self::language::{Language, LanguageClass, NONE_LANGUAGE};
mod layout;
pub use self::layout::LayoutBuilder;
pub use self::layout::LayoutExt;
pub use self::layout::{Layout, LayoutClass, NONE_LAYOUT};
mod session;
pub use self::session::SessionExt;
pub use self::session::{Session, SessionClass, NONE_SESSION};
mod user;
pub use self::user::UserExt;
pub use self::user::{User, UserClass, NONE_USER};
mod user_list;
pub use self::user_list::UserListExt;
pub use self::user_list::{UserList, UserListClass, NONE_USER_LIST};
mod enums;
pub use self::enums::GreeterError;
pub use self::enums::MessageType;
pub use self::enums::PromptType;
pub mod functions;
mod constants;
pub use self::constants::GREETER_SIGNAL_AUTHENTICATION_COMPLETE;
pub use self::constants::GREETER_SIGNAL_AUTOLOGIN_TIMER_EXPIRED;
pub use self::constants::GREETER_SIGNAL_IDLE;
pub use self::constants::GREETER_SIGNAL_RESET;
pub use self::constants::GREETER_SIGNAL_SHOW_MESSAGE;
pub use self::constants::GREETER_SIGNAL_SHOW_PROMPT;
pub use self::constants::SIGNAL_USER_CHANGED;
pub use self::constants::USER_LIST_SIGNAL_USER_ADDED;
pub use self::constants::USER_LIST_SIGNAL_USER_CHANGED;
pub use self::constants::USER_LIST_SIGNAL_USER_REMOVED;
#[doc(hidden)]
pub mod traits {
pub use super::GreeterExt;
pub use super::LanguageExt;
pub use super::LayoutExt;
pub use super::SessionExt;
pub use super::UserExt;
pub use super::UserListExt;
}

153
src/auto/session.rs Normal file
View File

@ -0,0 +1,153 @@
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT
use glib::object::Cast;
use glib::object::IsA;
use glib::signal::connect_raw;
use glib::signal::SignalHandlerId;
use glib::translate::*;
use glib::GString;
use glib_sys;
use light_dm_sys;
use std::boxed::Box as Box_;
use std::fmt;
use std::mem::transmute;
glib_wrapper! {
pub struct Session(Object<light_dm_sys::LightDMSession, light_dm_sys::LightDMSessionClass, SessionClass>);
match fn {
get_type => || light_dm_sys::lightdm_session_get_type(),
}
}
pub const NONE_SESSION: Option<&Session> = None;
pub trait SessionExt: 'static {
fn get_comment(&self) -> Option<GString>;
fn get_key(&self) -> Option<GString>;
fn get_name(&self) -> Option<GString>;
fn get_session_type(&self) -> Option<GString>;
fn connect_property_comment_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_property_key_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_property_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
}
impl<O: IsA<Session>> SessionExt for O {
fn get_comment(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_session_get_comment(
self.as_ref().to_glib_none().0,
))
}
}
fn get_key(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_session_get_key(
self.as_ref().to_glib_none().0,
))
}
}
fn get_name(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_session_get_name(
self.as_ref().to_glib_none().0,
))
}
}
fn get_session_type(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_session_get_session_type(
self.as_ref().to_glib_none().0,
))
}
}
fn connect_property_comment_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_comment_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMSession,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<Session>,
{
let f: &F = &*(f as *const F);
f(&Session::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::comment\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_comment_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_key_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_key_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMSession,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<Session>,
{
let f: &F = &*(f as *const F);
f(&Session::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::key\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_key_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_name_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMSession,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<Session>,
{
let f: &F = &*(f as *const F);
f(&Session::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::name\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_name_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
}
impl fmt::Display for Session {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "Session")
}
}

574
src/auto/user.rs Normal file
View File

@ -0,0 +1,574 @@
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT
use glib::object::Cast;
use glib::object::IsA;
use glib::signal::connect_raw;
use glib::signal::SignalHandlerId;
use glib::translate::*;
use glib::GString;
use glib_sys;
use light_dm_sys;
use std::boxed::Box as Box_;
use std::fmt;
use std::mem::transmute;
glib_wrapper! {
pub struct User(Object<light_dm_sys::LightDMUser, light_dm_sys::LightDMUserClass, UserClass>);
match fn {
get_type => || light_dm_sys::lightdm_user_get_type(),
}
}
pub const NONE_USER: Option<&User> = None;
pub trait UserExt: 'static {
fn get_background(&self) -> Option<GString>;
fn get_display_name(&self) -> Option<GString>;
fn get_has_messages(&self) -> bool;
fn get_home_directory(&self) -> Option<GString>;
fn get_image(&self) -> Option<GString>;
fn get_is_locked(&self) -> bool;
fn get_language(&self) -> Option<GString>;
fn get_layout(&self) -> Option<GString>;
fn get_layouts(&self) -> Vec<GString>;
fn get_logged_in(&self) -> bool;
fn get_name(&self) -> Option<GString>;
fn get_real_name(&self) -> Option<GString>;
fn get_session(&self) -> Option<GString>;
fn get_uid(&self) -> u32;
fn connect_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_property_background_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_property_display_name_notify<F: Fn(&Self) + 'static>(&self, f: F)
-> SignalHandlerId;
fn connect_property_has_messages_notify<F: Fn(&Self) + 'static>(&self, f: F)
-> SignalHandlerId;
fn connect_property_home_directory_notify<F: Fn(&Self) + 'static>(
&self,
f: F,
) -> SignalHandlerId;
fn connect_property_image_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_property_is_locked_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_property_language_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_property_layout_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_property_layouts_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_property_logged_in_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_property_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_property_real_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_property_session_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_property_uid_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
}
impl<O: IsA<User>> UserExt for O {
fn get_background(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_user_get_background(
self.as_ref().to_glib_none().0,
))
}
}
fn get_display_name(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_user_get_display_name(
self.as_ref().to_glib_none().0,
))
}
}
fn get_has_messages(&self) -> bool {
unsafe {
from_glib(light_dm_sys::lightdm_user_get_has_messages(
self.as_ref().to_glib_none().0,
))
}
}
fn get_home_directory(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_user_get_home_directory(
self.as_ref().to_glib_none().0,
))
}
}
fn get_image(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_user_get_image(
self.as_ref().to_glib_none().0,
))
}
}
fn get_is_locked(&self) -> bool {
unsafe {
from_glib(light_dm_sys::lightdm_user_get_is_locked(
self.as_ref().to_glib_none().0,
))
}
}
fn get_language(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_user_get_language(
self.as_ref().to_glib_none().0,
))
}
}
fn get_layout(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_user_get_layout(
self.as_ref().to_glib_none().0,
))
}
}
fn get_layouts(&self) -> Vec<GString> {
unsafe {
FromGlibPtrContainer::from_glib_none(light_dm_sys::lightdm_user_get_layouts(
self.as_ref().to_glib_none().0,
))
}
}
fn get_logged_in(&self) -> bool {
unsafe {
from_glib(light_dm_sys::lightdm_user_get_logged_in(
self.as_ref().to_glib_none().0,
))
}
}
fn get_name(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_user_get_name(
self.as_ref().to_glib_none().0,
))
}
}
fn get_real_name(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_user_get_real_name(
self.as_ref().to_glib_none().0,
))
}
}
fn get_session(&self) -> Option<GString> {
unsafe {
from_glib_none(light_dm_sys::lightdm_user_get_session(
self.as_ref().to_glib_none().0,
))
}
}
fn get_uid(&self) -> u32 {
unsafe { light_dm_sys::lightdm_user_get_uid(self.as_ref().to_glib_none().0) }
}
fn connect_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn changed_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUser,
f: glib_sys::gpointer,
) where
P: IsA<User>,
{
let f: &F = &*(f as *const F);
f(&User::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"changed\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
changed_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_background_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_background_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUser,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<User>,
{
let f: &F = &*(f as *const F);
f(&User::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::background\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_background_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_display_name_notify<F: Fn(&Self) + 'static>(
&self,
f: F,
) -> SignalHandlerId {
unsafe extern "C" fn notify_display_name_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUser,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<User>,
{
let f: &F = &*(f as *const F);
f(&User::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::display-name\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_display_name_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_has_messages_notify<F: Fn(&Self) + 'static>(
&self,
f: F,
) -> SignalHandlerId {
unsafe extern "C" fn notify_has_messages_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUser,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<User>,
{
let f: &F = &*(f as *const F);
f(&User::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::has-messages\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_has_messages_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_home_directory_notify<F: Fn(&Self) + 'static>(
&self,
f: F,
) -> SignalHandlerId {
unsafe extern "C" fn notify_home_directory_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUser,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<User>,
{
let f: &F = &*(f as *const F);
f(&User::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::home-directory\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_home_directory_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_image_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_image_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUser,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<User>,
{
let f: &F = &*(f as *const F);
f(&User::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::image\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_image_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_is_locked_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_is_locked_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUser,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<User>,
{
let f: &F = &*(f as *const F);
f(&User::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::is-locked\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_is_locked_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_language_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_language_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUser,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<User>,
{
let f: &F = &*(f as *const F);
f(&User::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::language\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_language_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_layout_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_layout_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUser,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<User>,
{
let f: &F = &*(f as *const F);
f(&User::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::layout\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_layout_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_layouts_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_layouts_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUser,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<User>,
{
let f: &F = &*(f as *const F);
f(&User::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::layouts\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_layouts_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_logged_in_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_logged_in_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUser,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<User>,
{
let f: &F = &*(f as *const F);
f(&User::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::logged-in\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_logged_in_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_name_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUser,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<User>,
{
let f: &F = &*(f as *const F);
f(&User::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::name\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_name_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_real_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_real_name_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUser,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<User>,
{
let f: &F = &*(f as *const F);
f(&User::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::real-name\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_real_name_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_session_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_session_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUser,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<User>,
{
let f: &F = &*(f as *const F);
f(&User::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::session\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_session_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_uid_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_uid_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUser,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<User>,
{
let f: &F = &*(f as *const F);
f(&User::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::uid\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_uid_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
}
impl fmt::Display for User {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "User")
}
}

227
src/auto/user_list.rs Normal file
View File

@ -0,0 +1,227 @@
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT
use glib::object::Cast;
use glib::object::IsA;
use glib::signal::connect_raw;
use glib::signal::SignalHandlerId;
use glib::translate::*;
use glib::StaticType;
use glib::Value;
use glib_sys;
use gobject_sys;
use light_dm_sys;
use std::boxed::Box as Box_;
use std::fmt;
use std::mem::transmute;
use User;
glib_wrapper! {
pub struct UserList(Object<light_dm_sys::LightDMUserList, light_dm_sys::LightDMUserListClass, UserListClass>);
match fn {
get_type => || light_dm_sys::lightdm_user_list_get_type(),
}
}
impl UserList {
pub fn get_instance() -> Option<UserList> {
unsafe { from_glib_none(light_dm_sys::lightdm_user_list_get_instance()) }
}
}
pub const NONE_USER_LIST: Option<&UserList> = None;
pub trait UserListExt: 'static {
fn get_length(&self) -> i32;
fn get_user_by_name(&self, username: &str) -> Option<User>;
fn get_users(&self) -> Vec<User>;
fn get_property_num_users(&self) -> i32;
fn connect_user_added<F: Fn(&Self, &User) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_user_changed<F: Fn(&Self, &User) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_user_removed<F: Fn(&Self, &User) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_property_length_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_property_num_users_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
}
impl<O: IsA<UserList>> UserListExt for O {
fn get_length(&self) -> i32 {
unsafe { light_dm_sys::lightdm_user_list_get_length(self.as_ref().to_glib_none().0) }
}
fn get_user_by_name(&self, username: &str) -> Option<User> {
unsafe {
from_glib_none(light_dm_sys::lightdm_user_list_get_user_by_name(
self.as_ref().to_glib_none().0,
username.to_glib_none().0,
))
}
}
fn get_users(&self) -> Vec<User> {
unsafe {
FromGlibPtrContainer::from_glib_none(light_dm_sys::lightdm_user_list_get_users(
self.as_ref().to_glib_none().0,
))
}
}
fn get_property_num_users(&self) -> i32 {
unsafe {
let mut value = Value::from_type(<i32 as StaticType>::static_type());
gobject_sys::g_object_get_property(
self.to_glib_none().0 as *mut gobject_sys::GObject,
b"num-users\0".as_ptr() as *const _,
value.to_glib_none_mut().0,
);
value
.get()
.expect("Return Value for property `num-users` getter")
.unwrap()
}
}
fn connect_user_added<F: Fn(&Self, &User) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn user_added_trampoline<P, F: Fn(&P, &User) + 'static>(
this: *mut light_dm_sys::LightDMUserList,
user: *mut light_dm_sys::LightDMUser,
f: glib_sys::gpointer,
) where
P: IsA<UserList>,
{
let f: &F = &*(f as *const F);
f(
&UserList::from_glib_borrow(this).unsafe_cast_ref(),
&from_glib_borrow(user),
)
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"user-added\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
user_added_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_user_changed<F: Fn(&Self, &User) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn user_changed_trampoline<P, F: Fn(&P, &User) + 'static>(
this: *mut light_dm_sys::LightDMUserList,
user: *mut light_dm_sys::LightDMUser,
f: glib_sys::gpointer,
) where
P: IsA<UserList>,
{
let f: &F = &*(f as *const F);
f(
&UserList::from_glib_borrow(this).unsafe_cast_ref(),
&from_glib_borrow(user),
)
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"user-changed\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
user_changed_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_user_removed<F: Fn(&Self, &User) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn user_removed_trampoline<P, F: Fn(&P, &User) + 'static>(
this: *mut light_dm_sys::LightDMUserList,
user: *mut light_dm_sys::LightDMUser,
f: glib_sys::gpointer,
) where
P: IsA<UserList>,
{
let f: &F = &*(f as *const F);
f(
&UserList::from_glib_borrow(this).unsafe_cast_ref(),
&from_glib_borrow(user),
)
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"user-removed\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
user_removed_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_length_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_length_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUserList,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<UserList>,
{
let f: &F = &*(f as *const F);
f(&UserList::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::length\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_length_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
fn connect_property_num_users_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
unsafe extern "C" fn notify_num_users_trampoline<P, F: Fn(&P) + 'static>(
this: *mut light_dm_sys::LightDMUserList,
_param_spec: glib_sys::gpointer,
f: glib_sys::gpointer,
) where
P: IsA<UserList>,
{
let f: &F = &*(f as *const F);
f(&UserList::from_glib_borrow(this).unsafe_cast_ref())
}
unsafe {
let f: Box_<F> = Box_::new(f);
connect_raw(
self.as_ptr() as *mut _,
b"notify::num-users\0".as_ptr() as *const _,
Some(transmute::<_, unsafe extern "C" fn()>(
notify_num_users_trampoline::<Self, F> as *const (),
)),
Box_::into_raw(f),
)
}
}
}
impl fmt::Display for UserList {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "UserList")
}
}

2
src/auto/versions.txt Normal file
View File

@ -0,0 +1,2 @@
Generated by gir (https://github.com/gtk-rs/gir @ 2abca11)
from gir-files (https://github.com/gtk-rs/gir-files @ b89185a)

13
src/lib.rs Normal file
View File

@ -0,0 +1,13 @@
#[macro_use]
extern crate glib;
extern crate gio;
extern crate gio_sys;
extern crate glib_sys;
extern crate gobject_sys;
extern crate light_dm_sys;
extern crate libc;
pub use auto::*;
mod auto;