forked from AuroraMiddleware/gtk
c63087a563
To build a better world sometimes means having to tear the old one down. -- Alexander Pierce, "Captain America: The Winter Soldier" ATK served us well for nearly 20 years, but the world has changed, and GTK has changed with it. Now ATK is mostly a hindrance towards improving the accessibility stack: - it maps to a very specific implementation, AT-SPI, which is Linux and Unix specific - it requires implementing the same functionality in three different layers of the stack: AT-SPI, ATK, and GTK - only GTK uses it; every other Linux and Unix toolkit and application talks to AT-SPI directly, including assistive technologies Sadly, we cannot incrementally port GTK to a new accessibility stack; since ATK insulates us entirely from the underlying implementation, we cannot replace it piecemeal. Instead, we're going to remove everything and then incrementally build on a clean slate: - add an "accessible" interface, implemented by GTK objects directly, which describe the accessible role and state changes for every UI element - add an "assistive technology context" to proxy a native accessibility API, and assign it to every widget - implement the AT context depending on the platform For more information, see: https://gitlab.gnome.org/GNOME/gtk/-/issues/2833
102 lines
3.1 KiB
XML
102 lines
3.1 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE partintro PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
|
|
]>
|
|
<partintro>
|
|
<para>
|
|
GTK is a library for creating graphical user interfaces. It
|
|
works on many UNIX-like platforms, Windows, and OS X.
|
|
GTK is released under the GNU Library General Public License
|
|
(GNU LGPL), which allows for flexible licensing of client
|
|
applications. GTK has a C-based object-oriented architecture that
|
|
allows for maximum flexibility. Bindings for many other languages have
|
|
been written, including C++, Objective-C, Guile/Scheme, Perl, Python,
|
|
TOM, Ada95, Free Pascal, and Eiffel. The GTK library itself contains
|
|
<firstterm>widgets</firstterm>, that is, GUI components such as GtkButton
|
|
or GtkTextView.
|
|
|
|
</para>
|
|
<para>
|
|
GTK depends on the following libraries:
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
<term>GLib</term>
|
|
<listitem><para>
|
|
A general-purpose utility library, not specific to graphical user interfaces.
|
|
GLib provides many useful data types, macros, type conversions,
|
|
string utilities, file utilities, a main loop abstraction, and so on.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>GObject</term>
|
|
<listitem><para>A library that provides a type system, a collection of
|
|
fundamental types including an object type, a signal system.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>GIO</term>
|
|
<listitem><para>A modern, easy-to-use VFS API including abstractions for
|
|
files, drives, volumes, stream IO, as well as network programming and
|
|
DBus communication.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>cairo</term>
|
|
<listitem><para>Cairo is a 2D graphics library with support for multiple
|
|
output devices.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Pango</term>
|
|
<listitem><para>
|
|
Pango is a library for internationalized text handling. It centers
|
|
around the PangoLayout object, representing a paragraph of text.
|
|
Pango provides the engine for GtkTextView, GtkLabel, GtkEntry, and
|
|
other widgets that display text.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>GdkPixbuf</term>
|
|
<listitem><para>
|
|
This is a small library which allows you to create GdkPixbuf
|
|
("pixel buffer") objects from image data or image files.
|
|
Use a GdkPixbuf in combination with GtkImage to display images.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>graphene</term>
|
|
<listitem><para>
|
|
This is a small library which provides vector and matrix datatypes
|
|
and operations. graphene provides optimized implementations using
|
|
various SIMD instruction sets such as SSE.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>GDK</term>
|
|
<listitem><para>
|
|
GDK is the abstraction layer that allows GTK to support multiple
|
|
windowing systems. GDK provides window system facilities on Wayland,
|
|
X11, Windows, and OS X.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>GSK</term>
|
|
<listitem><para>
|
|
GSK is a library for creating a scene graph from render nodes,
|
|
and rendering it using different rendering APIs. GSK provides renderers
|
|
for OpenGL, Vulkan and cairo.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</partintro>
|