Update gtk-rs-core / gtk3-rs .gir files to latest Debian sid

GLib: 2.70.0
GTK3: 3.24.30
GdkPixbuf: 2.42.6
Graphene: 1.10.6
HarfBuzz: 2.7.4
Pango: 1.48.10

Also update dl.sh accordingly.
This commit is contained in:
Sebastian Dröge
2021-09-26 20:27:44 +03:00
parent fdad20eb56
commit 4ec1fa7e50
18 changed files with 14158 additions and 7942 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -113,17 +113,41 @@ directory it will return `\Windows\mylibrary.dll`.</doc>
<type name="utf8" c:type="const gchar*"/>
</return-value>
</function>
<function name="error_quark" c:identifier="g_module_error_quark">
<return-value transfer-ownership="none">
<type name="GLib.Quark" c:type="GQuark"/>
</return-value>
</function>
<function name="open" c:identifier="g_module_open" introspectable="0">
<doc xml:space="preserve">A thin wrapper function around g_module_open_full()</doc>
<return-value>
<doc xml:space="preserve">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">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">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="open_full" c:identifier="g_module_open_full" version="2.70" introspectable="0" throws="1">
<doc xml:space="preserve">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.
First of all g_module_open_full() 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 opened. If that fails and @file_name doesn't have the
".la"-suffix, this suffix is appended and g_module_open() tries to open
".la"-suffix, this suffix is appended and g_module_open_full() tries to open
the corresponding module. If eventually that fails as well, %NULL is
returned.</doc>
<return-value>
@@ -168,6 +192,15 @@ error.</doc>
</parameter>
</parameters>
</callback>
<enumeration name="ModuleError" version="2.70" c:type="GModuleError" glib:error-domain="g-module-error-quark">
<doc xml:space="preserve">Errors returned by g_module_open_full().</doc>
<member name="failed" value="0" c:identifier="G_MODULE_ERROR_FAILED">
<doc xml:space="preserve">there was an error loading or opening a module file</doc>
</member>
<member name="check_failed" value="1" c:identifier="G_MODULE_ERROR_CHECK_FAILED">
<doc xml:space="preserve">a module returned an error from its `g_module_check_init()` function</doc>
</member>
</enumeration>
<bitfield name="ModuleFlags" c:type="GModuleFlags">
<doc xml:space="preserve">Flags passed to g_module_open().
Note that these flags are not supported on all platforms.</doc>
@@ -240,6 +273,11 @@ directory it will return `\Windows\mylibrary.dll`.</doc>
<type name="utf8" c:type="const gchar*"/>
</return-value>
</function>
<function name="module_error_quark" c:identifier="g_module_error_quark" moved-to="Module.error_quark">
<return-value transfer-ownership="none">
<type name="GLib.Quark" c:type="GQuark"/>
</return-value>
</function>
<function name="module_supported" c:identifier="g_module_supported" moved-to="Module.supported">
<doc xml:space="preserve">Checks if modules are supported on the current platform.</doc>
<return-value transfer-ownership="none">

File diff suppressed because it is too large Load Diff

View File

@@ -593,8 +593,8 @@ To make the cursor invisible, use %GDK_BLANK_CURSOR.</doc>
</constructor>
<constructor name="new_for_display" c:identifier="gdk_cursor_new_for_display" version="2.2">
<doc xml:space="preserve">Creates a new cursor from the set of builtin cursors.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new #GdkCursor</doc>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve">a new #GdkCursor, or %NULL on failure</doc>
<type name="Cursor" c:type="GdkCursor*"/>
</return-value>
<parameters>
@@ -14770,7 +14770,7 @@ See gdk_keymap_get_caps_lock_state().</doc>
<constant name="MAX_TIMECOORD_AXES" value="128" c:type="GDK_MAX_TIMECOORD_AXES">
<type name="gint" c:type="gint"/>
</constant>
<constant name="MICRO_VERSION" value="23" c:type="GDK_MICRO_VERSION">
<constant name="MICRO_VERSION" value="30" c:type="GDK_MICRO_VERSION">
<type name="gint" c:type="gint"/>
</constant>
<constant name="MINOR_VERSION" value="24" c:type="GDK_MINOR_VERSION">
@@ -17666,7 +17666,7 @@ or any other error occurs.</doc>
</instance-parameter>
<parameter name="format" transfer-ownership="none">
<doc xml:space="preserve">the format for the new surface</doc>
<type name="gint" c:type="cairo_format_t"/>
<type name="cairo.Format" c:type="cairo_format_t"/>
</parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve">width of the new surface</doc>
@@ -21594,6 +21594,17 @@ context @cr.</doc>
</parameter>
</parameters>
</function>
<docsection name="cairo_interaction">
<doc xml:space="preserve">[Cairo](http://cairographics.org) is a graphics
library that supports vector graphics and image compositing that
can be used with GDK. GTK+ does all of its drawing using cairo.
GDK does not wrap the cairo API, instead it allows to create cairo
contexts which can be used to draw on #GdkWindows. Additional
functions allow use #GdkRectangles with cairo and to use #GdkColors,
#GdkRGBAs, #GdkPixbufs and #GdkWindows as sources for drawing
operations.</doc>
</docsection>
<function name="cairo_rectangle" c:identifier="gdk_cairo_rectangle" version="2.8">
<doc xml:space="preserve">Adds the given rectangle to the current path of @cr.</doc>
<return-value transfer-ownership="none">
@@ -21783,6 +21794,29 @@ and &#x201C;\#ffffffffffff&#x201D;).</doc>
</parameter>
</parameters>
</function>
<docsection name="colors">
<doc xml:space="preserve">A #GdkColor represents a color.
When working with cairo, it is often more convenient
to use a #GdkRGBA instead, and #GdkColor has been
deprecated in favor of #GdkRGBA.</doc>
</docsection>
<docsection name="cursors">
<doc xml:space="preserve">These functions are used to create and destroy cursors.
There is a number of standard cursors, but it is also
possible to construct new cursors from pixbufs. There
may be limitations as to what kinds of cursors can be
constructed on a given display, see
gdk_display_supports_cursor_alpha(),
gdk_display_supports_cursor_color(),
gdk_display_get_default_cursor_size() and
gdk_display_get_maximal_cursor_size().
Cursors by themselves are not very interesting, they must be be
bound to a window for users to see them. This is done with
gdk_window_set_cursor() or by setting the cursor member of the
#GdkWindowAttr passed to gdk_window_new().</doc>
</docsection>
<function name="disable_multidevice" c:identifier="gdk_disable_multidevice" version="3.0">
<doc xml:space="preserve">Disables multidevice support in GDK. This call must happen prior
to gdk_display_open(), gtk_init(), gtk_init_with_args() or
@@ -21796,6 +21830,17 @@ any way and doesn&#x2019;t observe the presence of XInput 2.</doc>
<type name="none" c:type="void"/>
</return-value>
</function>
<docsection name="dnd">
<doc xml:space="preserve">These functions provide a low level interface for drag and drop.
The X backend of GDK supports both the Xdnd and Motif drag and drop
protocols transparently, the Win32 backend supports the WM_DROPFILES
protocol.
GTK+ provides a higher level abstraction based on top of these functions,
and so they are not normally needed in GTK+ applications.
See the [Drag and Drop][gtk3-Drag-and-Drop] section of
the GTK+ documentation for more information.</doc>
</docsection>
<function name="drag_abort" c:identifier="gdk_drag_abort">
<doc xml:space="preserve">Aborts a drag without dropping.
@@ -22267,6 +22312,21 @@ motion events from a %GDK_MOTION_NOTIFY event usually works like this:
</parameter>
</parameters>
</function>
<docsection name="event_structs">
<doc xml:space="preserve">The event structures contain data specific to each type of event in GDK.
&gt; A common mistake is to forget to set the event mask of a widget so that
&gt; the required events are received. See gtk_widget_set_events().</doc>
</docsection>
<docsection name="events">
<doc xml:space="preserve">This section describes functions dealing with events from the window
system.
In GTK+ applications the events are handled automatically in
gtk_main_do_event() and passed on to the appropriate widgets, so these
functions are rarely needed. Though some of the fields in the
[Event Structures][gdk3-Event-Structures] are useful.</doc>
</docsection>
<function name="events_get_angle" c:identifier="gdk_events_get_angle" version="3.0">
<doc xml:space="preserve">If both events contain X/Y information, this function will return %TRUE
and return in @angle the relative angle from @event1 to @event2. The rotation
@@ -22354,6 +22414,26 @@ This is rarely needed by applications.</doc>
<type name="none" c:type="void"/>
</return-value>
</function>
<docsection name="gdktestutils">
<doc xml:space="preserve">The functions in this section are intended to be used in test programs.
They allow to simulate some user input.</doc>
</docsection>
<docsection name="general">
<doc xml:space="preserve">This section describes the GDK initialization functions and miscellaneous
utility functions, as well as deprecation facilities.
The GDK and GTK+ headers annotate deprecated APIs in a way that produces
compiler warnings if these deprecated APIs are used. The warnings
can be turned off by defining the macro %GDK_DISABLE_DEPRECATION_WARNINGS
before including the glib.h header.
GDK and GTK+ also provide support for building applications against
defined subsets of deprecated or new APIs. Define the macro
%GDK_VERSION_MIN_REQUIRED to specify up to what version
you want to receive warnings about deprecated APIs. Define the
macro %GDK_VERSION_MAX_ALLOWED to specify the newest version
whose API you want to use.</doc>
</docsection>
<function name="get_default_root_window" c:identifier="gdk_get_default_root_window">
<doc xml:space="preserve">Obtains the root window (parent all other windows are inside)
for the default display and screen.</doc>
@@ -22507,6 +22587,70 @@ application.</doc>
</parameter>
</parameters>
</function>
<docsection name="keys">
<doc xml:space="preserve">Key values are the codes which are sent whenever a key is pressed or released.
They appear in the #GdkEventKey.keyval field of the
#GdkEventKey structure, which is passed to signal handlers for the
#GtkWidget::key-press-event and #GtkWidget::key-release-event signals.
The complete list of key values can be found in the
`gdk/gdkkeysyms.h` header file.
Key values are regularly updated from the upstream X.org X11 implementation,
so new values are added regularly. They will be prefixed with GDK_KEY_ rather
than XF86XK_ or XK_ (for older symbols).
Key values can be converted into a string representation using
gdk_keyval_name(). The reverse function, converting a string to a key value,
is provided by gdk_keyval_from_name().
The case of key values can be determined using gdk_keyval_is_upper() and
gdk_keyval_is_lower(). Key values can be converted to upper or lower case
using gdk_keyval_to_upper() and gdk_keyval_to_lower().
When it makes sense, key values can be converted to and from
Unicode characters with gdk_keyval_to_unicode() and gdk_unicode_to_keyval().
# Groups # {#key-group-explanation}
One #GdkKeymap object exists for each user display. gdk_keymap_get_default()
returns the #GdkKeymap for the default display; to obtain keymaps for other
displays, use gdk_keymap_get_for_display(). A keymap
is a mapping from #GdkKeymapKey to key values. You can think of a #GdkKeymapKey
as a representation of a symbol printed on a physical keyboard key. That is, it
contains three pieces of information. First, it contains the hardware keycode;
this is an identifying number for a physical key. Second, it contains the
&#x201C;level&#x201D; of the key. The level indicates which symbol on the
key will be used, in a vertical direction. So on a standard US keyboard, the key
with the number &#x201C;1&#x201C; on it also has the exclamation point (&#x201D;!&#x201D;) character on
it. The level indicates whether to use the &#x201C;1&#x201D; or the &#x201C;!&#x201D; symbol. The letter
keys are considered to have a lowercase letter at level 0, and an uppercase
letter at level 1, though only the uppercase letter is printed. Third, the
#GdkKeymapKey contains a group; groups are not used on standard US keyboards,
but are used in many other countries. On a keyboard with groups, there can be 3
or 4 symbols printed on a single key. The group indicates movement in a
horizontal direction. Usually groups are used for two different languages. In
group 0, a key might have two English characters, and in group 1 it might have
two Hebrew characters. The Hebrew characters will be printed on the key next to
the English characters.
In order to use a keymap to interpret a key event, it&#x2019;s necessary to first
convert the keyboard state into an effective group and level. This is done via a
set of rules that varies widely according to type of keyboard and user
configuration. The function gdk_keymap_translate_keyboard_state() accepts a
keyboard state -- consisting of hardware keycode pressed, active modifiers, and
active group -- applies the appropriate rules, and returns the group/level to be
used to index the keymap, along with the modifiers which did not affect the
group and level. i.e. it returns &#x201C;unconsumed modifiers.&#x201D; The keyboard group may
differ from the effective group used for keymap lookups because some keys don't
have multiple groups - e.g. the Enter key is always in group 0 regardless of
keyboard state.
Note that gdk_keymap_translate_keyboard_state() also returns the keyval, i.e. it
goes ahead and performs the keymap lookup in addition to telling you which
effective group/level values were used for the lookup. #GdkEventKey already
contains this keyval, however, so you don&#x2019;t normally need to call
gdk_keymap_translate_keyboard_state() just to get the keyval.</doc>
</docsection>
<function name="keyval_convert_case" c:identifier="gdk_keyval_convert_case">
<doc xml:space="preserve">Obtains the upper- and lower-case versions of the keyval @symbol.
Examples of keyvals are #GDK_KEY_a, #GDK_KEY_Enter, #GDK_KEY_F1, etc.</doc>
@@ -22805,6 +22949,97 @@ changes to the screen&#x2019;s font rendering settings.</doc>
</parameter>
</parameters>
</function>
<docsection name="pango_interaction">
<doc xml:space="preserve">Pango is the text layout system used by GDK and GTK+. The functions
and types in this section are used to obtain clip regions for
#PangoLayouts, and to get #PangoContexts that can be used with
GDK.
Creating a #PangoLayout object is the first step in rendering text,
and requires getting a handle to a #PangoContext. For GTK+ programs,
you&#x2019;ll usually want to use gtk_widget_get_pango_context(), or
gtk_widget_create_pango_layout(), rather than using the lowlevel
gdk_pango_context_get_for_screen(). Once you have a #PangoLayout, you
can set the text and attributes of it with Pango functions like
pango_layout_set_text() and get its size with pango_layout_get_size().
(Note that Pango uses a fixed point system internally, so converting
between Pango units and pixels using [PANGO_SCALE][PANGO-SCALE-CAPS]
or the PANGO_PIXELS() macro.)
Rendering a Pango layout is done most simply with pango_cairo_show_layout();
you can also draw pieces of the layout with pango_cairo_show_layout_line().
## Draw transformed text with Pango and cairo ## {#rotated-example}
|[&lt;!-- language="C" --&gt;
#define RADIUS 100
#define N_WORDS 10
#define FONT "Sans Bold 18"
PangoContext *context;
PangoLayout *layout;
PangoFontDescription *desc;
double radius;
int width, height;
int i;
// Set up a transformation matrix so that the user space coordinates for
// where we are drawing are [-RADIUS, RADIUS], [-RADIUS, RADIUS]
// We first center, then change the scale
width = gdk_window_get_width (window);
height = gdk_window_get_height (window);
radius = MIN (width, height) / 2.;
cairo_translate (cr,
radius + (width - 2 * radius) / 2,
radius + (height - 2 * radius) / 2);
cairo_scale (cr, radius / RADIUS, radius / RADIUS);
// Create a PangoLayout, set the font and text
context = gdk_pango_context_get_for_screen (screen);
layout = pango_layout_new (context);
pango_layout_set_text (layout, "Text", -1);
desc = pango_font_description_from_string (FONT);
pango_layout_set_font_description (layout, desc);
pango_font_description_free (desc);
// Draw the layout N_WORDS times in a circle
for (i = 0; i &lt; N_WORDS; i++)
{
double red, green, blue;
double angle = 2 * G_PI * i / n_words;
cairo_save (cr);
// Gradient from red at angle == 60 to blue at angle == 300
red = (1 + cos (angle - 60)) / 2;
green = 0;
blue = 1 - red;
cairo_set_source_rgb (cr, red, green, blue);
cairo_rotate (cr, angle);
// Inform Pango to re-layout the text with the new transformation matrix
pango_cairo_update_layout (cr, layout);
pango_layout_get_size (layout, &amp;width, &amp;height);
cairo_move_to (cr, - width / 2 / PANGO_SCALE, - DEFAULT_TEXT_RADIUS);
pango_cairo_show_layout (cr, layout);
cairo_restore (cr);
}
g_object_unref (layout);
g_object_unref (context);
]|
## Output of the [example][rotated-example] above.
![](rotated-text.png)</doc>
</docsection>
<function name="pango_layout_get_clip_region" c:identifier="gdk_pango_layout_get_clip_region" introspectable="0">
<doc xml:space="preserve">Obtains a clip region which contains the areas where the given ranges
of text would be drawn. @x_origin and @y_origin are the top left point
@@ -23004,6 +23239,13 @@ instead.
</parameter>
</parameters>
</function>
<docsection name="pixbufs">
<doc xml:space="preserve">Pixbufs are client-side images. For details on how to create
and manipulate pixbufs, see the #GdkPixbuf API documentation.
The functions described here allow to obtain pixbufs from
#GdkWindows and cairo surfaces.</doc>
</docsection>
<function name="pointer_grab" c:identifier="gdk_pointer_grab" deprecated="1" deprecated-version="3.0">
<doc xml:space="preserve">Grabs the pointer (usually a mouse) so that all events are passed to this
application until the pointer is ungrabbed with gdk_pointer_ungrab(), or
@@ -23108,6 +23350,35 @@ public API and should not be used in application code.</doc>
<type name="none" c:type="void"/>
</return-value>
</function>
<docsection name="properties">
<doc xml:space="preserve">Each window under X can have any number of associated
&#x201C;properties&#x201D; attached to it.
Properties are arbitrary chunks of data identified by
&#x201C;atom&#x201D;s. (An &#x201C;atom&#x201D;
is a numeric index into a string table on the X server. They are used
to transfer strings efficiently between clients without
having to transfer the entire string.) A property
has an associated type, which is also identified
using an atom.
A property has an associated &#x201C;format&#x201D;,
an integer describing how many bits are in each unit
of data inside the property. It must be 8, 16, or 32.
When data is transferred between the server and client,
if they are of different endianesses it will be byteswapped
as necessary according to the format of the property.
Note that on the client side, properties of format 32
will be stored with one unit per long,
even if a long integer has more than 32 bits on the platform.
(This decision was apparently made for Xlib to maintain
compatibility with programs that assumed longs were 32
bits, at the expense of programs that knew better.)
The functions in this section are used to add, remove
and change properties on windows, to convert atoms
to and from strings and to manipulate some types of
data commonly stored in X window properties.</doc>
</docsection>
<function name="property_change" c:identifier="gdk_property_change" introspectable="0">
<doc xml:space="preserve">Changes the contents of a property on a window.</doc>
<return-value transfer-ownership="none">
@@ -23302,6 +23573,28 @@ The array returned by this function should not be freed.</doc>
</parameter>
</parameters>
</function>
<docsection name="regions">
<doc xml:space="preserve">GDK provides the #GdkPoint and #GdkRectangle data types for representing pixels
and sets of pixels on the screen. Together with Cairo&#x2019;s #cairo_region_t data
type, they make up the central types for representing graphical data.
A #GdkPoint represents an x and y coordinate of a point.
A #GdkRectangle represents the position and size of a rectangle.
The intersection of two rectangles can be computed with
gdk_rectangle_intersect(). To find the union of two rectangles use
gdk_rectangle_union().
#cairo_region_t is usually used for managing clipping of graphical operations.</doc>
</docsection>
<docsection name="rgba_colors">
<doc xml:space="preserve">#GdkRGBA is a convenient way to pass rgba colors around.
It&#x2019;s based on cairo&#x2019;s way to deal with colors and mirrors its behavior.
All values are in the range from 0.0 to 1.0 inclusive. So the color
(0.0, 0.0, 0.0, 0.0) represents transparent black and
(1.0, 1.0, 1.0, 1.0) is opaque white. Other values will be clamped
to this range when drawing.</doc>
</docsection>
<function name="selection_convert" c:identifier="gdk_selection_convert">
<doc xml:space="preserve">Retrieves the contents of a selection in a given
form.</doc>
@@ -23536,6 +23829,37 @@ API instead.</doc>
</parameter>
</parameters>
</function>
<docsection name="selections">
<doc xml:space="preserve">GDK&#x2019;s selection functions, based on the [X selection mechanism](
https://www.x.org/releases/X11R7.6/doc/xorg-docs/specs/ICCCM/icccm.html),
provide a way to transfer arbitrary chunks of
data between programs. A &#x201C;selection&#x201D; is a essentially
a named clipboard, identified by a string interned as a #GdkAtom. By
claiming ownership of a selection, an application indicates that it will
be responsible for supplying its contents. The most common selections are
`PRIMARY` and `CLIPBOARD`.
The contents of a selection can be represented in a number of formats,
called &#x201C;targets&#x201D;. Each target is identified by an atom.
A list of all possible targets supported by the selection owner can be
retrieved by requesting the special target `TARGETS`. When
a selection is retrieved, the data is accompanied by a type (an atom), and
a format (an integer, representing the number of bits per item).
See [Properties and Atoms][gdk3-Properties-and-Atoms]
for more information.
The functions in this section only contain the lowlevel parts of the
selection protocol. A considerably more complicated implementation is needed
on top of this. GTK+ contains such an implementation in the functions in
`gtkselection.h` and programmers should use those functions
instead of the ones presented here. If you plan to implement selection
handling directly on top of the functions here, you should refer to the
[X Inter-Client Communication Conventions Manual (ICCCM)](
https://www.x.org/releases/X11R7.6/doc/xorg-docs/specs/ICCCM/icccm.html).
Note that although much of the selection API design is based on that of X,
it will work on other GDK backends too.</doc>
</docsection>
<function name="set_allowed_backends" c:identifier="gdk_set_allowed_backends" version="3.10">
<doc xml:space="preserve">Sets a list of backends that GDK should try to use.
@@ -23807,6 +24131,59 @@ a list of UTF-8 strings.</doc>
</parameter>
</parameters>
</function>
<docsection name="threads">
<doc xml:space="preserve">For thread safety, GDK relies on the thread primitives in GLib,
and on the thread-safe GLib main loop.
GLib is completely thread safe (all global data is automatically
locked), but individual data structure instances are not automatically
locked for performance reasons. So e.g. you must coordinate
accesses to the same #GHashTable from multiple threads.
GTK+, however, is not thread safe. You should only use GTK+ and GDK
from the thread gtk_init() and gtk_main() were called on.
This is usually referred to as the &#x201C;main thread&#x201D;.
Signals on GTK+ and GDK types, as well as non-signal callbacks, are
emitted in the main thread.
You can schedule work in the main thread safely from other threads
by using gdk_threads_add_idle() and gdk_threads_add_timeout():
|[&lt;!-- language="C" --&gt;
static void
worker_thread (void)
{
ExpensiveData *expensive_data = do_expensive_computation ();
gdk_threads_add_idle (got_value, expensive_data);
}
static gboolean
got_value (gpointer user_data)
{
ExpensiveData *expensive_data = user_data;
my_app-&gt;expensive_data = expensive_data;
gtk_button_set_sensitive (my_app-&gt;button, TRUE);
gtk_button_set_label (my_app-&gt;button, expensive_data-&gt;result_label);
return G_SOURCE_REMOVE;
}
]|
You should use gdk_threads_add_idle() and gdk_threads_add_timeout()
instead of g_idle_add() and g_timeout_add() since libraries not under
your control might be using the deprecated GDK locking mechanism.
If you are sure that none of the code in your application and libraries
use the deprecated gdk_threads_enter() or gdk_threads_leave() methods,
then you can safely use g_idle_add() and g_timeout_add().
For more information on this "worker thread" pattern, you should
also look at #GTask, which gives you high-level tools to perform
expensive tasks from worker threads, and will handle thread
management for you.</doc>
</docsection>
<function name="threads_add_idle" c:identifier="gdk_threads_add_idle" shadowed-by="threads_add_idle_full" version="2.12" introspectable="0">
<doc xml:space="preserve">A wrapper for the common usage of gdk_threads_add_idle_full()
assigning the default priority, #G_PRIORITY_DEFAULT_IDLE.
@@ -24150,5 +24527,64 @@ is not specified; it may be as pseudo-escape sequences
</parameter>
</parameters>
</function>
<docsection name="visuals">
<doc xml:space="preserve">A #GdkVisual describes a particular video hardware display format.
It includes information about the number of bits used for each color,
the way the bits are translated into an RGB value for display, and
the way the bits are stored in memory. For example, a piece of display
hardware might support 24-bit color, 16-bit color, or 8-bit color;
meaning 24/16/8-bit pixel sizes. For a given pixel size, pixels can
be in different formats; for example the &#x201C;red&#x201D; element of an RGB pixel
may be in the top 8 bits of the pixel, or may be in the lower 4 bits.
There are several standard visuals. The visual returned by
gdk_screen_get_system_visual() is the system&#x2019;s default visual, and
the visual returned by gdk_screen_get_rgba_visual() should be used for
creating windows with an alpha channel.
A number of functions are provided for determining the &#x201C;best&#x201D; available
visual. For the purposes of making this determination, higher bit depths
are considered better, and for visuals of the same bit depth,
%GDK_VISUAL_PSEUDO_COLOR is preferred at 8bpp, otherwise, the visual
types are ranked in the order of(highest to lowest)
%GDK_VISUAL_DIRECT_COLOR, %GDK_VISUAL_TRUE_COLOR,
%GDK_VISUAL_PSEUDO_COLOR, %GDK_VISUAL_STATIC_COLOR,
%GDK_VISUAL_GRAYSCALE, then %GDK_VISUAL_STATIC_GRAY.</doc>
</docsection>
<docsection name="windows">
<doc xml:space="preserve">A #GdkWindow is a (usually) rectangular region on the screen.
It&#x2019;s a low-level object, used to implement high-level objects such as
#GtkWidget and #GtkWindow on the GTK+ level. A #GtkWindow is a toplevel
window, the thing a user might think of as a &#x201C;window&#x201D; with a titlebar
and so on; a #GtkWindow may contain many #GdkWindows. For example,
each #GtkButton has a #GdkWindow associated with it.
# Composited Windows # {#COMPOSITED-WINDOWS}
Normally, the windowing system takes care of rendering the contents
of a child window onto its parent window. This mechanism can be
intercepted by calling gdk_window_set_composited() on the child
window. For a &#x201C;composited&#x201D; window it is the
responsibility of the application to render the window contents at
the right spot.
# Offscreen Windows # {#OFFSCREEN-WINDOWS}
Offscreen windows are more general than composited windows, since
they allow not only to modify the rendering of the child window onto
its parent, but also to apply coordinate transformations.
To integrate an offscreen window into a window hierarchy, one has
to call gdk_offscreen_window_set_embedder() and handle a number of
signals. The #GdkWindow::pick-embedded-child signal on the embedder
window is used to select an offscreen child at given coordinates,
and the #GdkWindow::to-embedder and #GdkWindow::from-embedder signals
on the offscreen window are used to translate coordinates between
the embedder and the offscreen window.
For rendering an offscreen window onto its embedder, the contents
of the offscreen window are available as a surface, via
gdk_offscreen_window_get_surface().</doc>
</docsection>
</namespace>
</repository>

File diff suppressed because it is too large Load Diff

View File

@@ -11,59 +11,73 @@ and/or use gtk-doc annotations. -->
<doc xml:space="preserve">Magic number for #GdkPixdata structures.</doc>
<type name="gint" c:type="gint"/>
</constant>
<constant name="PIXDATA_HEADER_LENGTH" value="24" c:type="GDK_PIXDATA_HEADER_LENGTH">
<constant name="PIXDATA_HEADER_LENGTH" value="24" c:type="GDK_PIXDATA_HEADER_LENGTH" deprecated="1" deprecated-version="2.32">
<doc xml:space="preserve">The length of a #GdkPixdata structure without the @pixel_data pointer.</doc>
<type name="gint" c:type="gint"/>
</constant>
<record name="Pixdata" c:type="GdkPixdata">
<doc xml:space="preserve">A #GdkPixdata contains pixbuf information in a form suitable for
serialization and streaming.</doc>
<record name="Pixdata" c:type="GdkPixdata" deprecated="1" deprecated-version="2.32">
<doc xml:space="preserve">A pixel buffer suitable for serialization and streaming.
Using `GdkPixdata`, images can be compiled into an application,
making it unnecessary to refer to external image files at runtime.
`GdkPixbuf` includes a utility named `gdk-pixbuf-csource`, which
can be used to convert image files into `GdkPixdata` structures suitable
for inclusion in C sources. To convert the `GdkPixdata` structures back
into a `GdkPixbuf`, use `gdk_pixbuf_from_pixdata()`.</doc>
<doc-deprecated xml:space="preserve">`GdkPixdata` should not be used any more. `GResource`
should be used to save the original compressed images inside the
program's binary</doc-deprecated>
<field name="magic" writable="1">
<doc xml:space="preserve">magic number. A valid #GdkPixdata structure must have
#GDK_PIXBUF_MAGIC_NUMBER here.</doc>
<doc xml:space="preserve">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">less than 1 to disable length checks, otherwise
#GDK_PIXDATA_HEADER_LENGTH + length of @pixel_data.</doc>
`GDK_PIXDATA_HEADER_LENGTH` plus the length of `pixel_data`</doc>
<type name="gint32" c:type="gint32"/>
</field>
<field name="pixdata_type" writable="1">
<doc xml:space="preserve">information about colorspace, sample width and
encoding, in a #GdkPixdataType.</doc>
encoding, in a `GdkPixdataType`</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="rowstride" writable="1">
<doc xml:space="preserve">Distance in bytes between rows.</doc>
<doc xml:space="preserve">Distance in bytes between rows</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="width" writable="1">
<doc xml:space="preserve">Width of the image in pixels.</doc>
<doc xml:space="preserve">Width of the image in pixels</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="height" writable="1">
<doc xml:space="preserve">Height of the image in pixels.</doc>
<doc xml:space="preserve">Height of the image in pixels</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="pixel_data" writable="1">
<doc xml:space="preserve">@width x @height pixels, encoded according to @pixdata_type
and @rowstride.</doc>
<doc xml:space="preserve">`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">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
`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>
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>
<return-value transfer-ownership="none">
<doc xml:space="preserve">Upon successful deserialization %TRUE is returned,
%FALSE otherwise.</doc>
<doc xml:space="preserve">Upon successful deserialization `TRUE` is returned,
`FALSE` otherwise.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
@@ -85,23 +99,26 @@ or %GDK_PIXBUF_ERROR_UNKNOWN_TYPE.</doc>
</parameters>
</method>
<method name="from_pixbuf" c:identifier="gdk_pixdata_from_pixbuf" introspectable="0" deprecated="1" deprecated-version="2.32">
<doc xml:space="preserve">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 xml:space="preserve">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>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">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"/>
<doc xml:space="preserve">If `use_rle` is
`TRUE`, a pointer to the newly-allocated memory for the run-length
encoded pixel data, otherwise `NULL`.</doc>
<array zero-terminated="0" c:type="gpointer">
<type name="guint8"/>
</array>
</return-value>
<parameters>
<instance-parameter name="pixdata" transfer-ownership="none">
<doc xml:space="preserve">a #GdkPixdata to fill.</doc>
<doc xml:space="preserve">a `GdkPixdata` to fill.</doc>
<type name="Pixdata" c:type="GdkPixdata*"/>
</instance-parameter>
<parameter name="pixbuf" transfer-ownership="none">
<doc xml:space="preserve">the data to fill @pixdata with.</doc>
<doc xml:space="preserve">the data to fill `pixdata` with.</doc>
<type name="GdkPixbuf.Pixbuf" c:type="const GdkPixbuf*"/>
</parameter>
<parameter name="use_rle" transfer-ownership="none">
@@ -139,33 +156,31 @@ structure.</doc>
<doc xml:space="preserve">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>
GdkPixbuf ships with a program called `gdk-pixbuf-csource`, which offers
a command line interface to this function.</doc>
<doc-deprecated xml:space="preserve">Use #GResource instead.</doc-deprecated>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a newly-allocated string containing the C source form
of @pixdata.</doc>
<doc xml:space="preserve">a newly-allocated string buffer 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">a #GdkPixdata to convert to C source.</doc>
<doc xml:space="preserve">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">used for naming generated data structures or macros.</doc>
<doc xml:space="preserve">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">a #GdkPixdataDumpType determining the kind of C
source to be generated.</doc>
<doc xml:space="preserve">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">
<bitfield name="PixdataDumpType" deprecated="1" deprecated-version="2.32" c:type="GdkPixdataDumpType">
<doc xml:space="preserve">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
@@ -207,7 +222,7 @@ elements are optional flags that can be freely added.</doc>
macro definition to decode run-length encoded image data.</doc>
</member>
</bitfield>
<bitfield name="PixdataType" c:type="GdkPixdataType">
<bitfield name="PixdataType" deprecated="1" deprecated-version="2.32" c:type="GdkPixdataType">
<doc xml:space="preserve">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>
@@ -241,34 +256,25 @@ for the encoding of the pixel data.</doc>
<doc xml:space="preserve">mask for the encoding flags of the enum.</doc>
</member>
</bitfield>
<docsection name="inline">
<doc xml:space="preserve">Using #GdkPixdata, images can be compiled into an application,
making it unnecessary to refer to external image files at runtime.
GdkPixBuf includes a utility named gdk-pixbuf-csource, which
can be used to convert image files into #GdkPixdata structures suitable
for inclusion in C sources. To convert the #GdkPixdata structures back
into #GdkPixbufs, use gdk_pixbuf_from_pixdata.
#GdkPixdata should not be used any more. #GResource should be used to save
the original compressed images inside the program's binary.</doc>
</docsection>
<function name="pixbuf_from_pixdata" c:identifier="gdk_pixbuf_from_pixdata" deprecated="1" deprecated-version="2.32" throws="1">
<doc xml:space="preserve">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>
<doc xml:space="preserve">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>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new #GdkPixbuf.</doc>
<doc xml:space="preserve">a new pixbuf</doc>
<type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
</return-value>
<parameters>
<parameter name="pixdata" transfer-ownership="none">
<doc xml:space="preserve">a #GdkPixdata to convert into a #GdkPixbuf.</doc>
<doc xml:space="preserve">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">whether to copy raw pixel data; run-length encoded
pixel data is always copied.</doc>
pixel data is always copied.</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>

View File

@@ -1754,5 +1754,33 @@ gdk_x11_grab_server().</doc>
</parameter>
</parameters>
</function>
<docsection name="x_interaction">
<doc xml:space="preserve">The functions in this section are specific to the GDK X11 backend.
To use them, you need to include the `&lt;gdk/gdkx.h&gt;` header and use
the X11-specific pkg-config files to build your application (either
`gdk-x11-3.0` or `gtk+-x11-3.0`).
To make your code compile with other GDK backends, guard backend-specific
calls by an ifdef as follows. Since GDK may be built with multiple
backends, you should also check for the backend that is in use (e.g. by
using the GDK_IS_X11_DISPLAY() macro).
|[
#ifdef GDK_WINDOWING_X11
if (GDK_IS_X11_DISPLAY (display))
{
// make X11-specific calls here
}
else
#endif
#ifdef GDK_WINDOWING_QUARTZ
if (GDK_IS_QUARTZ_DISPLAY (display))
{
// make Quartz-specific calls here
}
else
#endif
g_error ("Unsupported GDK backend");
]|</doc>
</docsection>
</namespace>
</repository>

File diff suppressed because it is too large Load Diff

View File

@@ -7,6 +7,14 @@ and/or use gtk-doc annotations. -->
<package name="graphene-gobject-1.0"/>
<c:include name="graphene-gobject.h"/>
<namespace name="Graphene" version="1.0" shared-library="libgraphene-1.0.so.0" c:identifier-prefixes="Graphene" c:symbol-prefixes="graphene">
<function-macro name="ALIGNED_DECL" c:identifier="GRAPHENE_ALIGNED_DECL" introspectable="0">
<parameters>
<parameter name="x">
</parameter>
<parameter name="val">
</parameter>
</parameters>
</function-macro>
<record name="Box" c:type="graphene_box_t" version="1.2" glib:type-name="GrapheneBox" glib:get-type="graphene_box_get_type" c:symbol-prefix="box">
<doc xml:space="preserve">A 3D box, described as the volume between a minimum and
a maximum vertices.</doc>
@@ -1310,15 +1318,6 @@ a #graphene_frustum_t.</doc>
</parameters>
</method>
</record>
<constant name="HAS_GCC" value="1" c:type="GRAPHENE_HAS_GCC">
<type name="gint" c:type="gint"/>
</constant>
<constant name="HAS_SCALAR" value="1" c:type="GRAPHENE_HAS_SCALAR">
<type name="gint" c:type="gint"/>
</constant>
<constant name="HAS_SSE" value="1" c:type="GRAPHENE_HAS_SSE">
<type name="gint" c:type="gint"/>
</constant>
<record name="Matrix" c:type="graphene_matrix_t" glib:type-name="GrapheneMatrix" glib:get-type="graphene_matrix_get_type" c:symbol-prefix="matrix">
<doc xml:space="preserve">A structure capable of holding a 4x4 matrix.
@@ -5412,9 +5411,6 @@ a size of 0, 0.</doc>
</return-value>
</function>
</record>
<constant name="SIMD_S" value="sse" c:type="GRAPHENE_SIMD_S">
<type name="utf8" c:type="gchar*"/>
</constant>
<function-macro name="SIZE_INIT" c:identifier="GRAPHENE_SIZE_INIT" version="1.0" introspectable="0">
<doc xml:space="preserve">Initializes a #graphene_size_t with the given sizes when
declaring it, e.g.:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -22,90 +22,95 @@ and/or use gtk-doc annotations. -->
</parameters>
</function-macro>
<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">#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>
<doc xml:space="preserve">`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">Gets the #cairo_scaled_font_t used by @font.
<doc xml:space="preserve">Gets the `cairo_scaled_font_t` used by @font.
The scaled font can be referenced and kept using
cairo_scaled_font_reference().</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the #cairo_scaled_font_t used by @font,
or %NULL if @font is %NULL.</doc>
<doc xml:space="preserve">the `cairo_scaled_font_t`
used by @font</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">a #PangoFont from a #PangoCairoFontMap</doc>
<instance-parameter name="font" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">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">#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>
<doc xml:space="preserve">`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">Gets a default #PangoCairoFontMap to use with Cairo.
<doc xml:space="preserve">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.
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.
[method@PangoCairo.FontMap.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>
Each thread gets its own default fontmap. In this way, PangoCairo
can be used safely from multiple threads.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the default PangoCairo fontmap
for the current thread. This object is owned by Pango and must not be freed.</doc>
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">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()
<doc xml:space="preserve">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 `func@PangoCairo.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 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,
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>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the newly allocated #PangoFontMap,
which should be freed with g_object_unref().</doc>
<doc xml:space="preserve">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">Creates a new #PangoCairoFontMap object of the type suitable
<doc xml:space="preserve">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>
In most cases one should simply use [func@PangoCairo.FontMap.new], or
in fact in most of those cases, just use [func@PangoCairo.FontMap.get_default].</doc>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve">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>
`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>
@@ -116,7 +121,7 @@ or in fact in most of those cases, just use
</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">Create a #PangoContext for the given fontmap.</doc>
<doc xml:space="preserve">Create a `PangoContext` for the given fontmap.</doc>
<doc-deprecated xml:space="preserve">Use pango_font_map_create_context() instead.</doc-deprecated>
<return-value>
<doc xml:space="preserve">the newly created context; free with g_object_unref().</doc>
@@ -124,7 +129,7 @@ or in fact in most of those cases, just use
</return-value>
<parameters>
<instance-parameter name="fontmap" transfer-ownership="none">
<doc xml:space="preserve">a #PangoCairoFontMap</doc>
<doc xml:space="preserve">a `PangoCairoFontMap`</doc>
<type name="FontMap" c:type="PangoCairoFontMap*"/>
</instance-parameter>
</parameters>
@@ -132,58 +137,62 @@ or in fact in most of those cases, just use
<method name="get_font_type" c:identifier="pango_cairo_font_map_get_font_type" version="1.18">
<doc xml:space="preserve">Gets the type of Cairo font backend that @fontmap uses.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the #cairo_font_type_t cairo font backend type</doc>
<doc xml:space="preserve">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">a #PangoCairoFontMap</doc>
<doc xml:space="preserve">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">Gets the resolution for the fontmap. See pango_cairo_font_map_set_resolution()</doc>
<doc xml:space="preserve">Gets the resolution for the fontmap.
See [method@PangoCairo.FontMap.set_resolution].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">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">a #PangoCairoFontMap</doc>
<doc xml:space="preserve">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">Sets a default #PangoCairoFontMap to use with Cairo.
<doc xml:space="preserve">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
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 existing threads
the current thread. Default fontmaps of existing threads
are not changed. Default fontmaps of any new threads will
still be created using pango_cairo_font_map_new().
still be created using [func@PangoCairo.FontMap.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>
font map to be released and a new default font map to be created
on demand, using [func@PangoCairo.FontMap.new].</doc>
<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">The new default font map, or %NULL</doc>
<doc xml:space="preserve">The new default font map</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">Sets the resolution for the fontmap. This is a scale factor between
points specified in a #PangoFontDescription and Cairo units. The
<doc xml:space="preserve">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>
<return-value transfer-ownership="none">
@@ -191,7 +200,7 @@ units high. (10 * 96. / 72. = 13.3).</doc>
</return-value>
<parameters>
<instance-parameter name="fontmap" transfer-ownership="none">
<doc xml:space="preserve">a #PangoCairoFontMap</doc>
<doc xml:space="preserve">a `PangoCairoFontMap`</doc>
<type name="FontMap" c:type="PangoCairoFontMap*"/>
</instance-parameter>
<parameter name="dpi" transfer-ownership="none">
@@ -245,8 +254,10 @@ pango_cairo_layout_line_path() rendering functions.</doc>
</callback>
<function name="context_get_font_options" c:identifier="pango_cairo_context_get_font_options" version="1.10">
<doc xml:space="preserve">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>
[func@PangoCairo.context_set_font_options].
This function does not report options that are derived from
the target surface by [func@update_context].</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the font options previously set on the
context, or %NULL if no options have been set. This value is
@@ -255,80 +266,85 @@ that are derived from the target surface by pango_cairo_update_context()</doc>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a #PangoContext, from a pangocairo font map</doc>
<doc xml:space="preserve">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">Gets the resolution for the context. See pango_cairo_context_set_resolution()</doc>
<doc xml:space="preserve">Gets the resolution for the context.
See [func@PangoCairo.context_set_resolution]</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the resolution in "dots per inch". A negative value will
be returned if no resolution has previously been set.</doc>
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">a #PangoContext, from a pangocairo font map</doc>
<doc xml:space="preserve">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">Sets callback function for context to use for rendering attributes
of type %PANGO_ATTR_SHAPE. See #PangoCairoShapeRendererFunc for
details.
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>
[func@PangoCairo.context_set_shape_renderer], if any.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the shape rendering callback previously
set on the context, or %NULL if no shape rendering callback have
been set.</doc>
<doc xml:space="preserve">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">a #PangoContext, from a pangocairo font map</doc>
<doc xml:space="preserve">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">Pointer to #gpointer to return user data</doc>
<doc xml:space="preserve">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">Sets the font options used when rendering text with this context.
These options override any options that pango_cairo_update_context()
These options override any options that [func@update_context]
derives from the target surface.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a #PangoContext, from a pangocairo font map</doc>
<doc xml:space="preserve">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">a #cairo_font_options_t, or %NULL to unset
any previously set options. A copy is made.</doc>
<doc xml:space="preserve">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">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>
<doc xml:space="preserve">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>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a #PangoContext, from a pangocairo font map</doc>
<doc xml:space="preserve">a `PangoContext`, from a pangocairo font map</doc>
<type name="Pango.Context" c:type="PangoContext*"/>
</parameter>
<parameter name="dpi" transfer-ownership="none">
@@ -341,44 +357,46 @@ units high. (10 * 96. / 72. = 13.3).</doc>
</function>
<function name="context_set_shape_renderer" c:identifier="pango_cairo_context_set_shape_renderer" version="1.18">
<doc xml:space="preserve">Sets callback function for context to use for rendering attributes
of type %PANGO_ATTR_SHAPE. See #PangoCairoShapeRendererFunc for
details.</doc>
of type %PANGO_ATTR_SHAPE.
See `PangoCairoShapeRendererFunc` for details.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a #PangoContext, from a pangocairo font map</doc>
<doc xml:space="preserve">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">Callback function for rendering attributes of
type %PANGO_ATTR_SHAPE, or %NULL to disable shape rendering.</doc>
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">User data that will be passed to @func.</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="dnotify" transfer-ownership="none" scope="async">
<parameter name="dnotify" transfer-ownership="none" nullable="1" allow-none="1" scope="async">
<doc xml:space="preserve">Callback that will be called when the
context is freed to release @data, or %NULL.</doc>
context is freed to release @data</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">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().
and target surface of the Cairo context.
This context can then be
used to create a layout using [ctor@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>
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 [func@create_layout] instead.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the newly created #PangoContext. Free with
g_object_unref().</doc>
<doc xml:space="preserve">the newly created `PangoContext`</doc>
<type name="Pango.Context" c:type="PangoContext*"/>
</return-value>
<parameters>
@@ -390,19 +408,19 @@ directly, you can use pango_cairo_create_layout() instead.</doc>
</function>
<function name="create_layout" c:identifier="pango_cairo_create_layout" version="1.10">
<doc xml:space="preserve">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()
and target surface of the Cairo context.
This layout can then be used for text measurement with functions
like [method@Pango.Layout.get_size] or drawing with functions like
[func@show_layout]. If you change the transformation or target
surface for @cr, you need to call [func@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
`PangoContext` object for each layout. This might matter in an
application that was laying out large amounts of text.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the newly created #PangoLayout. Free with
g_object_unref().</doc>
<doc xml:space="preserve">the newly created `PangoLayout`</doc>
<type name="Pango.Layout" c:type="PangoLayout*"/>
</return-value>
<parameters>
@@ -415,9 +433,10 @@ application that was laying out large amounts of text.</doc>
<function name="error_underline_path" c:identifier="pango_cairo_error_underline_path" version="1.14">
<doc xml:space="preserve">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>
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>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -445,63 +464,64 @@ in the original rectangle)</doc>
</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">Gets a default #PangoCairoFontMap to use with Cairo.
<doc xml:space="preserve">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.
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.
[method@PangoCairo.FontMap.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>
Each thread gets its own default fontmap. In this way, PangoCairo
can be used safely from multiple threads.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the default PangoCairo fontmap
for the current thread. This object is owned by Pango and must not be freed.</doc>
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">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()
<doc xml:space="preserve">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 `func@PangoCairo.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 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,
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>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the newly allocated #PangoFontMap,
which should be freed with g_object_unref().</doc>
<doc xml:space="preserve">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">Creates a new #PangoCairoFontMap object of the type suitable
<doc xml:space="preserve">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>
In most cases one should simply use [func@PangoCairo.FontMap.new], or
in fact in most of those cases, just use [func@PangoCairo.FontMap.get_default].</doc>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve">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>
`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>
@@ -513,7 +533,9 @@ or in fact in most of those cases, just use
</function>
<function name="glyph_string_path" c:identifier="pango_cairo_glyph_string_path" version="1.10">
<doc xml:space="preserve">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)
cairo context.
The origin of the glyphs (the left edge of the baseline)
will be at the current point of the cairo context.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
@@ -524,19 +546,21 @@ will be at the current point of the cairo context.</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFont from a #PangoCairoFontMap</doc>
<doc xml:space="preserve">a `PangoFont` from a `PangoCairoFontMap`</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
<parameter name="glyphs" transfer-ownership="none">
<doc xml:space="preserve">a #PangoGlyphString</doc>
<doc xml:space="preserve">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">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>
<doc xml:space="preserve">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>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -546,15 +570,17 @@ of the line) will be at the current point of the cairo context.</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="line" transfer-ownership="none">
<doc xml:space="preserve">a #PangoLayoutLine</doc>
<doc xml:space="preserve">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">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>
<doc xml:space="preserve">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>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -569,141 +595,14 @@ will be at the current point of the cairo context.</doc>
</parameter>
</parameters>
</function>
<docsection name="pangocairo">
<doc xml:space="preserve">The &lt;ulink url="http://cairographics.org"&gt;Cairo library&lt;/ulink&gt; is a
vector graphics library with a powerful rendering model. It has such
features as anti-aliased primitives, alpha-compositing, and
gradients. Multiple backends for Cairo are available, to allow
rendering to images, to PDF files, and to the screen on X and on other
windowing systems. The functions in this section allow using Pango
to render to Cairo surfaces.
Using Pango with Cairo is straightforward. A #PangoContext created
with pango_cairo_font_map_create_context() can be used on any
Cairo context (cairo_t), but needs to be updated to match the
current transformation matrix and target surface of the Cairo context
using pango_cairo_update_context(). The convenience functions
pango_cairo_create_layout() and pango_cairo_update_layout() handle
the common case where the program doesn't need to manipulate the
properties of the #PangoContext.
When you get the metrics of a layout or of a piece of a layout using
functions such as pango_layout_get_extents(), the reported metrics
are in user-space coordinates. If a piece of text is 10 units long,
and you call cairo_scale (cr, 2.0), it still is more-or-less 10
units long. However, the results will be affected by hinting
(that is, the process of adjusting the text to look good on the
pixel grid), so you shouldn't assume they are completely independent
of the current transformation matrix. Note that the basic metrics
functions in Pango report results in integer Pango units. To get
to the floating point units used in Cairo divide by %PANGO_SCALE.
## Using Pango with Cairo ## {#rotated-example}
|[&lt;!-- language="C" --&gt;
#include &lt;math.h&gt;
#include &lt;pango/pangocairo.h&gt;
static void
draw_text (cairo_t *cr)
{
#define RADIUS 150
#define N_WORDS 10
#define FONT "Sans Bold 27"
PangoLayout *layout;
PangoFontDescription *desc;
int i;
/&amp;ast; Center coordinates on the middle of the region we are drawing
&amp;ast;/
cairo_translate (cr, RADIUS, RADIUS);
/&amp;ast; Create a PangoLayout, set the font and text &amp;ast;/
layout = pango_cairo_create_layout (cr);
pango_layout_set_text (layout, "Text", -1);
desc = pango_font_description_from_string (FONT);
pango_layout_set_font_description (layout, desc);
pango_font_description_free (desc);
/&amp;ast; Draw the layout N_WORDS times in a circle &amp;ast;/
for (i = 0; i &amp;lt; N_WORDS; i++)
{
int width, height;
double angle = (360. * i) / N_WORDS;
double red;
cairo_save (cr);
/&amp;ast; Gradient from red at angle == 60 to blue at angle == 240 &amp;ast;/
red = (1 + cos ((angle - 60) * G_PI / 180.)) / 2;
cairo_set_source_rgb (cr, red, 0, 1.0 - red);
cairo_rotate (cr, angle * G_PI / 180.);
/&amp;ast; Inform Pango to re-layout the text with the new transformation &amp;ast;/
pango_cairo_update_layout (cr, layout);
pango_layout_get_size (layout, &amp;amp;width, &amp;amp;height);
cairo_move_to (cr, - ((double)width / PANGO_SCALE) / 2, - RADIUS);
pango_cairo_show_layout (cr, layout);
cairo_restore (cr);
}
/&amp;ast; free the layout object &amp;ast;/
g_object_unref (layout);
}
int main (int argc, char **argv)
{
cairo_t *cr;
char *filename;
cairo_status_t status;
cairo_surface_t *surface;
if (argc != 2)
{
g_printerr ("Usage: cairosimple OUTPUT_FILENAME\n");
return 1;
}
filename = argv[1];
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
2 * RADIUS, 2 * RADIUS);
cr = cairo_create (surface);
cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
cairo_paint (cr);
draw_text (cr);
cairo_destroy (cr);
status = cairo_surface_write_to_png (surface, filename);
cairo_surface_destroy (surface);
if (status != CAIRO_STATUS_SUCCESS)
{
g_printerr ("Could not save png to '%s'\n", filename);
return 1;
}
return 0;
}
]|
Once you build and run the example code above, you should see the
following result:
![Output of rotated-example](rotated-text.png)</doc>
</docsection>
<function name="show_error_underline" c:identifier="pango_cairo_show_error_underline" version="1.14">
<doc xml:space="preserve">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
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>
original rectangle.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -732,15 +631,16 @@ original rectangle)</doc>
</function>
<function name="show_glyph_item" c:identifier="pango_cairo_show_glyph_item" version="1.22">
<doc xml:space="preserve">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().
similar to [func@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>
indexed by `glyph_item-&gt;item-&gt;offset`.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -754,13 +654,14 @@ indexed by &lt;literal&gt;@glyph_item-&gt;item-&gt;offset&lt;/literal&gt;.</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="glyph_item" transfer-ownership="none">
<doc xml:space="preserve">a #PangoGlyphItem</doc>
<doc xml:space="preserve">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">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>
<return-value transfer-ownership="none">
@@ -772,18 +673,19 @@ be drawn at the current point of the cairo context.</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFont from a #PangoCairoFontMap</doc>
<doc xml:space="preserve">a `PangoFont` from a `PangoCairoFontMap`</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
<parameter name="glyphs" transfer-ownership="none">
<doc xml:space="preserve">a #PangoGlyphString</doc>
<doc xml:space="preserve">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">Draws a #PangoLayout in the specified cairo context.
The top-left corner of the #PangoLayout will be drawn
<doc xml:space="preserve">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>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
@@ -800,7 +702,8 @@ at the current point of the cairo context.</doc>
</parameters>
</function>
<function name="show_layout_line" c:identifier="pango_cairo_show_layout_line" version="1.10">
<doc xml:space="preserve">Draws a #PangoLayoutLine in the specified cairo context.
<doc xml:space="preserve">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>
<return-value transfer-ownership="none">
@@ -812,17 +715,18 @@ be drawn at the current point of the cairo context.</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="line" transfer-ownership="none">
<doc xml:space="preserve">a #PangoLayoutLine</doc>
<doc xml:space="preserve">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">Updates a #PangoContext previously created for use with Cairo to
<doc xml:space="preserve">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>
context.
If any layouts have been created for the context, it's necessary
to call [method@Pango.Layout.context_changed] on those layouts.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -832,15 +736,15 @@ layouts.</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve">a #PangoContext, from a pangocairo font map</doc>
<doc xml:space="preserve">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">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>
<doc xml:space="preserve">Updates the private `PangoContext` of a `PangoLayout` created with
[func@create_layout] to match the current transformation and target
surface of a Cairo context.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -850,7 +754,7 @@ and target surface of a Cairo context.</doc>
<type name="cairo.Context" c:type="cairo_t*"/>
</parameter>
<parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a #PangoLayout, from pango_cairo_create_layout()</doc>
<doc xml:space="preserve">a `PangoLayout`, from [func@create_layout]</doc>
<type name="Pango.Layout" c:type="PangoLayout*"/>
</parameter>
</parameters>

View File

@@ -15,13 +15,14 @@ and/or use gtk-doc annotations. -->
</parameters>
</function-macro>
<class name="FontMap" c:symbol-prefix="font_map" c:type="PangoFT2FontMap" parent="PangoFc.FontMap" glib:type-name="PangoFT2FontMap" glib:get-type="pango_ft2_font_map_get_type">
<doc xml:space="preserve">The #PangoFT2FontMap is the #PangoFontMap implementation for FreeType fonts.</doc>
<doc xml:space="preserve">The `PangoFT2FontMap` is the `PangoFontMap` implementation for FreeType fonts.</doc>
<constructor name="new" c:identifier="pango_ft2_font_map_new" version="1.2">
<doc xml:space="preserve">Create a new #PangoFT2FontMap object; a fontmap is used
to cache information about available fonts, and holds
certain global parameters such as the resolution and
<doc xml:space="preserve">Create a new `PangoFT2FontMap` object.
A fontmap is used to cache information about available fonts,
and holds certain global parameters such as the resolution and
the default substitute function (see
pango_ft2_font_map_set_default_substitute()).</doc>
[method@PangoFT2.FontMap.set_default_substitute]).</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the newly created fontmap object. Unref
with g_object_unref() when you are finished with it.</doc>
@@ -29,19 +30,21 @@ with g_object_unref() when you are finished with it.</doc>
</return-value>
</constructor>
<function name="for_display" c:identifier="pango_ft2_font_map_for_display" introspectable="0">
<doc xml:space="preserve">Returns a #PangoFT2FontMap. This font map is cached and should
<doc xml:space="preserve">Returns a `PangoFT2FontMap`.
This font map is cached and should
not be freed. If the font map is no longer needed, it can
be released with pango_ft2_shutdown_display(). Use of the
global PangoFT2 fontmap is deprecated; use pango_ft2_font_map_new()
instead.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a #PangoFT2FontMap.</doc>
<doc xml:space="preserve">a `PangoFT2FontMap`.</doc>
<type name="Pango.FontMap" c:type="PangoFontMap*"/>
</return-value>
</function>
<method name="create_context" c:identifier="pango_ft2_font_map_create_context" version="1.2" introspectable="0" deprecated="1" deprecated-version="1.22">
<doc xml:space="preserve">Create a #PangoContext for the given fontmap.</doc>
<doc-deprecated xml:space="preserve">Use pango_font_map_create_context() instead.</doc-deprecated>
<doc xml:space="preserve">Create a `PangoContext` for the given fontmap.</doc>
<doc-deprecated xml:space="preserve">Use [method@Pango.FontMap.create_context] instead.</doc-deprecated>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the newly created context; free with
g_object_unref().</doc>
@@ -49,22 +52,26 @@ instead.</doc>
</return-value>
<parameters>
<instance-parameter name="fontmap" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFT2FontMap</doc>
<doc xml:space="preserve">a `PangoFT2FontMap`</doc>
<type name="FontMap" c:type="PangoFT2FontMap*"/>
</instance-parameter>
</parameters>
</method>
<method name="set_default_substitute" c:identifier="pango_ft2_font_map_set_default_substitute" version="1.2">
<method name="set_default_substitute" c:identifier="pango_ft2_font_map_set_default_substitute" version="1.2" deprecated="1" deprecated-version="1.46">
<doc xml:space="preserve">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
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>
<doc-deprecated xml:space="preserve">Use [method@PangoFc.FontMap.set_default_substitute]
instead.</doc-deprecated>
<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">a #PangoFT2FontMap</doc>
<doc xml:space="preserve">a `PangoFT2FontMap`</doc>
<type name="FontMap" c:type="PangoFT2FontMap*"/>
</instance-parameter>
<parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2">
@@ -89,7 +96,7 @@ hinting and antialiasing options.</doc>
</return-value>
<parameters>
<instance-parameter name="fontmap" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFT2FontMap</doc>
<doc xml:space="preserve">a `PangoFT2FontMap`</doc>
<type name="FontMap" c:type="PangoFT2FontMap*"/>
</instance-parameter>
<parameter name="dpi_x" transfer-ownership="none">
@@ -102,18 +109,21 @@ hinting and antialiasing options.</doc>
</parameter>
</parameters>
</method>
<method name="substitute_changed" c:identifier="pango_ft2_font_map_substitute_changed" version="1.2">
<method name="substitute_changed" c:identifier="pango_ft2_font_map_substitute_changed" version="1.2" deprecated="1" deprecated-version="1.46">
<doc xml:space="preserve">Call this function any time the results of the
default substitution function set with
pango_ft2_font_map_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>
<doc-deprecated xml:space="preserve">Use [method@PangoFc.FontMap.substitute_changed]
instead.</doc-deprecated>
<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">a #PangoFT2FontMap</doc>
<doc xml:space="preserve">a `PangoFT2FontMap`</doc>
<type name="FontMap" c:type="PangoFT2FontMap*"/>
</instance-parameter>
</parameters>
@@ -132,7 +142,7 @@ results for the same input pattern, you must call this function.</doc>
</return-value>
<parameters>
<parameter name="pattern" transfer-ownership="none">
<doc xml:space="preserve">the &lt;type&gt;FcPattern&lt;/type&gt; to tweak.</doc>
<doc xml:space="preserve">the FcPattern to tweak.</doc>
<type name="fontconfig.Pattern" c:type="FcPattern*"/>
</parameter>
<parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
@@ -142,10 +152,11 @@ results for the same input pattern, you must call this function.</doc>
</parameters>
</callback>
<function name="font_get_coverage" c:identifier="pango_ft2_font_get_coverage">
<doc xml:space="preserve">Gets the #PangoCoverage for a `PangoFT2Font`. Use
pango_font_get_coverage() instead.</doc>
<doc xml:space="preserve">Gets the `PangoCoverage` for a `PangoFT2Font`.
Use [method@Pango.Font.get_coverage] instead.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a #PangoCoverage.</doc>
<doc xml:space="preserve">a `PangoCoverage`</doc>
<type name="Pango.Coverage" c:type="PangoCoverage*"/>
</return-value>
<parameters>
@@ -160,20 +171,23 @@ pango_font_get_coverage() instead.</doc>
</parameters>
</function>
<function name="font_get_face" c:identifier="pango_ft2_font_get_face" introspectable="0">
<doc xml:space="preserve">Returns the native FreeType2 `FT_Face` structure used for this #PangoFont.
This may be useful if you want to use FreeType2 functions directly.
<doc xml:space="preserve">Returns the native FreeType2 `FT_Face` structure
used for this `PangoFont`.
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>
This may be useful if you want to use FreeType2
functions directly.
Use [method@PangoFc.Font.lock_face] instead; when you are
done with a face from [method@PangoFc.Font.lock_face], you
must call [method@PangoFc.Font.unlock_face].</doc>
<return-value nullable="1">
<doc xml:space="preserve">a pointer to a `FT_Face` structure, with the
size set correctly, or %NULL if @font is %NULL.</doc>
<doc xml:space="preserve">a pointer to a `FT_Face` structure,
with the size set correctly</doc>
<type name="freetype2.Face" c:type="FT_Face"/>
</return-value>
<parameters>
<parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFont</doc>
<doc xml:space="preserve">a `PangoFont`</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
</parameters>
@@ -183,36 +197,32 @@ pango_fc_font_unlock_face().</doc>
Use pango_fc_font_kern_glyphs() instead.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">The amount of kerning (in Pango units) to apply for
the given combination of glyphs.</doc>
<doc xml:space="preserve">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">a #PangoFont</doc>
<doc xml:space="preserve">a `PangoFont`</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
<parameter name="left" transfer-ownership="none">
<doc xml:space="preserve">the left #PangoGlyph</doc>
<doc xml:space="preserve">the left `PangoGlyph`</doc>
<type name="Pango.Glyph" c:type="PangoGlyph"/>
</parameter>
<parameter name="right" transfer-ownership="none">
<doc xml:space="preserve">the right #PangoGlyph</doc>
<doc xml:space="preserve">the right `PangoGlyph`</doc>
<type name="Pango.Glyph" c:type="PangoGlyph"/>
</parameter>
</parameters>
</function>
<docsection name="freetypefonts">
<doc xml:space="preserve">The macros and functions in this section are used to access fonts and render
text to bitmaps using the FreeType 2 library.</doc>
</docsection>
<function name="get_context" c:identifier="pango_ft2_get_context" introspectable="0" deprecated="1" deprecated-version="1.22">
<doc xml:space="preserve">Retrieves a #PangoContext for the default PangoFT2 fontmap
<doc xml:space="preserve">Retrieves a `PangoContext` for the default PangoFT2 fontmap
(see pango_ft2_font_map_for_display()) and sets the resolution
for the default fontmap to @dpi_x by @dpi_y.</doc>
<doc-deprecated xml:space="preserve">Use pango_font_map_create_context() instead.</doc-deprecated>
<doc-deprecated xml:space="preserve">Use [method@Pango.FontMap.create_context] instead.</doc-deprecated>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the new #PangoContext</doc>
<doc xml:space="preserve">the new `PangoContext`</doc>
<type name="Pango.Context" c:type="PangoContext*"/>
</return-value>
<parameters>
@@ -227,32 +237,26 @@ for the default fontmap to @dpi_x by @dpi_y.</doc>
</parameters>
</function>
<function name="get_unknown_glyph" c:identifier="pango_ft2_get_unknown_glyph">
<doc xml:space="preserve">Return the index of a glyph suitable for drawing unknown characters with
@font, or %PANGO_GLYPH_EMPTY if no suitable glyph found.
<doc xml:space="preserve">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>
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>
<return-value transfer-ownership="none">
<doc xml:space="preserve">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">a #PangoFont</doc>
<doc xml:space="preserve">a `PangoFont`</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
</parameters>
</function>
<docsection name="pangorenderer">
<doc xml:space="preserve">#PangoRenderer is a base class that contains the necessary logic for
rendering a #PangoLayout or #PangoLayoutLine. By subclassing
#PangoRenderer and overriding operations such as @draw_glyphs and
@draw_rectangle, renderers for particular font backends and
destinations can be created.</doc>
</docsection>
<function name="render" c:identifier="pango_ft2_render">
<doc xml:space="preserve">Renders a #PangoGlyphString onto a FreeType2 bitmap.</doc>
<doc xml:space="preserve">Renders a `PangoGlyphString` onto a FreeType2 bitmap.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -280,17 +284,17 @@ destinations can be created.</doc>
</parameters>
</function>
<function name="render_layout" c:identifier="pango_ft2_render_layout">
<doc xml:space="preserve">Render a #PangoLayout onto a FreeType2 bitmap</doc>
<doc xml:space="preserve">Render a `PangoLayout` onto a FreeType2 bitmap</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="bitmap" transfer-ownership="none">
<doc xml:space="preserve">a &lt;type&gt;FT_Bitmap&lt;/type&gt; to render the layout onto</doc>
<doc xml:space="preserve">a FT_Bitmap to render the layout onto</doc>
<type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
</parameter>
<parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a #PangoLayout</doc>
<doc xml:space="preserve">a `PangoLayout`</doc>
<type name="Pango.Layout" c:type="PangoLayout*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
@@ -304,17 +308,17 @@ destinations can be created.</doc>
</parameters>
</function>
<function name="render_layout_line" c:identifier="pango_ft2_render_layout_line">
<doc xml:space="preserve">Render a #PangoLayoutLine onto a FreeType2 bitmap</doc>
<doc xml:space="preserve">Render a `PangoLayoutLine` onto a FreeType2 bitmap</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="bitmap" transfer-ownership="none">
<doc xml:space="preserve">a &lt;type&gt;FT_Bitmap&lt;/type&gt; to render the line onto</doc>
<doc xml:space="preserve">a FT_Bitmap to render the line onto</doc>
<type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
</parameter>
<parameter name="line" transfer-ownership="none">
<doc xml:space="preserve">a #PangoLayoutLine</doc>
<doc xml:space="preserve">a `PangoLayoutLine`</doc>
<type name="Pango.LayoutLine" c:type="PangoLayoutLine*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
@@ -328,21 +332,23 @@ destinations can be created.</doc>
</parameters>
</function>
<function name="render_layout_line_subpixel" c:identifier="pango_ft2_render_layout_line_subpixel" version="1.6">
<doc xml:space="preserve">Render a #PangoLayoutLine onto a FreeType2 bitmap, with he
<doc xml:space="preserve">Render a `PangoLayoutLine` onto a FreeType2 bitmap, with he
location specified in fixed-point Pango units rather than
pixels. (Using this will avoid extra inaccuracies from
rounding to integer pixels multiple times, even if the
final glyph positions are integers.)</doc>
pixels.
(Using this will avoid extra inaccuracies from rounding
to integer pixels multiple times, even if the final glyph
positions are integers.)</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="bitmap" transfer-ownership="none">
<doc xml:space="preserve">a &lt;type&gt;FT_Bitmap&lt;/type&gt; to render the line onto</doc>
<doc xml:space="preserve">a FT_Bitmap to render the line onto</doc>
<type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
</parameter>
<parameter name="line" transfer-ownership="none">
<doc xml:space="preserve">a #PangoLayoutLine</doc>
<doc xml:space="preserve">a `PangoLayoutLine`</doc>
<type name="Pango.LayoutLine" c:type="PangoLayoutLine*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
@@ -356,21 +362,23 @@ final glyph positions are integers.)</doc>
</parameters>
</function>
<function name="render_layout_subpixel" c:identifier="pango_ft2_render_layout_subpixel" version="1.6">
<doc xml:space="preserve">Render a #PangoLayout onto a FreeType2 bitmap, with he
<doc xml:space="preserve">Render a `PangoLayout` onto a FreeType2 bitmap, with he
location specified in fixed-point Pango units rather than
pixels. (Using this will avoid extra inaccuracies from
rounding to integer pixels multiple times, even if the
final glyph positions are integers.)</doc>
pixels.
(Using this will avoid extra inaccuracies from rounding
to integer pixels multiple times, even if the final glyph
positions are integers.)</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="bitmap" transfer-ownership="none">
<doc xml:space="preserve">a &lt;type&gt;FT_Bitmap&lt;/type&gt; to render the layout onto</doc>
<doc xml:space="preserve">a FT_Bitmap to render the layout onto</doc>
<type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
</parameter>
<parameter name="layout" transfer-ownership="none">
<doc xml:space="preserve">a #PangoLayout</doc>
<doc xml:space="preserve">a `PangoLayout`</doc>
<type name="Pango.Layout" c:type="PangoLayout*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
@@ -384,11 +392,13 @@ final glyph positions are integers.)</doc>
</parameters>
</function>
<function name="render_transformed" c:identifier="pango_ft2_render_transformed" version="1.6">
<doc xml:space="preserve">Renders a #PangoGlyphString onto a FreeType2 bitmap, possibly
<doc xml:space="preserve">Renders a `PangoGlyphString` onto a FreeType2 bitmap, possibly
transforming the layed-out coordinates through a transformation
matrix. Note that the transformation matrix for @font is not
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
must have been loaded using a `PangoContext` with an identical
transformation matrix to that passed in to this function.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
@@ -399,8 +409,7 @@ transformation matrix to that passed in to this function.</doc>
<type name="freetype2.Bitmap" c:type="FT_Bitmap*"/>
</parameter>
<parameter name="matrix" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">a #PangoMatrix, or %NULL to use an identity
transformation</doc>
<doc xml:space="preserve">a `PangoMatrix`</doc>
<type name="Pango.Matrix" c:type="const PangoMatrix*"/>
</parameter>
<parameter name="font" transfer-ownership="none">
@@ -413,12 +422,12 @@ transformation matrix to that passed in to this function.</doc>
</parameter>
<parameter name="x" transfer-ownership="none">
<doc xml:space="preserve">the x position of the start of the string (in Pango
units in user space coordinates)</doc>
units in user space coordinates)</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<doc xml:space="preserve">the y position of the baseline (in Pango units
in user space coordinates)</doc>
in user space coordinates)</doc>
<type name="gint" c:type="int"/>
</parameter>
</parameters>

View File

@@ -27,32 +27,44 @@ and/or use gtk-doc annotations. -->
</parameters>
</function-macro>
<class name="Decoder" c:symbol-prefix="decoder" c:type="PangoFcDecoder" version="1.6" parent="GObject.Object" abstract="1" glib:type-name="PangoFcDecoder" glib:get-type="pango_fc_decoder_get_type" glib:type-struct="DecoderClass">
<doc xml:space="preserve">PangoFcDecoder represents a decoder that an application provides
for handling a font that is encoded in a custom way.</doc>
<doc xml:space="preserve">`PangoFcDecoder` is a virtual base class that implementations will
inherit from.
It's the interface that is used to define a custom encoding for a font.
These objects are created in your code from a function callback that was
originally registered with [method@PangoFc.FontMap.add_decoder_find_func].
Pango requires information about the supported charset for a font as well
as the individual character to glyph conversions. Pango gets that
information via the #get_charset and #get_glyph callbacks into your
object implementation.</doc>
<virtual-method name="get_charset" invoker="get_charset" version="1.6">
<doc xml:space="preserve">Generates an #FcCharSet of supported characters for the fcfont
given. The returned #FcCharSet will be a reference to an
internal value stored by the #PangoFcDecoder and must not
<doc xml:space="preserve">Generates an `FcCharSet` of supported characters for the @fcfont
given.
The returned `FcCharSet` will be a reference to an
internal value stored by the `PangoFcDecoder` and must not
be modified or freed.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the #FcCharset for @fcfont; must not
<doc xml:space="preserve">the `FcCharset` for @fcfont; must not
be modified or freed.</doc>
<type name="fontconfig.CharSet" c:type="FcCharSet*"/>
</return-value>
<parameters>
<instance-parameter name="decoder" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcDecoder</doc>
<doc xml:space="preserve">a `PangoFcDecoder`</doc>
<type name="Decoder" c:type="PangoFcDecoder*"/>
</instance-parameter>
<parameter name="fcfont" transfer-ownership="none">
<doc xml:space="preserve">the #PangoFcFont to query.</doc>
<doc xml:space="preserve">the `PangoFcFont` to query.</doc>
<type name="Font" c:type="PangoFcFont*"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="get_glyph" invoker="get_glyph" version="1.6">
<doc xml:space="preserve">Generates a #PangoGlyph for the given Unicode point using the
custom decoder. For complex scripts where there can be multiple
<doc xml:space="preserve">Generates a `PangoGlyph` for the given Unicode point using the
custom decoder.
For complex scripts where there can be multiple
glyphs for a single character, the decoder will return whatever
glyph is most convenient for it. (Usually whatever glyph is directly
in the fonts character map table.)</doc>
@@ -63,43 +75,47 @@ covered by the font.</doc>
</return-value>
<parameters>
<instance-parameter name="decoder" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcDecoder</doc>
<doc xml:space="preserve">a `PangoFcDecoder`</doc>
<type name="Decoder" c:type="PangoFcDecoder*"/>
</instance-parameter>
<parameter name="fcfont" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFont to query.</doc>
<doc xml:space="preserve">a `PangoFcFont` to query.</doc>
<type name="Font" c:type="PangoFcFont*"/>
</parameter>
<parameter name="wc" transfer-ownership="none">
<doc xml:space="preserve">the Unicode code point to convert to a single #PangoGlyph.</doc>
<doc xml:space="preserve">the Unicode code point to convert to a single `PangoGlyph`.</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
</parameters>
</virtual-method>
<method name="get_charset" c:identifier="pango_fc_decoder_get_charset" version="1.6">
<doc xml:space="preserve">Generates an #FcCharSet of supported characters for the fcfont
given. The returned #FcCharSet will be a reference to an
internal value stored by the #PangoFcDecoder and must not
<doc xml:space="preserve">Generates an `FcCharSet` of supported characters for the @fcfont
given.
The returned `FcCharSet` will be a reference to an
internal value stored by the `PangoFcDecoder` and must not
be modified or freed.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the #FcCharset for @fcfont; must not
<doc xml:space="preserve">the `FcCharset` for @fcfont; must not
be modified or freed.</doc>
<type name="fontconfig.CharSet" c:type="FcCharSet*"/>
</return-value>
<parameters>
<instance-parameter name="decoder" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcDecoder</doc>
<doc xml:space="preserve">a `PangoFcDecoder`</doc>
<type name="Decoder" c:type="PangoFcDecoder*"/>
</instance-parameter>
<parameter name="fcfont" transfer-ownership="none">
<doc xml:space="preserve">the #PangoFcFont to query.</doc>
<doc xml:space="preserve">the `PangoFcFont` to query.</doc>
<type name="Font" c:type="PangoFcFont*"/>
</parameter>
</parameters>
</method>
<method name="get_glyph" c:identifier="pango_fc_decoder_get_glyph" version="1.6">
<doc xml:space="preserve">Generates a #PangoGlyph for the given Unicode point using the
custom decoder. For complex scripts where there can be multiple
<doc xml:space="preserve">Generates a `PangoGlyph` for the given Unicode point using the
custom decoder.
For complex scripts where there can be multiple
glyphs for a single character, the decoder will return whatever
glyph is most convenient for it. (Usually whatever glyph is directly
in the fonts character map table.)</doc>
@@ -110,15 +126,15 @@ covered by the font.</doc>
</return-value>
<parameters>
<instance-parameter name="decoder" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcDecoder</doc>
<doc xml:space="preserve">a `PangoFcDecoder`</doc>
<type name="Decoder" c:type="PangoFcDecoder*"/>
</instance-parameter>
<parameter name="fcfont" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFont to query.</doc>
<doc xml:space="preserve">a `PangoFcFont` to query.</doc>
<type name="Font" c:type="PangoFcFont*"/>
</parameter>
<parameter name="wc" transfer-ownership="none">
<doc xml:space="preserve">the Unicode code point to convert to a single #PangoGlyph.</doc>
<doc xml:space="preserve">the Unicode code point to convert to a single `PangoGlyph`.</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
</parameters>
@@ -128,24 +144,24 @@ covered by the font.</doc>
</field>
</class>
<record name="DecoderClass" c:type="PangoFcDecoderClass" glib:is-gtype-struct-for="Decoder" version="1.6">
<doc xml:space="preserve">Class structure for #PangoFcDecoder.</doc>
<doc xml:space="preserve">Class structure for `PangoFcDecoder`.</doc>
<field name="parent_class" readable="0" private="1">
<type name="GObject.ObjectClass" c:type="GObjectClass"/>
</field>
<field name="get_charset">
<callback name="get_charset">
<return-value transfer-ownership="none">
<doc xml:space="preserve">the #FcCharset for @fcfont; must not
<doc xml:space="preserve">the `FcCharset` for @fcfont; must not
be modified or freed.</doc>
<type name="fontconfig.CharSet" c:type="FcCharSet*"/>
</return-value>
<parameters>
<parameter name="decoder" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcDecoder</doc>
<doc xml:space="preserve">a `PangoFcDecoder`</doc>
<type name="Decoder" c:type="PangoFcDecoder*"/>
</parameter>
<parameter name="fcfont" transfer-ownership="none">
<doc xml:space="preserve">the #PangoFcFont to query.</doc>
<doc xml:space="preserve">the `PangoFcFont` to query.</doc>
<type name="Font" c:type="PangoFcFont*"/>
</parameter>
</parameters>
@@ -160,15 +176,15 @@ covered by the font.</doc>
</return-value>
<parameters>
<parameter name="decoder" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcDecoder</doc>
<doc xml:space="preserve">a `PangoFcDecoder`</doc>
<type name="Decoder" c:type="PangoFcDecoder*"/>
</parameter>
<parameter name="fcfont" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFont to query.</doc>
<doc xml:space="preserve">a `PangoFcFont` to query.</doc>
<type name="Font" c:type="PangoFcFont*"/>
</parameter>
<parameter name="wc" transfer-ownership="none">
<doc xml:space="preserve">the Unicode code point to convert to a single #PangoGlyph.</doc>
<doc xml:space="preserve">the Unicode code point to convert to a single `PangoGlyph`.</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
</parameters>
@@ -204,7 +220,7 @@ covered by the font.</doc>
</field>
</record>
<callback name="DecoderFindFunc" c:type="PangoFcDecoderFindFunc" introspectable="0">
<doc xml:space="preserve">Callback function passed to pango_fc_font_map_add_decoder_find_func().</doc>
<doc xml:space="preserve">Callback function passed to [method@PangoFc.FontMap.add_decoder_find_func].</doc>
<return-value>
<doc xml:space="preserve">a new reference to a custom decoder for this pattern,
or %NULL if the default decoder handling should be used.</doc>
@@ -212,11 +228,12 @@ covered by the font.</doc>
</return-value>
<parameters>
<parameter name="pattern" transfer-ownership="none">
<doc xml:space="preserve">a fully resolved #FcPattern specifying the font on the system</doc>
<doc xml:space="preserve">a fully resolved `FcPattern` specifying the font on the system</doc>
<type name="fontconfig.Pattern" c:type="FcPattern*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<doc xml:space="preserve">user data passed to pango_fc_font_map_add_decoder_find_func()</doc>
<doc xml:space="preserve">user data passed to
[method@PangoFc.FontMap.add_decoder_find_func]</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
@@ -228,14 +245,16 @@ covered by the font.</doc>
</parameters>
</function-macro>
<constant name="FONT_FEATURES" value="fontfeatures" c:type="PANGO_FC_FONT_FEATURES" version="1.34">
<doc xml:space="preserve">String representing a fontconfig property name that Pango reads from font
patterns to populate list of OpenType features to be enabled for the font
by default.
<doc xml:space="preserve">Fontconfig property that Pango reads from font
patterns to populate list of OpenType features
to be enabled for the font by default.
The property will have a number of string elements, each of which is the
OpenType feature tag of one feature to enable.
The property will have a number of string elements,
each of which is the OpenType feature tag of one feature
to enable.
This is equivalent to FC_FONT_FEATURES in versions of fontconfig that have that.</doc>
This is equivalent to FC_FONT_FEATURES in versions of
fontconfig that have that.</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<function-macro name="FONT_MAP" c:identifier="PANGO_FC_FONT_MAP" introspectable="0">
@@ -245,35 +264,38 @@ This is equivalent to FC_FONT_FEATURES in versions of fontconfig that have that.
</parameters>
</function-macro>
<constant name="FONT_VARIATIONS" value="fontvariations" c:type="PANGO_FC_FONT_VARIATIONS">
<doc xml:space="preserve">String representing a fontconfig property name that Pango reads from font
patterns to populate list of OpenType font variations to be used for a font.
<doc xml:space="preserve">Fontconfig property that Pango reads from font
patterns to populate list of OpenType font variations
to be used for a font.
The property will have a string elements, each of which a comma-separated
list of OpenType axis setting of the form AXIS=VALUE.</doc>
The property will have a string elements, each of which
a comma-separated list of OpenType axis setting of the
form AXIS=VALUE.</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<class name="Font" c:symbol-prefix="font" c:type="PangoFcFont" parent="Pango.Font" abstract="1" glib:type-name="PangoFcFont" glib:get-type="pango_fc_font_get_type" glib:type-struct="FontClass">
<doc xml:space="preserve">#PangoFcFont is a base class for font implementation using the
Fontconfig and FreeType libraries. It is used in the
&lt;link linkend="pango-Xft-Fonts-and-Rendering"&gt;Xft&lt;/link&gt; and
&lt;link linkend="pango-FreeType-Fonts-and-Rendering"&gt;FreeType&lt;/link&gt;
backends shipped with Pango, but can also be used when creating
new backends. Any backend deriving from this base class will
take advantage of the wide range of shapers implemented using
FreeType that come with Pango.</doc>
<doc xml:space="preserve">`PangoFcFont` is a base class for font implementations
using the Fontconfig and FreeType libraries.
It is used in onjunction with [class@PangoFc.FontMap].
When deriving from this class, you need to implement all
of its virtual functions other than shutdown() along with
the get_glyph_extents() virtual function from `PangoFont`.</doc>
<function name="description_from_pattern" c:identifier="pango_fc_font_description_from_pattern" version="1.4">
<doc xml:space="preserve">Creates a #PangoFontDescription that matches the specified
Fontconfig pattern as closely as possible. Many possible Fontconfig
pattern values, such as %FC_RASTERIZER or %FC_DPI, don't make sense in
the context of #PangoFontDescription, so will be ignored.</doc>
<doc xml:space="preserve">Creates a `PangoFontDescription` that matches the specified
Fontconfig pattern as closely as possible.
Many possible Fontconfig pattern values, such as %FC_RASTERIZER
or %FC_DPI, don't make sense in the context of `PangoFontDescription`,
so will be ignored.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new #PangoFontDescription. Free with
pango_font_description_free().</doc>
<doc xml:space="preserve">a new `PangoFontDescription`. Free with
pango_font_description_free().</doc>
<type name="Pango.FontDescription" c:type="PangoFontDescription*"/>
</return-value>
<parameters>
<parameter name="pattern" transfer-ownership="none">
<doc xml:space="preserve">a #FcPattern</doc>
<doc xml:space="preserve">a `FcPattern`</doc>
<type name="fontconfig.Pattern" c:type="FcPattern*"/>
</parameter>
<parameter name="include_size" transfer-ownership="none">
@@ -286,8 +308,10 @@ the context of #PangoFontDescription, so will be ignored.</doc>
</function>
<method name="get_glyph" c:identifier="pango_fc_font_get_glyph" version="1.4">
<doc xml:space="preserve">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_fc_font_has_char().</doc>
for @font.
If you only want to determine whether the font has
the glyph, use [method@PangoFc.Font.has_char].</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">the glyph index, or 0, if the Unicode
character doesn't exist in the font.</doc>
@@ -295,7 +319,7 @@ whether the font has the glyph, use pango_fc_font_has_char().</doc>
</return-value>
<parameters>
<instance-parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFont</doc>
<doc xml:space="preserve">a `PangoFcFont`</doc>
<type name="Font" c:type="PangoFcFont*"/>
</instance-parameter>
<parameter name="wc" transfer-ownership="none">
@@ -304,9 +328,41 @@ whether the font has the glyph, use pango_fc_font_has_char().</doc>
</parameter>
</parameters>
</method>
<method name="get_languages" c:identifier="pango_fc_font_get_languages" version="1.48">
<doc xml:space="preserve">Returns the languages that are supported by @font.
This corresponds to the FC_LANG member of the FcPattern.
The returned array is only valid as long as the font
and its fontmap are valid.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">a %NULL-terminated
array of `PangoLanguage`*</doc>
<type name="Pango.Language" c:type="PangoLanguage**"/>
</return-value>
<parameters>
<instance-parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a `PangoFcFont`</doc>
<type name="Font" c:type="PangoFcFont*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_pattern" c:identifier="pango_fc_font_get_pattern" version="1.48" introspectable="0">
<doc xml:space="preserve">Returns the FcPattern that @font is based on.</doc>
<return-value>
<doc xml:space="preserve">the fontconfig pattern for this font</doc>
<type name="fontconfig.Pattern" c:type="FcPattern*"/>
</return-value>
<parameters>
<instance-parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a `PangoFcFont`</doc>
<type name="Font" c:type="PangoFcFont*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_unknown_glyph" c:identifier="pango_fc_font_get_unknown_glyph" version="1.4">
<doc xml:space="preserve">Returns the index of a glyph suitable for drawing @wc as an
unknown character.
<doc xml:space="preserve">Returns the index of a glyph suitable for drawing @wc
as an unknown character.
Use PANGO_GET_UNKNOWN_GLYPH() instead.</doc>
<return-value transfer-ownership="none">
@@ -315,7 +371,7 @@ Use PANGO_GET_UNKNOWN_GLYPH() instead.</doc>
</return-value>
<parameters>
<instance-parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFont</doc>
<doc xml:space="preserve">a `PangoFcFont`</doc>
<type name="Font" c:type="PangoFcFont*"/>
</instance-parameter>
<parameter name="wc" transfer-ownership="none">
@@ -326,14 +382,14 @@ Use PANGO_GET_UNKNOWN_GLYPH() instead.</doc>
</method>
<method name="has_char" c:identifier="pango_fc_font_has_char" version="1.4" deprecated="1" deprecated-version="1.44">
<doc xml:space="preserve">Determines whether @font has a glyph for the codepoint @wc.</doc>
<doc-deprecated xml:space="preserve">Use pango_font_has_char()</doc-deprecated>
<doc-deprecated xml:space="preserve">Use [method@Pango.Font.has_char]</doc-deprecated>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if @font has the requested codepoint.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFont</doc>
<doc xml:space="preserve">a `PangoFcFont`</doc>
<type name="Font" c:type="PangoFcFont*"/>
</instance-parameter>
<parameter name="wc" transfer-ownership="none">
@@ -352,19 +408,20 @@ Since 1.44, it does nothing.</doc>
</return-value>
<parameters>
<instance-parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFont</doc>
<doc xml:space="preserve">a `PangoFcFont`</doc>
<type name="Font" c:type="PangoFcFont*"/>
</instance-parameter>
<parameter name="glyphs" transfer-ownership="none">
<doc xml:space="preserve">a #PangoGlyphString</doc>
<doc xml:space="preserve">a `PangoGlyphString`</doc>
<type name="Pango.GlyphString" c:type="PangoGlyphString*"/>
</parameter>
</parameters>
</method>
<method name="lock_face" c:identifier="pango_fc_font_lock_face" version="1.4" introspectable="0" deprecated="1" deprecated-version="1.44">
<doc xml:space="preserve">Gets the FreeType `FT_Face` associated with a font,
<doc xml:space="preserve">Gets the FreeType `FT_Face` associated with a font.
This face will be kept around until you call
pango_fc_font_unlock_face().</doc>
[method@PangoFc.Font.unlock_face].</doc>
<doc-deprecated xml:space="preserve">Use pango_font_get_hb_font() instead</doc-deprecated>
<return-value>
<doc xml:space="preserve">the FreeType `FT_Face` associated with @font.</doc>
@@ -372,29 +429,31 @@ pango_fc_font_unlock_face().</doc>
</return-value>
<parameters>
<instance-parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFont.</doc>
<doc xml:space="preserve">a `PangoFcFont`.</doc>
<type name="Font" c:type="PangoFcFont*"/>
</instance-parameter>
</parameters>
</method>
<method name="unlock_face" c:identifier="pango_fc_font_unlock_face" version="1.4" deprecated="1" deprecated-version="1.44">
<doc xml:space="preserve">Releases a font previously obtained with
pango_fc_font_lock_face().</doc>
[method@PangoFc.Font.lock_face].</doc>
<doc-deprecated xml:space="preserve">Use pango_font_get_hb_font() instead</doc-deprecated>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFont.</doc>
<doc xml:space="preserve">a `PangoFcFont`.</doc>
<type name="Font" c:type="PangoFcFont*"/>
</instance-parameter>
</parameters>
</method>
<property name="fontmap" writable="1" transfer-ownership="none">
<doc xml:space="preserve">The PangoFc font map this font is associated with.</doc>
<type name="FontMap"/>
</property>
<property name="pattern" writable="1" construct-only="1" transfer-ownership="none">
<doc xml:space="preserve">The fontconfig pattern for this font.</doc>
<type name="gpointer" c:type="gpointer"/>
</property>
<field name="parent_instance">
@@ -429,31 +488,31 @@ pango_fc_font_lock_face().</doc>
</class>
<record name="FontClass" c:type="PangoFcFontClass" disguised="1" glib:is-gtype-struct-for="Font"/>
<class name="FontMap" c:symbol-prefix="font_map" c:type="PangoFcFontMap" parent="Pango.FontMap" abstract="1" glib:type-name="PangoFcFontMap" glib:get-type="pango_fc_font_map_get_type" glib:type-struct="FontMapClass">
<doc xml:space="preserve">PangoFcFontMap is a base class for font map implementations using the
Fontconfig and FreeType libraries. It is used in the
&lt;link linkend="pango-Xft-Fonts-and-Rendering"&gt;Xft&lt;/link&gt; and
&lt;link linkend="pango-FreeType-Fonts-and-Rendering"&gt;FreeType&lt;/link&gt;
backends shipped with Pango, but can also be used when creating
new backends. Any backend deriving from this base class will
take advantage of the wide range of shapers implemented using
FreeType that come with Pango.</doc>
<doc xml:space="preserve">`PangoFcFontMap` is a base class for font map implementations using the
Fontconfig and FreeType libraries.
It is used in the Xft and FreeType backends shipped with Pango,
but can also be used when creating new backends. Any backend
deriving from this base class will take advantage of the wide
range of shapers implemented using FreeType that come with Pango.</doc>
<method name="add_decoder_find_func" c:identifier="pango_fc_font_map_add_decoder_find_func" version="1.6" introspectable="0">
<doc xml:space="preserve">This function saves a callback method in the #PangoFcFontMap that
will be called whenever new fonts are created. If the
function returns a #PangoFcDecoder, that decoder will be used to
determine both coverage via a #FcCharSet and a one-to-one mapping of
characters to glyphs. This will allow applications to have
<doc xml:space="preserve">This function saves a callback method in the `PangoFcFontMap` that
will be called whenever new fonts are created.
If the function returns a `PangoFcDecoder`, that decoder will be used
to determine both coverage via a `FcCharSet` and a one-to-one mapping
of characters to glyphs. This will allow applications to have
application-specific encodings for various fonts.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="fcfontmap" transfer-ownership="none">
<doc xml:space="preserve">The #PangoFcFontMap to add this method to.</doc>
<doc xml:space="preserve">The `PangoFcFontMap` to add this method to.</doc>
<type name="FontMap" c:type="PangoFcFontMap*"/>
</instance-parameter>
<parameter name="findfunc" transfer-ownership="none" scope="notified" closure="1" destroy="2">
<doc xml:space="preserve">The #PangoFcDecoderFindFunc callback function</doc>
<doc xml:space="preserve">The `PangoFcDecoderFindFunc` callback function</doc>
<type name="DecoderFindFunc" c:type="PangoFcDecoderFindFunc"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
@@ -461,15 +520,16 @@ application-specific encodings for various fonts.</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="dnotify" transfer-ownership="none" scope="async">
<doc xml:space="preserve">A #GDestroyNotify callback that will be called when the
fontmap is finalized and the decoder is released.</doc>
<doc xml:space="preserve">A `GDestroyNotify` callback that will be called when the
fontmap is finalized and the decoder is released.</doc>
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</parameter>
</parameters>
</method>
<method name="cache_clear" c:identifier="pango_fc_font_map_cache_clear" version="1.4">
<doc xml:space="preserve">Clear all cached information and fontsets for this font map;
this should be called whenever there is a change in the
<doc xml:space="preserve">Clear all cached information and fontsets for this font map.
This should be called whenever there is a change in the
output of the default_substitute() virtual function of the
font map, or if fontconfig has been reinitialized to new
configuration.</doc>
@@ -478,59 +538,64 @@ configuration.</doc>
</return-value>
<parameters>
<instance-parameter name="fcfontmap" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFontMap</doc>
<doc xml:space="preserve">a `PangoFcFontMap`</doc>
<type name="FontMap" c:type="PangoFcFontMap*"/>
</instance-parameter>
</parameters>
</method>
<method name="config_changed" c:identifier="pango_fc_font_map_config_changed" version="1.38">
<doc xml:space="preserve">Informs font map that the fontconfig configuration (ie, FcConfig object)
used by this font map has changed. This currently calls
pango_fc_font_map_cache_clear() which ensures that list of fonts, etc
will be regenerated using the updated configuration.</doc>
<doc xml:space="preserve">Informs font map that the fontconfig configuration (i.e., FcConfig
object) used by this font map has changed.
This currently calls [method@PangoFc.FontMap.cache_clear] which
ensures that list of fonts, etc will be regenerated using the
updated configuration.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="fcfontmap" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFontMap</doc>
<doc xml:space="preserve">a `PangoFcFontMap`</doc>
<type name="FontMap" c:type="PangoFcFontMap*"/>
</instance-parameter>
</parameters>
</method>
<method name="create_context" c:identifier="pango_fc_font_map_create_context" version="1.4" deprecated="1" deprecated-version="1.22">
<doc xml:space="preserve">Creates a new context for this fontmap. This function is intended
only for backend implementations deriving from #PangoFcFontMap;
it is possible that a backend will store additional information
needed for correct operation on the #PangoContext after calling
this function.</doc>
<doc xml:space="preserve">Creates a new context for this fontmap.
This function is intended only for backend implementations deriving
from `PangoFcFontMap`; it is possible that a backend will store
additional information needed for correct operation on the `PangoContext`
after calling this function.</doc>
<doc-deprecated xml:space="preserve">Use pango_font_map_create_context() instead.</doc-deprecated>
<return-value transfer-ownership="full">
<doc xml:space="preserve">a new #PangoContext</doc>
<doc xml:space="preserve">a new `PangoContext`</doc>
<type name="Pango.Context" c:type="PangoContext*"/>
</return-value>
<parameters>
<instance-parameter name="fcfontmap" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFontMap</doc>
<doc xml:space="preserve">a `PangoFcFontMap`</doc>
<type name="FontMap" c:type="PangoFcFontMap*"/>
</instance-parameter>
</parameters>
</method>
<method name="find_decoder" c:identifier="pango_fc_font_map_find_decoder" version="1.26">
<doc xml:space="preserve">Finds the decoder to use for @pattern. Decoders can be added to
a font map using pango_fc_font_map_add_decoder_find_func().</doc>
<doc xml:space="preserve">Finds the decoder to use for @pattern.
Decoders can be added to a font map using
[method@PangoFc.FontMap.add_decoder_find_func].</doc>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve">a newly created #PangoFcDecoder
<doc xml:space="preserve">a newly created `PangoFcDecoder`
object or %NULL if no decoder is set for @pattern.</doc>
<type name="Decoder" c:type="PangoFcDecoder*"/>
</return-value>
<parameters>
<instance-parameter name="fcfontmap" transfer-ownership="none">
<doc xml:space="preserve">The #PangoFcFontMap to use.</doc>
<doc xml:space="preserve">The `PangoFcFontMap` to use.</doc>
<type name="FontMap" c:type="PangoFcFontMap*"/>
</instance-parameter>
<parameter name="pattern" transfer-ownership="none">
<doc xml:space="preserve">The #FcPattern to find the decoder for.</doc>
<doc xml:space="preserve">The `FcPattern` to find the decoder for.</doc>
<type name="fontconfig.Pattern" c:type="FcPattern*"/>
</parameter>
</parameters>
@@ -538,78 +603,131 @@ a font map using pango_fc_font_map_add_decoder_find_func().</doc>
<method name="get_config" c:identifier="pango_fc_font_map_get_config" version="1.38" introspectable="0">
<doc xml:space="preserve">Fetches the `FcConfig` attached to a font map.
See also: pango_fc_font_map_set_config()</doc>
See also: [method@PangoFc.FontMap.set_config].</doc>
<return-value nullable="1">
<doc xml:space="preserve">the `FcConfig` object attached to @fcfontmap, which
might be %NULL.</doc>
<doc xml:space="preserve">the `FcConfig` object attached to
@fcfontmap, which might be %NULL. The return value is
owned by Pango and should not be freed.</doc>
<type c:type="FcConfig*"/>
</return-value>
<parameters>
<instance-parameter name="fcfontmap" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFontMap</doc>
<doc xml:space="preserve">a `PangoFcFontMap`</doc>
<type name="FontMap" c:type="PangoFcFontMap*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_hb_face" c:identifier="pango_fc_font_map_get_hb_face" version="1.44" introspectable="0">
<doc xml:space="preserve">Retrieves the `hb_face_t` for the given #PangoFcFont.</doc>
<doc xml:space="preserve">Retrieves the `hb_face_t` for the given `PangoFcFont`.</doc>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve">the `hb_face_t` for the given Pango font</doc>
<doc xml:space="preserve">the `hb_face_t`
for the given font</doc>
<type name="HarfBuzz.face_t" c:type="hb_face_t*"/>
</return-value>
<parameters>
<instance-parameter name="fcfontmap" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFontMap</doc>
<doc xml:space="preserve">a `PangoFcFontMap`</doc>
<type name="FontMap" c:type="PangoFcFontMap*"/>
</instance-parameter>
<parameter name="fcfont" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFont</doc>
<doc xml:space="preserve">a `PangoFcFont`</doc>
<type name="Font" c:type="PangoFcFont*"/>
</parameter>
</parameters>
</method>
<method name="set_config" c:identifier="pango_fc_font_map_set_config" version="1.38" introspectable="0">
<doc xml:space="preserve">Set the FcConfig for this font map to use. The default value
<doc xml:space="preserve">Set the `FcConfig` for this font map to use.
The default value
is %NULL, which causes Fontconfig to use its global "current config".
You can create a new FcConfig object and use this API to attach it
You can create a new `FcConfig` object and use this API to attach it
to a font map.
This is particularly useful for example, if you want to use application
fonts with Pango. For that, you would create a fresh FcConfig, add your
fonts with Pango. For that, you would create a fresh `FcConfig`, add your
app fonts to it, and attach it to a new Pango font map.
If @fcconfig is different from the previous config attached to the font map,
pango_fc_font_map_config_changed() is called.
[method@PangoFc.FontMap.config_changed] is called.
This function acquires a reference to the FcConfig object; the caller
does NOT need to retain a reference.</doc>
This function acquires a reference to the `FcConfig` object; the caller
does **not** need to retain a reference.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="fcfontmap" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFontMap</doc>
<doc xml:space="preserve">a `PangoFcFontMap`</doc>
<type name="FontMap" c:type="PangoFcFontMap*"/>
</instance-parameter>
<parameter name="fcconfig" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">a `FcConfig`, or %NULL</doc>
<doc xml:space="preserve">a `FcConfig`</doc>
<type c:type="FcConfig*"/>
</parameter>
</parameters>
</method>
<method name="set_default_substitute" c:identifier="pango_fc_font_map_set_default_substitute" version="1.48">
<doc xml:space="preserve">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>
<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">a `PangoFcFontMap`</doc>
<type name="FontMap" c:type="PangoFcFontMap*"/>
</instance-parameter>
<parameter name="func" transfer-ownership="none" scope="notified" closure="1" destroy="2">
<doc xml:space="preserve">function to call to to do final config tweaking on `FcPattern` objects</doc>
<type name="SubstituteFunc" c:type="PangoFcSubstituteFunc"/>
</parameter>
<parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">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">function to call when @data is no longer used</doc>
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</parameter>
</parameters>
</method>
<method name="shutdown" c:identifier="pango_fc_font_map_shutdown" version="1.4">
<doc xml:space="preserve">Clears all cached information for the fontmap and marks
all fonts open for the fontmap as dead. (See the shutdown()
virtual function of #PangoFcFont.) This function might be used
by a backend when the underlying windowing system for the font
map exits. This function is only intended to be called
only for backend implementations deriving from #PangoFcFontMap.</doc>
all fonts open for the fontmap as dead.
See the shutdown() virtual function of `PangoFcFont`.
This function might be used by a backend when the underlying
windowing system for the font map exits. This function is only
intended to be called only for backend implementations deriving
from `PangoFcFontMap`.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="fcfontmap" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFcFontMap</doc>
<doc xml:space="preserve">a `PangoFcFontMap`</doc>
<type name="FontMap" c:type="PangoFcFontMap*"/>
</instance-parameter>
</parameters>
</method>
<method name="substitute_changed" c:identifier="pango_fc_font_map_substitute_changed" version="1.48">
<doc xml:space="preserve">Call this function any time the results of the default
substitution function set with
[method@PangoFc.FontMap.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>
<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">a `PangoFcFontMap`</doc>
<type name="FontMap" c:type="PangoFcFontMap*"/>
</instance-parameter>
</parameters>
@@ -618,13 +736,15 @@ only for backend implementations deriving from #PangoFcFontMap.</doc>
<record name="FontMapClass" c:type="PangoFcFontMapClass" disguised="1" glib:is-gtype-struct-for="FontMap"/>
<record name="FontMapPrivate" c:type="PangoFcFontMapPrivate" disguised="1"/>
<constant name="GRAVITY" value="pangogravity" c:type="PANGO_FC_GRAVITY" version="1.20">
<doc xml:space="preserve">String representing a fontconfig property name that Pango sets on any
fontconfig pattern it passes to fontconfig if a #PangoGravity other
than %PANGO_GRAVITY_SOUTH is desired.
<doc xml:space="preserve">Fontconfig property that Pango sets on any
fontconfig pattern it passes to fontconfig
if a `PangoGravity` other than %PANGO_GRAVITY_SOUTH
is desired.
The property will have a #PangoGravity value as a string, like "east".
This can be used to write fontconfig configuration rules to choose
different fonts for horizontal and vertical writing directions.</doc>
The property will have a `PangoGravity` value as a string,
like "east". This can be used to write fontconfig configuration
rules to choose different fonts for horizontal and vertical
writing directions.</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<function-macro name="IS_DECODER" c:identifier="PANGO_FC_IS_DECODER" introspectable="0">
@@ -652,25 +772,42 @@ different fonts for horizontal and vertical writing directions.</doc>
</parameters>
</function-macro>
<constant name="PRGNAME" value="prgname" c:type="PANGO_FC_PRGNAME" version="1.24">
<doc xml:space="preserve">String representing a fontconfig property name that Pango sets on any
<doc xml:space="preserve">Fontconfig property that Pango sets on any
fontconfig pattern it passes to fontconfig.
The property will have a string equal to what
g_get_prgname() returns.
This can be used to write fontconfig configuration rules that only affect
g_get_prgname() returns. This can be used to write
fontconfig configuration rules that only affect
certain applications.
This is equivalent to FC_PRGNAME in versions of fontconfig that have that.</doc>
This is equivalent to FC_PRGNAME in versions of
fontconfig that have that.</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<callback name="SubstituteFunc" c:type="PangoFcSubstituteFunc">
<doc xml:space="preserve">Function type for doing final config tweaking on prepared `FcPattern`s.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="pattern" transfer-ownership="none">
<doc xml:space="preserve">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">user data.</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<constant name="VERSION" value="pangoversion" c:type="PANGO_FC_VERSION" version="1.20">
<doc xml:space="preserve">String representing a fontconfig property name that Pango sets on any
<doc xml:space="preserve">Fontconfig property that Pango sets on any
fontconfig pattern it passes to fontconfig.
The property will have an integer value equal to what
pango_version() returns.
This can be used to write fontconfig configuration rules that only affect
certain pango versions (or only pango-using applications, or only
[func@Pango.version] returns. This can be used to write
fontconfig configuration rules that only affect certain
pango versions (or only pango-using applications, or only
non-pango-using applications).</doc>
<type name="utf8" c:type="gchar*"/>
</constant>

File diff suppressed because it is too large Load Diff

View File

@@ -25,18 +25,17 @@ and/or use gtk-doc annotations. -->
</parameters>
</function-macro>
<class name="Font" c:symbol-prefix="font" c:type="PangoXftFont" parent="PangoFc.Font" glib:type-name="PangoXftFont" glib:get-type="pango_xft_font_get_type">
<doc xml:space="preserve">#PangoXftFont is an implementation of #PangoFcFont using the Xft
library for rendering. It is used in conjunction with #PangoXftFontMap.</doc>
<doc xml:space="preserve">`PangoXftFont` is an implementation of `PangoFcFont` using the Xft
library for rendering. It is used in conjunction with `PangoXftFontMap`.</doc>
<function name="get_font" c:identifier="pango_xft_font_get_font" introspectable="0">
<doc xml:space="preserve">Returns the `XftFont` of a font.</doc>
<return-value nullable="1">
<doc xml:space="preserve">the `XftFont` associated to @font,
or %NULL if @font is %NULL.</doc>
<doc xml:space="preserve">the `XftFont` associated to @font</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">a #PangoFont.</doc>
<doc xml:space="preserve">a `PangoFont`</doc>
<type name="Pango.Font" c:type="PangoFont*"/>
</parameter>
</parameters>
@@ -49,15 +48,17 @@ library for rendering. It is used in conjunction with #PangoXftFontMap.</doc>
</return-value>
<parameters>
<instance-parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFont.</doc>
<doc xml:space="preserve">a `PangoFont`</doc>
<type name="Font" c:type="PangoFont*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_glyph" c:identifier="pango_xft_font_get_glyph" version="1.2">
<doc xml:space="preserve">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().
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>
<return-value transfer-ownership="none">
@@ -67,7 +68,7 @@ Use pango_fc_font_get_glyph() instead.</doc>
</return-value>
<parameters>
<instance-parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFont for the Xft backend</doc>
<doc xml:space="preserve">a `PangoFont` for the Xft backend</doc>
<type name="Font" c:type="PangoFont*"/>
</instance-parameter>
<parameter name="wc" transfer-ownership="none">
@@ -87,7 +88,7 @@ Use PANGO_GET_UNKNOWN_GLYPH() instead.</doc>
</return-value>
<parameters>
<instance-parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFont.</doc>
<doc xml:space="preserve">a `PangoFont`</doc>
<type name="Font" c:type="PangoFont*"/>
</instance-parameter>
<parameter name="wc" transfer-ownership="none">
@@ -106,7 +107,7 @@ Use pango_fc_font_has_char() instead.</doc>
</return-value>
<parameters>
<instance-parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFont for the Xft backend</doc>
<doc xml:space="preserve">a `PangoFont` for the Xft backend</doc>
<type name="Font" c:type="PangoFont*"/>
</instance-parameter>
<parameter name="wc" transfer-ownership="none">
@@ -127,7 +128,7 @@ Use pango_fc_font_lock_face() instead.</doc>
</return-value>
<parameters>
<instance-parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFont.</doc>
<doc xml:space="preserve">a `PangoFont`</doc>
<type name="Font" c:type="PangoFont*"/>
</instance-parameter>
</parameters>
@@ -142,16 +143,16 @@ Use pango_fc_font_unlock_face() instead.</doc>
</return-value>
<parameters>
<instance-parameter name="font" transfer-ownership="none">
<doc xml:space="preserve">a #PangoFont.</doc>
<doc xml:space="preserve">a `PangoFont`</doc>
<type name="Font" c:type="PangoFont*"/>
</instance-parameter>
</parameters>
</method>
</class>
<class name="FontMap" c:symbol-prefix="font_map" c:type="PangoXftFontMap" parent="PangoFc.FontMap" glib:type-name="PangoXftFontMap" glib:get-type="pango_xft_font_map_get_type">
<doc xml:space="preserve">#PangoXftFontMap is an implementation of #PangoFcFontMap suitable for
<doc xml:space="preserve">`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>
type `PangoXftFont`.</doc>
</class>
<function-macro name="IS_FONT" c:identifier="PANGO_XFT_IS_FONT" introspectable="0">
<parameters>
@@ -196,17 +197,18 @@ type #PangoXftFont.</doc>
</parameters>
</function-macro>
<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">#PangoXftRenderer is a subclass of #PangoRenderer used for rendering
<doc xml:space="preserve">`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>
<constructor name="new" c:identifier="pango_xft_renderer_new" version="1.8">
<doc xml:space="preserve">Create a new #PangoXftRenderer to allow rendering Pango objects
with the Xft library. You must call pango_xft_renderer_set_draw() before
<doc xml:space="preserve">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>
<return-value transfer-ownership="full">
<doc xml:space="preserve">the newly created #PangoXftRenderer, which should
be freed with g_object_unref().</doc>
<doc xml:space="preserve">the newly created `PangoXftRenderer`</doc>
<type name="Pango.Renderer" c:type="PangoRenderer*"/>
</return-value>
<parameters>
@@ -259,13 +261,13 @@ using the renderer.</doc>
</parameters>
</virtual-method>
<method name="set_default_color" c:identifier="pango_xft_renderer_set_default_color" version="1.8">
<doc xml:space="preserve">Sets the default foreground color for a #XftRenderer.</doc>
<doc xml:space="preserve">Sets the default foreground color for a XftRenderer.</doc>
<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">a #XftRenderer</doc>
<doc xml:space="preserve">a XftRenderer</doc>
<type name="Renderer" c:type="PangoXftRenderer*"/>
</instance-parameter>
<parameter name="default_color" transfer-ownership="none">
@@ -275,18 +277,18 @@ using the renderer.</doc>
</parameters>
</method>
<method name="set_draw" c:identifier="pango_xft_renderer_set_draw" version="1.8">
<doc xml:space="preserve">Sets the #XftDraw object that the renderer is drawing to.
<doc xml:space="preserve">Sets the XftDraw object that the renderer is drawing to.
The renderer must not be currently active.</doc>
<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">a #PangoXftRenderer</doc>
<doc xml:space="preserve">a `PangoXftRenderer`</doc>
<type name="Renderer" c:type="PangoXftRenderer*"/>
</instance-parameter>
<parameter name="draw" transfer-ownership="none">
<doc xml:space="preserve">a #XftDraw</doc>
<doc xml:space="preserve">a XftDraw</doc>
<type name="xft.Draw" c:type="XftDraw*"/>
</parameter>
</parameters>
@@ -314,7 +316,7 @@ The renderer must not be currently active.</doc>
</field>
</class>
<record name="RendererClass" c:type="PangoXftRendererClass" glib:is-gtype-struct-for="Renderer" version="1.8">
<doc xml:space="preserve">The class structure for #PangoXftRenderer</doc>
<doc xml:space="preserve">The class structure for `PangoXftRenderer`</doc>
<field name="parent_class" readable="0" private="1">
<type name="Pango.RendererClass" c:type="PangoRendererClass"/>
</field>
@@ -379,12 +381,12 @@ The renderer must not be currently active.</doc>
</parameters>
</callback>
<function name="get_context" c:identifier="pango_xft_get_context" introspectable="0" deprecated="1" deprecated-version="1.22">
<doc xml:space="preserve">Retrieves a #PangoContext appropriate for rendering with
<doc xml:space="preserve">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>
<return-value>
<doc xml:space="preserve">the new #PangoContext.</doc>
<doc xml:space="preserve">the new `PangoContext`.</doc>
<type name="Pango.Context" c:type="PangoContext*"/>
</return-value>
<parameters>
@@ -399,11 +401,11 @@ pango_font_map_create_context() instead.</doc-deprecated>
</parameters>
</function>
<function name="get_font_map" c:identifier="pango_xft_get_font_map" version="1.2">
<doc xml:space="preserve">Returns the #PangoXftFontMap for the given display and screen.
<doc xml:space="preserve">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>
<return-value transfer-ownership="none">
<doc xml:space="preserve">a #PangoFontMap object, owned by Pango.</doc>
<doc xml:space="preserve">a `PangoFontMap` object, owned by Pango.</doc>
<type name="Pango.FontMap" c:type="PangoFontMap*"/>
</return-value>
<parameters>
@@ -418,7 +420,7 @@ the display is closed.</doc>
</parameters>
</function>
<function name="picture_render" c:identifier="pango_xft_picture_render">
<doc xml:space="preserve">Renders a #PangoGlyphString onto an Xrender &lt;type&gt;Picture&lt;/type&gt; object.</doc>
<doc xml:space="preserve">Renders a `PangoGlyphString` onto an Xrender Picture object.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -454,13 +456,13 @@ the display is closed.</doc>
</parameters>
</function>
<function name="render" c:identifier="pango_xft_render">
<doc xml:space="preserve">Renders a #PangoGlyphString onto an &lt;type&gt;XftDraw&lt;/type&gt; object wrapping an X drawable.</doc>
<doc xml:space="preserve">Renders a `PangoGlyphString` onto an XftDraw object wrapping an X drawable.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="draw" transfer-ownership="none">
<doc xml:space="preserve">the &lt;type&gt;XftDraw&lt;/type&gt; object.</doc>
<doc xml:space="preserve">the XftDraw object.</doc>
<type name="xft.Draw" c:type="XftDraw*"/>
</parameter>
<parameter name="color" transfer-ownership="none">
@@ -486,22 +488,22 @@ the display is closed.</doc>
</parameters>
</function>
<function name="render_layout" c:identifier="pango_xft_render_layout" version="1.8">
<doc xml:space="preserve">Render a #PangoLayout onto a #XftDraw</doc>
<doc xml:space="preserve">Render a `PangoLayout` onto a XftDraw</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="draw" transfer-ownership="none">
<doc xml:space="preserve">an #XftDraw</doc>
<doc xml:space="preserve">an XftDraw</doc>
<type name="xft.Draw" c:type="XftDraw*"/>
</parameter>
<parameter name="color" transfer-ownership="none">
<doc xml:space="preserve">the foreground color in which to draw the layout
(may be overridden by color attributes)</doc>
(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">a #PangoLayout</doc>
<doc xml:space="preserve">a `PangoLayout`</doc>
<type name="Pango.Layout" c:type="PangoLayout*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
@@ -515,22 +517,22 @@ the display is closed.</doc>
</parameters>
</function>
<function name="render_layout_line" c:identifier="pango_xft_render_layout_line" version="1.8">
<doc xml:space="preserve">Render a #PangoLayoutLine onto a #XftDraw</doc>
<doc xml:space="preserve">Render a `PangoLayoutLine` onto a XftDraw</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="draw" transfer-ownership="none">
<doc xml:space="preserve">an #XftDraw</doc>
<doc xml:space="preserve">an XftDraw</doc>
<type name="xft.Draw" c:type="XftDraw*"/>
</parameter>
<parameter name="color" transfer-ownership="none">
<doc xml:space="preserve">the foreground color in which to draw the layout line
(may be overridden by color attributes)</doc>
(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">a #PangoLayoutLine</doc>
<doc xml:space="preserve">a `PangoLayoutLine`</doc>
<type name="Pango.LayoutLine" c:type="PangoLayoutLine*"/>
</parameter>
<parameter name="x" transfer-ownership="none">
@@ -544,18 +546,20 @@ the display is closed.</doc>
</parameters>
</function>
<function name="render_transformed" c:identifier="pango_xft_render_transformed" version="1.8">
<doc xml:space="preserve">Renders a #PangoGlyphString onto a #XftDraw, possibly
<doc xml:space="preserve">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
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
must have been loaded using a `PangoContext` with an identical
transformation matrix to that passed in to this function.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="draw" transfer-ownership="none">
<doc xml:space="preserve">an #XftDraw</doc>
<doc xml:space="preserve">an XftDraw</doc>
<type name="xft.Draw" c:type="XftDraw*"/>
</parameter>
<parameter name="color" transfer-ownership="none">
@@ -563,8 +567,7 @@ transformation matrix to that passed in to this function.</doc>
<type name="xft.Color" c:type="XftColor*"/>
</parameter>
<parameter name="matrix" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">a #PangoMatrix, or %NULL to use an identity
transformation</doc>
<doc xml:space="preserve">a `PangoMatrix`</doc>
<type name="Pango.Matrix" c:type="PangoMatrix*"/>
</parameter>
<parameter name="font" transfer-ownership="none">
@@ -577,21 +580,23 @@ transformation matrix to that passed in to this function.</doc>
</parameter>
<parameter name="x" transfer-ownership="none">
<doc xml:space="preserve">the x position of the start of the string (in Pango
units in user space coordinates)</doc>
units in user space coordinates)</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<doc xml:space="preserve">the y position of the baseline (in Pango units
in user space coordinates)</doc>
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">
<function name="set_default_substitute" c:identifier="pango_xft_set_default_substitute" version="1.2" deprecated="1" deprecated-version="1.46">
<doc xml:space="preserve">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>
<doc-deprecated xml:space="preserve">Use pango_fc_font_map_set_default_substitute()
instead.</doc-deprecated>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -638,12 +643,14 @@ without needing to call this function.</doc>
</parameter>
</parameters>
</function>
<function name="substitute_changed" c:identifier="pango_xft_substitute_changed" version="1.2">
<function name="substitute_changed" c:identifier="pango_xft_substitute_changed" version="1.2" deprecated="1" deprecated-version="1.46">
<doc xml:space="preserve">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>
<doc-deprecated xml:space="preserve">Use pango_fc_font_map_substitute_changed()
instead.</doc-deprecated>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
@@ -658,31 +665,5 @@ results for the same input pattern, you must call this function.</doc>
</parameter>
</parameters>
</function>
<docsection name="xftfonts">
<doc xml:space="preserve">The Xft library is a library for displaying fonts on the X window
system; internally it uses the fontconfig library to locate font
files, and the FreeType library to load and render fonts. The
Xft backend is the recommended Pango font backend for screen
display with X. (The &lt;link linkend="pango-Cairo-Rendering"&gt;Cairo back end&lt;/link&gt; is another possibility.)
Using the Xft backend is generally straightforward;
pango_xft_get_context() creates a context for a specified display
and screen. You can then create a #PangoLayout with that context
and render it with pango_xft_render_layout(). At a more advanced
level, the low-level fontconfig options used for rendering fonts
can be affected using pango_xft_set_default_substitute(), and
pango_xft_substitute_changed().
A range of functions for drawing pieces of a layout, such as
individual layout lines and glyphs strings are provided. You can also
directly create a #PangoXftRenderer. Finally, in some advanced cases, it
is useful to derive from #PangoXftRenderer. Deriving from
#PangoXftRenderer is useful for two reasons. One reason is be to
support custom attributes by overriding #PangoRendererClass virtual
functions like 'prepare_run' or 'draw_shape'. The reason is to
customize exactly how the final bits are drawn to the destination by
overriding the #PangoXftRendererClass virtual functions
'composite_glyphs' and 'composite_trapezoids'.</doc>
</docsection>
</namespace>
</repository>

24
dl.sh
View File

@@ -1,22 +1,14 @@
#!/bin/bash
set -e
VER="groovy"
./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
./gir-dl.sh https://packages.debian.org/unstable/amd64/libatk1.0-dev/download http.us.debian.org
./gir-dl.sh https://packages.debian.org/unstable/amd64/libgirepository1.0-dev/download http.us.debian.org
./gir-dl.sh https://packages.debian.org/unstable/amd64/libgraphene-1.0-dev/download http.us.debian.org
./gir-dl.sh https://packages.debian.org/unstable/amd64/libgdk-pixbuf-2.0-dev/download http.us.debian.org
./gir-dl.sh https://packages.debian.org/unstable/amd64/libgtk-3-dev/download http.us.debian.org
./gir-dl.sh https://packages.debian.org/unstable/amd64/libgtk-4-dev/download http.us.debian.org
./gir-dl.sh https://packages.debian.org/unstable/amd64/libharfbuzz-dev/download http.us.debian.org
./gir-dl.sh https://packages.debian.org/unstable/amd64/libpango1.0-dev/download http.us.debian.org
./reformat.sh
./fix.sh