<root>
<signal name="GtkATContext::state-change">
<description>
Emitted when the attributes of the accessible for the
`GtkATContext` instance change.

</description>
<parameters>
<parameter name="self">
<parameter_description> the `GtkATContext`
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkATContext:accessible">
<description>
The `GtkAccessible` that created the `GtkATContext` instance.

</description>
</property>

<property name="GtkATContext:accessible-role">
<description>
The accessible role used by the AT context.

Depending on the given role, different states and properties can be
set or retrieved.

</description>
</property>

<property name="GtkATContext:display">
<description>
The `GdkDisplay` for the `GtkATContext`.

</description>
</property>

<signal name="GtkAboutDialog::activate-link">
<description>
Emitted every time a URL is activated.

Applications may connect to it to override the default behaviour,
which is to call [method@Gtk.FileLauncher.launch].


</description>
<parameters>
<parameter name="label">
<parameter_description> The object on which the signal was emitted
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> the URI that is activated
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if the link has been activated
</return>
</signal>

<property name="GtkAboutDialog:artists">
<description>
The people who contributed artwork to the program, as a `NULL`-terminated
array of strings.

Each string may contain email addresses and URLs, which will be displayed
as links.

</description>
</property>

<property name="GtkAboutDialog:authors">
<description>
The authors of the program, as a `NULL`-terminated array of strings.

Each string may contain email addresses and URLs, which will be displayed
as links, see the introduction for more details.

</description>
</property>

<property name="GtkAboutDialog:comments">
<description>
Comments about the program.

This string is displayed in a label in the main dialog, thus it
should be a short explanation of the main purpose of the program,
not a detailed list of features.

</description>
</property>

<property name="GtkAboutDialog:copyright">
<description>
Copyright information for the program.

</description>
</property>

<property name="GtkAboutDialog:documenters">
<description>
The people documenting the program, as a `NULL`-terminated array of strings.

Each string may contain email addresses and URLs, which will be displayed
as links, see the introduction for more details.

</description>
</property>

<property name="GtkAboutDialog:license">
<description>
The license of the program, as free-form text.

This string is displayed in a text view in a secondary dialog, therefore
it is fine to use a long multi-paragraph text. Note that the text is only
wrapped in the text view if the &quot;wrap-license&quot; property is set to `TRUE`;
otherwise the text itself must contain the intended linebreaks.

When setting this property to a non-`NULL` value, the
[property@Gtk.AboutDialog:license-type] property is set to
`GTK_LICENSE_CUSTOM` as a side effect.

The text may contain links in this format `&lt;http://www.some.place/&gt;`
and email references in the form `&lt;mail-to@some.body&gt;`, and these will
be converted into clickable links.

</description>
</property>

<property name="GtkAboutDialog:license-type">
<description>
The license of the program.

The `GtkAboutDialog` will automatically fill out a standard disclaimer
and link the user to the appropriate online resource for the license
text.

If `GTK_LICENSE_UNKNOWN` is used, the link used will be the same
specified in the [property@Gtk.AboutDialog:website] property.

If `GTK_LICENSE_CUSTOM` is used, the current contents of the
[property@Gtk.AboutDialog:license] property are used.

For any other [enum@Gtk.License] value, the contents of the
[property@Gtk.AboutDialog:license] property are also set by this property as
a side effect.

</description>
</property>

<property name="GtkAboutDialog:logo">
<description>
A logo for the about box.

If it is `NULL`, the default window icon set with
[func@Gtk.Window.set_default_icon_name] will be used.

</description>
</property>

<property name="GtkAboutDialog:logo-icon-name">
<description>
A named icon to use as the logo for the about box.

This property overrides the [property@Gtk.AboutDialog:logo] property.

</description>
</property>

<property name="GtkAboutDialog:program-name">
<description>
The name of the program.

If this is not set, it defaults to the value returned by
`g_get_application_name()`.

</description>
</property>

<property name="GtkAboutDialog:system-information">
<description>
Information about the system on which the program is running.

This information is displayed in a separate page, therefore it is fine
to use a long multi-paragraph text. Note that the text should contain
the intended linebreaks.

The text may contain links in this format `&lt;http://www.some.place/&gt;`
and email references in the form `&lt;mail-to@some.body&gt;`, and these will
be converted into clickable links.

</description>
</property>

<property name="GtkAboutDialog:translator-credits">
<description>
Credits to the translators.

This string should be marked as translatable.

The string may contain email addresses and URLs, which will be displayed
as links, see the introduction for more details.

</description>
</property>

<property name="GtkAboutDialog:version">
<description>
The version of the program.

</description>
</property>

<property name="GtkAboutDialog:website">
<description>
The URL for the link to the website of the program.

This should be a string starting with `http://` or `https://`.

</description>
</property>

<property name="GtkAboutDialog:website-label">
<description>
The label for the link to the website of the program.

</description>
</property>

<property name="GtkAboutDialog:wrap-license">
<description>
Whether to wrap the text in the license dialog.

</description>
</property>

<property name="GtkAccessible:accessible-role">
<description>
The accessible role of the given `GtkAccessible` implementation.

The accessible role cannot be changed once set.

</description>
</property>

<enum name="GtkAccessibleAutocomplete">
<description>
The possible values for the %GTK_ACCESSIBLE_PROPERTY_AUTOCOMPLETE
accessible property.

</description>
<parameters>
<parameter name="GTK_ACCESSIBLE_AUTOCOMPLETE_NONE">
<parameter_description> Automatic suggestions are not displayed.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_AUTOCOMPLETE_INLINE">
<parameter_description> When a user is providing input, text
suggesting one way to complete the provided input may be dynamically
inserted after the caret.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_AUTOCOMPLETE_LIST">
<parameter_description> When a user is providing input, an element
containing a collection of values that could complete the provided input
may be displayed.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_AUTOCOMPLETE_BOTH">
<parameter_description> When a user is providing input, an element
containing a collection of values that could complete the provided input
may be displayed. If displayed, one value in the collection is automatically
selected, and the text needed to complete the automatically selected value
appears after the caret in the input.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkAccessibleInvalidState">
<description>
The possible values for the %GTK_ACCESSIBLE_STATE_INVALID
accessible state.

Note that the %GTK_ACCESSIBLE_INVALID_FALSE and
%GTK_ACCESSIBLE_INVALID_TRUE have the same values
as %FALSE and %TRUE.

</description>
<parameters>
<parameter name="GTK_ACCESSIBLE_INVALID_FALSE">
<parameter_description> There are no detected errors in the value
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_INVALID_TRUE">
<parameter_description> The value entered by the user has failed validation
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_INVALID_GRAMMAR">
<parameter_description> A grammatical error was detected
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_INVALID_SPELLING">
<parameter_description> A spelling error was detected
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkAccessiblePlatformState">
<description>
The various platform states which can be queried
using [method@Gtk.Accessible.get_platform_state].

Since: 4.10

</description>
<parameters>
<parameter name="GTK_ACCESSIBLE_PLATFORM_STATE_FOCUSABLE">
<parameter_description> whether the accessible can be focused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PLATFORM_STATE_FOCUSED">
<parameter_description> whether the accessible has focus
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PLATFORM_STATE_ACTIVE">
<parameter_description> whether the accessible is active
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkAccessibleProperty">
<description>
The possible accessible properties of a [iface@Accessible].

</description>
<parameters>
<parameter name="GTK_ACCESSIBLE_PROPERTY_AUTOCOMPLETE">
<parameter_description> Indicates whether inputting text
could trigger display of one or more predictions of the user's intended
value for a combobox, searchbox, or textbox and specifies how predictions
would be presented if they were made. Value type: [enum@AccessibleAutocomplete]
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_DESCRIPTION">
<parameter_description> Defines a string value that describes
or annotates the current element. Value type: string
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_HAS_POPUP">
<parameter_description> Indicates the availability and type of
interactive popup element, such as menu or dialog, that can be triggered
by an element.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_KEY_SHORTCUTS">
<parameter_description> Indicates keyboard shortcuts that an
author has implemented to activate or give focus to an element. Value type:
string
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_LABEL">
<parameter_description> Defines a string value that labels the current
element. Value type: string
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_LEVEL">
<parameter_description> Defines the hierarchical level of an element
within a structure. Value type: integer
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_MODAL">
<parameter_description> Indicates whether an element is modal when
displayed. Value type: boolean
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_MULTI_LINE">
<parameter_description> Indicates whether a text box accepts
multiple lines of input or only a single line. Value type: boolean
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_MULTI_SELECTABLE">
<parameter_description> Indicates that the user may select
more than one item from the current selectable descendants. Value type:
boolean
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_ORIENTATION">
<parameter_description> Indicates whether the element's
orientation is horizontal, vertical, or unknown/ambiguous. Value type:
[enum@Orientation]
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_PLACEHOLDER">
<parameter_description> Defines a short hint (a word or short
phrase) intended to aid the user with data entry when the control has no
value. A hint could be a sample value or a brief description of the expected
format. Value type: string
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_READ_ONLY">
<parameter_description> Indicates that the element is not editable,
but is otherwise operable. Value type: boolean
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_REQUIRED">
<parameter_description> Indicates that user input is required on
the element before a form may be submitted. Value type: boolean
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_ROLE_DESCRIPTION">
<parameter_description> Defines a human-readable,
author-localized description for the role of an element. Value type: string
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_SORT">
<parameter_description> Indicates if items in a table or grid are
sorted in ascending or descending order. Value type: [enum@AccessibleSort]
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_VALUE_MAX">
<parameter_description> Defines the maximum allowed value for a
range widget. Value type: double
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_VALUE_MIN">
<parameter_description> Defines the minimum allowed value for a
range widget. Value type: double
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_VALUE_NOW">
<parameter_description> Defines the current value for a range widget.
Value type: double
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_PROPERTY_VALUE_TEXT">
<parameter_description> Defines the human readable text alternative
of aria-valuenow for a range widget. Value type: string
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkAccessibleRelation">
<description>
The possible accessible relations of a [iface@Accessible].

Accessible relations can be references to other widgets,
integers or strings.

</description>
<parameters>
<parameter name="GTK_ACCESSIBLE_RELATION_ACTIVE_DESCENDANT">
<parameter_description> Identifies the currently active
element when focus is on a composite widget, combobox, textbox, group,
or application. Value type: reference
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_COL_COUNT">
<parameter_description> Defines the total number of columns
in a table, grid, or treegrid. Value type: integer
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_COL_INDEX">
<parameter_description> Defines an element's column index or
position with respect to the total number of columns within a table,
grid, or treegrid. Value type: integer
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_COL_INDEX_TEXT">
<parameter_description> Defines a human readable text
alternative of %GTK_ACCESSIBLE_RELATION_COL_INDEX. Value type: string
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_COL_SPAN">
<parameter_description> Defines the number of columns spanned
by a cell or gridcell within a table, grid, or treegrid. Value type: integer
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_CONTROLS">
<parameter_description> Identifies the element (or elements) whose
contents or presence are controlled by the current element. Value type: reference
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_DESCRIBED_BY">
<parameter_description> Identifies the element (or elements)
that describes the object. Value type: reference
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_DETAILS">
<parameter_description> Identifies the element (or elements) that
provide additional information related to the object. Value type: reference
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_ERROR_MESSAGE">
<parameter_description> Identifies the element that provides
an error message for an object. Value type: reference
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_FLOW_TO">
<parameter_description> Identifies the next element (or elements)
in an alternate reading order of content which, at the user's discretion,
allows assistive technology to override the general default of reading in
document source order. Value type: reference
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_LABELLED_BY">
<parameter_description> Identifies the element (or elements)
that labels the current element. Value type: reference
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_OWNS">
<parameter_description> Identifies an element (or elements) in order
to define a visual, functional, or contextual parent/child relationship
between elements where the widget hierarchy cannot be used to represent
the relationship. Value type: reference
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_POS_IN_SET">
<parameter_description> Defines an element's number or position
in the current set of listitems or treeitems. Value type: integer
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_ROW_COUNT">
<parameter_description> Defines the total number of rows in a table,
grid, or treegrid. Value type: integer
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_ROW_INDEX">
<parameter_description> Defines an element's row index or position
with respect to the total number of rows within a table, grid, or treegrid.
Value type: integer
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_ROW_INDEX_TEXT">
<parameter_description> Defines a human readable text
alternative of aria-rowindex. Value type: string
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_ROW_SPAN">
<parameter_description> Defines the number of rows spanned by a
cell or gridcell within a table, grid, or treegrid. Value type: integer
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_RELATION_SET_SIZE">
<parameter_description> Defines the number of items in the current
set of listitems or treeitems. Value type: integer
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkAccessibleRole">
<description>
The accessible role for a [iface@Accessible] implementation.

Abstract roles are only used as part of the ontology; application
developers must not use abstract roles in their code.

</description>
<parameters>
<parameter name="GTK_ACCESSIBLE_ROLE_ALERT">
<parameter_description> An element with important, and usually
time-sensitive, information
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_ALERT_DIALOG">
<parameter_description> A type of dialog that contains an
alert message
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_BANNER">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_BUTTON">
<parameter_description> An input element that allows for
user-triggered actions when clicked or pressed
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_CAPTION">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_CELL">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_CHECKBOX">
<parameter_description> A checkable input element that has
three possible values: `true`, `false`, or `mixed`
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_COLUMN_HEADER">
<parameter_description> A header in a columned list.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_COMBO_BOX">
<parameter_description> An input that controls another element,
such as a list or a grid, that can dynamically pop up to help the user
set the value of the input
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_COMMAND">
<parameter_description> Abstract role.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_COMPOSITE">
<parameter_description> Abstract role.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_DIALOG">
<parameter_description> A dialog is a window that is designed to interrupt
the current processing of an application in order to prompt the user to enter
information or require a response.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_DOCUMENT">
<parameter_description> Content that assistive technology users may want to
browse in a reading mode.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_FEED">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_FORM">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_GENERIC">
<parameter_description> A nameless container that has no semantic meaning
of its own. This is the role that GTK uses by default for widgets.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_GRID">
<parameter_description> A grid of items.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_GRID_CELL">
<parameter_description> An item in a grid or tree grid.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_GROUP">
<parameter_description> An element that groups multiple related widgets. GTK uses
this role for various containers, like [class@Gtk.HeaderBar] or [class@Gtk.Notebook].
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_HEADING">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_IMG">
<parameter_description> An image.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_INPUT">
<parameter_description> Abstract role.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_LABEL">
<parameter_description> A visible name or caption for a user interface component.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_LANDMARK">
<parameter_description> Abstract role.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_LEGEND">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_LINK">
<parameter_description> A clickable link.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_LIST">
<parameter_description> A list of items.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_LIST_BOX">
<parameter_description> Unused.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_LIST_ITEM">
<parameter_description> An item in a list.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_LOG">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_MAIN">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_MARQUEE">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_MATH">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_METER">
<parameter_description> An element that represents a value within a known range.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_MENU">
<parameter_description> A menu.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_MENU_BAR">
<parameter_description> A menubar.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_MENU_ITEM">
<parameter_description> An item in a menu.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_MENU_ITEM_CHECKBOX">
<parameter_description> A check item in a menu.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_MENU_ITEM_RADIO">
<parameter_description> A radio item in a menu.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_NAVIGATION">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_NONE">
<parameter_description> An element that is not represented to accessibility technologies.
This role is synonymous to @GTK_ACCESSIBLE_ROLE_PRESENTATION.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_NOTE">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_OPTION">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_PRESENTATION">
<parameter_description> An element that is not represented to accessibility technologies.
This role is synonymous to @GTK_ACCESSIBLE_ROLE_NONE.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_PROGRESS_BAR">
<parameter_description> An element that displays the progress
status for tasks that take a long time.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_RADIO">
<parameter_description> A checkable input in a group of radio roles,
only one of which can be checked at a time.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_RADIO_GROUP">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_RANGE">
<parameter_description> Abstract role.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_REGION">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_ROW">
<parameter_description> A row in a columned list.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_ROW_GROUP">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_ROW_HEADER">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_SCROLLBAR">
<parameter_description> A graphical object that controls the scrolling
of content within a viewing area, regardless of whether the content is fully
displayed within the viewing area.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_SEARCH">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_SEARCH_BOX">
<parameter_description> A type of textbox intended for specifying
search criteria.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_SECTION">
<parameter_description> Abstract role.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_SECTION_HEAD">
<parameter_description> Abstract role.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_SELECT">
<parameter_description> Abstract role.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_SEPARATOR">
<parameter_description> A divider that separates and distinguishes
sections of content or groups of menuitems.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_SLIDER">
<parameter_description> A user input where the user selects a value
from within a given range.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_SPIN_BUTTON">
<parameter_description> A form of range that expects the user to
select from among discrete choices.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_STATUS">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_STRUCTURE">
<parameter_description> Abstract role.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_SWITCH">
<parameter_description> A type of checkbox that represents on/off values,
as opposed to checked/unchecked values.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_TAB">
<parameter_description> An item in a list of tab used for switching pages.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_TABLE">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_TAB_LIST">
<parameter_description> A list of tabs for switching pages.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_TAB_PANEL">
<parameter_description> A page in a notebook or stack.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_TEXT_BOX">
<parameter_description> A type of input that allows free-form text
as its value.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_TIME">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_TIMER">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_TOOLBAR">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_TOOLTIP">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_TREE">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_TREE_GRID">
<parameter_description> A treeview-like, columned list.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_TREE_ITEM">
<parameter_description> Unused
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_WIDGET">
<parameter_description> Abstract role for interactive components of a
graphical user interface
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_WINDOW">
<parameter_description> Abstract role for windows.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_TOGGLE_BUTTON">
<parameter_description> A type of push button
which stays pressed until depressed by a second activation.
Since: 4.10
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_APPLICATION">
<parameter_description> A toplevel element of a graphical user interface.
This is the role that GTK uses by default for windows.
Since: 4.12
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_PARAGRAPH">
<parameter_description> A paragraph of content.
Since: 4.14
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_ROLE_BLOCK_QUOTE">
<parameter_description> A section of content that is quoted
from another source.
Since: 4.14
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkAccessibleSort">
<description>
The possible values for the %GTK_ACCESSIBLE_PROPERTY_SORT
accessible property.

</description>
<parameters>
<parameter name="GTK_ACCESSIBLE_SORT_NONE">
<parameter_description> There is no defined sort applied to the column.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_SORT_ASCENDING">
<parameter_description> Items are sorted in ascending order by this column.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_SORT_DESCENDING">
<parameter_description> Items are sorted in descending order by this column.
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_SORT_OTHER">
<parameter_description> A sort algorithm other than ascending or
descending has been applied.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkAccessibleState">
<description>
The possible accessible states of a [iface@Accessible].

</description>
<parameters>
<parameter name="GTK_ACCESSIBLE_STATE_BUSY">
<parameter_description> A “busy” state. This state has boolean values
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_STATE_CHECKED">
<parameter_description> A “checked” state; indicates the current
state of a [class@CheckButton]. Value type: [enum@AccessibleTristate]
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_STATE_DISABLED">
<parameter_description> A “disabled” state; corresponds to the
[property@Widget:sensitive] property. It indicates a UI element
that is perceivable, but not editable or operable. Value type: boolean
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_STATE_EXPANDED">
<parameter_description> An “expanded” state; corresponds to the
[property@Expander:expanded] property. Value type: boolean
or undefined
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_STATE_HIDDEN">
<parameter_description> A “hidden” state; corresponds to the
[property@Widget:visible] property. You can use this state
explicitly on UI elements that should not be exposed to an assistive
technology. Value type: boolean
See also: %GTK_ACCESSIBLE_STATE_DISABLED
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_STATE_INVALID">
<parameter_description> An “invalid” state; set when a widget
is showing an error. Value type: [enum@AccessibleInvalidState]
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_STATE_PRESSED">
<parameter_description> A “pressed” state; indicates the current
state of a [class@ToggleButton]. Value type: [enum@AccessibleTristate]
enumeration
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_STATE_SELECTED">
<parameter_description> A “selected” state; set when a widget
is selected. Value type: boolean or undefined
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_STATE_VISITED">
<parameter_description> Indicates that a widget with the
GTK_ACCESSIBLE_ROLE_LINK has been visited. Value type: boolean.
Since: 4.12
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkAccessibleTristate">
<description>
The possible values for the %GTK_ACCESSIBLE_STATE_PRESSED
accessible state.

Note that the %GTK_ACCESSIBLE_TRISTATE_FALSE and
%GTK_ACCESSIBLE_TRISTATE_TRUE have the same values
as %FALSE and %TRUE.

</description>
<parameters>
<parameter name="GTK_ACCESSIBLE_TRISTATE_FALSE">
<parameter_description> The state is `false`
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_TRISTATE_TRUE">
<parameter_description> The state is `true`
</parameter_description>
</parameter>
<parameter name="GTK_ACCESSIBLE_TRISTATE_MIXED">
<parameter_description> The state is `mixed`
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkActionBar:revealed">
<description>
Controls whether the action bar shows its contents.

</description>
</property>

<signal name="GtkAdjustment::changed">
<description>
Emitted when one or more of the `GtkAdjustment` properties have been
changed.

Note that the [property@Gtk.Adjustment:value] property is
covered by the [signal@Gtk.Adjustment::value-changed] signal.

</description>
<parameters>
<parameter name="adjustment">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkAdjustment::value-changed">
<description>
Emitted when the value has been changed.

</description>
<parameters>
<parameter name="adjustment">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkAdjustment:lower">
<description>
The minimum value of the adjustment.

</description>
</property>

<property name="GtkAdjustment:page-increment">
<description>
The page increment of the adjustment.

</description>
</property>

<property name="GtkAdjustment:page-size">
<description>
The page size of the adjustment.

Note that the page-size is irrelevant and should be set to zero
if the adjustment is used for a simple scalar value, e.g. in a
`GtkSpinButton`.

</description>
</property>

<property name="GtkAdjustment:step-increment">
<description>
The step increment of the adjustment.

</description>
</property>

<property name="GtkAdjustment:upper">
<description>
The maximum value of the adjustment.

Note that values will be restricted by `upper - page-size` if the page-size
property is nonzero.

</description>
</property>

<property name="GtkAdjustment:value">
<description>
The value of the adjustment.

</description>
</property>

<property name="GtkAlertDialog:buttons">
<description>
Labels for buttons to show in the alert.

The labels should be translated and may contain
a _ to indicate the mnemonic character.

If this property is not set, then a 'Close' button is
automatically created.

Since: 4.10

</description>
</property>

<property name="GtkAlertDialog:cancel-button">
<description>
This property determines what happens when the Escape key is
pressed while the alert is shown.

If this property holds the index of a button in [property@Gtk.AlertDialog:buttons],
then pressing Escape is treated as if that button was pressed. If it is -1
or not a valid index for the `buttons` array, then an error is returned.

If `buttons` is `NULL`, then the automatically created 'Close' button
is treated as both cancel and default button, so 0 is returned.

Since: 4.10

</description>
</property>

<property name="GtkAlertDialog:default-button">
<description>
This property determines what happens when the Return key is
pressed while the alert is shown.

If this property holds the index of a button in [property@Gtk.AlertDialog:buttons],
then pressing Return is treated as if that button was pressed. If it is -1
or not a valid index for the `buttons` array, then nothing happens.

If `buttons` is `NULL`, then the automatically created 'Close' button
is treated as both cancel and default button, so 0 is returned.

Since: 4.10

</description>
</property>

<property name="GtkAlertDialog:detail">
<description>
The detail text for the alert.

Since: 4.10

</description>
</property>

<property name="GtkAlertDialog:message">
<description>
The message for the alert.

Since: 4.10

</description>
</property>

<property name="GtkAlertDialog:modal">
<description>
Whether the alert is modal.

Since: 4.10

</description>
</property>

<enum name="GtkAlign">
<description>
Controls how a widget deals with extra space in a single dimension.

Alignment only matters if the widget receives a “too large” allocation,
for example if you packed the widget with the [property@Gtk.Widget:hexpand]
property inside a [class@Box], then the widget might get extra space.
If you have for example a 16x16 icon inside a 32x32 space, the icon
could be scaled and stretched, it could be centered, or it could be
positioned to one side of the space.

Note that in horizontal context `GTK_ALIGN_START` and `GTK_ALIGN_END`
are interpreted relative to text direction.

Baseline support is optional for containers and widgets, and is only available
for vertical alignment. `GTK_ALIGN_BASELINE_CENTER and `GTK_ALIGN_BASELINE_FILL`
are treated similar to `GTK_ALIGN_CENTER` and `GTK_ALIGN_FILL`, except that it
positions the widget to line up the baselines, where that is supported.

</description>
<parameters>
<parameter name="GTK_ALIGN_FILL">
<parameter_description> stretch to fill all space if possible, center if
no meaningful way to stretch
</parameter_description>
</parameter>
<parameter name="GTK_ALIGN_START">
<parameter_description> snap to left or top side, leaving space on right or bottom
</parameter_description>
</parameter>
<parameter name="GTK_ALIGN_END">
<parameter_description> snap to right or bottom side, leaving space on left or top
</parameter_description>
</parameter>
<parameter name="GTK_ALIGN_CENTER">
<parameter_description> center natural width of widget inside the allocation
</parameter_description>
</parameter>
<parameter name="GTK_ALIGN_BASELINE">
<parameter_description> align the widget according to the baseline.
See [class@Gtk.Widget]. Deprecated: 4.12: Use `GTK_ALIGN_BASELINE_FILL` instead
</parameter_description>
</parameter>
<parameter name="GTK_ALIGN_BASELINE_FILL">
<parameter_description> a different name for `GTK_ALIGN_BASELINE`. Since 4.12
</parameter_description>
</parameter>
<parameter name="GTK_ALIGN_BASELINE_CENTER">
<parameter_description> stretch to fill all space, but align the baseline. Since 4.12
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkAlternativeTrigger:first">
<description>
The first `GtkShortcutTrigger` to check.

</description>
</property>

<property name="GtkAlternativeTrigger:second">
<description>
The second `GtkShortcutTrigger` to check.

</description>
</property>

<property name="GtkAppChooser:content-type">
<description>
The content type of the `GtkAppChooser` object.

See `GContentType` for more information about content types.

</description>
</property>

<signal name="GtkAppChooserButton::activate">
<description>
Emitted to when the button is activated.

The `::activate` signal on `GtkAppChooserButton` is an action signal and
emitting it causes the button to pop up its dialog.

Since: 4.4

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkAppChooserButton::changed">
<description>
Emitted when the active application changes.

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkAppChooserButton::custom-item-activated">
<description>
Emitted when a custom item is activated.

Use [method@Gtk.AppChooserButton.append_custom_item],
to add custom items.

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="item_name">
<parameter_description> the name of the activated item
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkAppChooserButton:heading">
<description>
The text to show at the top of the dialog that can be
opened from the button.

The string may contain Pango markup.

</description>
</property>

<property name="GtkAppChooserButton:modal">
<description>
Whether the app chooser dialog should be modal.

</description>
</property>

<property name="GtkAppChooserButton:show-default-item">
<description>
Determines whether the dropdown menu shows the default application
on top for the provided content type.

</description>
</property>

<property name="GtkAppChooserButton:show-dialog-item">
<description>
Determines whether the dropdown menu shows an item to open
a `GtkAppChooserDialog`.

</description>
</property>

<property name="GtkAppChooserDialog:gfile">
<description>
The GFile used by the `GtkAppChooserDialog`.

The dialog's `GtkAppChooserWidget` content type will
be guessed from the file, if present.

</description>
</property>

<property name="GtkAppChooserDialog:heading">
<description>
The text to show at the top of the dialog.

The string may contain Pango markup.

</description>
</property>

<signal name="GtkAppChooserWidget::application-activated">
<description>
Emitted when an application item is activated from the widget's list.

This usually happens when the user double clicks an item, or an item
is selected and the user presses one of the keys Space, Shift+Space,
Return or Enter.

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="application">
<parameter_description> the activated `GAppInfo`
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkAppChooserWidget::application-selected">
<description>
Emitted when an application item is selected from the widget's list.

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="application">
<parameter_description> the selected `GAppInfo`
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkAppChooserWidget:default-text">
<description>
The text that appears in the widget when there are no applications
for the given content type.

</description>
</property>

<property name="GtkAppChooserWidget:show-all">
<description>
If %TRUE, the app chooser presents all applications
in a single list, without subsections for default,
recommended or related applications.

</description>
</property>

<property name="GtkAppChooserWidget:show-default">
<description>
Determines whether the app chooser should show the default
handler for the content type in a separate section.

If %FALSE, the default handler is listed among the recommended
applications.

</description>
</property>

<property name="GtkAppChooserWidget:show-fallback">
<description>
Determines whether the app chooser should show a section
for fallback applications.

If %FALSE, the fallback applications are listed among the
other applications.

</description>
</property>

<property name="GtkAppChooserWidget:show-other">
<description>
Determines whether the app chooser should show a section
for other applications.

</description>
</property>

<property name="GtkAppChooserWidget:show-recommended">
<description>
Determines whether the app chooser should show a section
for recommended applications.

If %FALSE, the recommended applications are listed
among the other applications.

</description>
</property>

<signal name="GtkApplication::query-end">
<description>
Emitted when the session manager is about to end the session.

This signal is only emitted if [property@Gtk.Application:register-session]
is `TRUE`. Applications can connect to this signal and call
[method@Gtk.Application.inhibit] with `GTK_APPLICATION_INHIBIT_LOGOUT`
to delay the end of the session until state has been saved.

</description>
<parameters>
<parameter name="application">
<parameter_description> the `GtkApplication` which emitted the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkApplication::window-added">
<description>
Emitted when a [class@Gtk.Window] is added to `application` through
[method@Gtk.Application.add_window].

</description>
<parameters>
<parameter name="application">
<parameter_description> the `GtkApplication` which emitted the signal
</parameter_description>
</parameter>
<parameter name="window">
<parameter_description> the newly-added [class@Gtk.Window]
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkApplication::window-removed">
<description>
Emitted when a [class@Gtk.Window] is removed from `application`.

This can happen as a side-effect of the window being destroyed
or explicitly through [method@Gtk.Application.remove_window].

</description>
<parameters>
<parameter name="application">
<parameter_description> the `GtkApplication` which emitted the signal
</parameter_description>
</parameter>
<parameter name="window">
<parameter_description> the [class@Gtk.Window] that is being removed
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkApplication:active-window">
<description>
The currently focused window of the application.

</description>
</property>

<property name="GtkApplication:menubar">
<description>
The `GMenuModel` to be used for the application's menu bar.

</description>
</property>

<property name="GtkApplication:register-session">
<description>
Set this property to `TRUE` to register with the session manager.

This will make GTK track the session state (such as the
[property@Gtk.Application:screensaver-active] property).

</description>
</property>

<property name="GtkApplication:screensaver-active">
<description>
This property is `TRUE` if GTK believes that the screensaver is
currently active.

GTK only tracks session state (including this) when
[property@Gtk.Application:register-session] is set to %TRUE.

Tracking the screensaver state is currently only supported on
Linux.

</description>
</property>

<enum name="GtkApplicationInhibitFlags">
<description>
Types of user actions that may be blocked by `GtkApplication`.

See [method@Gtk.Application.inhibit].

</description>
<parameters>
<parameter name="GTK_APPLICATION_INHIBIT_LOGOUT">
<parameter_description> Inhibit ending the user session
by logging out or by shutting down the computer
</parameter_description>
</parameter>
<parameter name="GTK_APPLICATION_INHIBIT_SWITCH">
<parameter_description> Inhibit user switching
</parameter_description>
</parameter>
<parameter name="GTK_APPLICATION_INHIBIT_SUSPEND">
<parameter_description> Inhibit suspending the
session or computer
</parameter_description>
</parameter>
<parameter name="GTK_APPLICATION_INHIBIT_IDLE">
<parameter_description> Inhibit the session being
marked as idle (and possibly locked)
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkApplicationWindow:show-menubar">
<description>
If this property is %TRUE, the window will display a menubar
unless it is shown by the desktop shell.

See [method@Gtk.Application.set_menubar].

If %FALSE, the window will not display a menubar, regardless
of whether the desktop shell is showing it or not.

</description>
</property>

<enum name="GtkArrowType">
<description>
Used to indicate the direction in which an arrow should point.

</description>
<parameters>
<parameter name="GTK_ARROW_UP">
<parameter_description> Represents an upward pointing arrow.
</parameter_description>
</parameter>
<parameter name="GTK_ARROW_DOWN">
<parameter_description> Represents a downward pointing arrow.
</parameter_description>
</parameter>
<parameter name="GTK_ARROW_LEFT">
<parameter_description> Represents a left pointing arrow.
</parameter_description>
</parameter>
<parameter name="GTK_ARROW_RIGHT">
<parameter_description> Represents a right pointing arrow.
</parameter_description>
</parameter>
<parameter name="GTK_ARROW_NONE">
<parameter_description> No arrow.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkAspectFrame:child">
<description>
The child widget.

</description>
</property>

<property name="GtkAspectFrame:obey-child">
<description>
Whether the `GtkAspectFrame` should use the aspect ratio of its child.

</description>
</property>

<property name="GtkAspectFrame:ratio">
<description>
The aspect ratio to be used by the `GtkAspectFrame`.

This property is only used if
[property@Gtk.AspectFrame:obey-child] is set to %FALSE.

</description>
</property>

<property name="GtkAspectFrame:xalign">
<description>
The horizontal alignment of the child.

</description>
</property>

<property name="GtkAspectFrame:yalign">
<description>
The vertical alignment of the child.

</description>
</property>

<signal name="GtkAssistant::apply">
<description>
Emitted when the apply button is clicked.

The default behavior of the `GtkAssistant` is to switch to the page
after the current page, unless the current page is the last one.

A handler for the ::apply signal should carry out the actions for
which the wizard has collected data. If the action takes a long time
to complete, you might consider putting a page of type
%GTK_ASSISTANT_PAGE_PROGRESS after the confirmation page and handle
this operation within the [signal@Gtk.Assistant::prepare] signal of
the progress page.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> the `GtkAssistant`
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkAssistant::cancel">
<description>
Emitted when then the cancel button is clicked.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> the `GtkAssistant`
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkAssistant::close">
<description>
Emitted either when the close button of a summary page is clicked,
or when the apply button in the last page in the flow (of type
%GTK_ASSISTANT_PAGE_CONFIRM) is clicked.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> the `GtkAssistant`
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkAssistant::escape">
<description>
The action signal for the Escape binding.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> the `GtkAssistant`
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkAssistant::prepare">
<description>
Emitted when a new page is set as the assistant's current page,
before making the new page visible.

A handler for this signal can do any preparations which are
necessary before showing @page.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> the `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="page">
<parameter_description> the current page
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkAssistant:pages">
<description>
`GListModel` containing the pages.

</description>
</property>

<property name="GtkAssistant:use-header-bar">
<description>
%TRUE if the assistant uses a `GtkHeaderBar` for action buttons
instead of the action-area.

For technical reasons, this property is declared as an integer
property, but you should only set it to %TRUE or %FALSE.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
</property>

<property name="GtkAssistantPage:child">
<description>
The child widget.

Deprecated: 4.10: This object will be removed in GTK 5

</description>
</property>

<property name="GtkAssistantPage:complete">
<description>
Whether all required fields are filled in.

GTK uses this information to control the sensitivity
of the navigation buttons.

Deprecated: 4.10: This object will be removed in GTK 5

</description>
</property>

<property name="GtkAssistantPage:page-type">
<description>
The type of the assistant page.

Deprecated: 4.10: This object will be removed in GTK 5

</description>
</property>

<property name="GtkAssistantPage:title">
<description>
The title of the page.

Deprecated: 4.10: This object will be removed in GTK 5

</description>
</property>

<enum name="GtkAssistantPageType">
<description>
Determines the page role inside a `GtkAssistant`.

The role is used to handle buttons sensitivity and visibility.

Note that an assistant needs to end its page flow with a page of type
%GTK_ASSISTANT_PAGE_CONFIRM, %GTK_ASSISTANT_PAGE_SUMMARY or
%GTK_ASSISTANT_PAGE_PROGRESS to be correct.

The Cancel button will only be shown if the page isn’t “committed”.
See gtk_assistant_commit() for details.

</description>
<parameters>
<parameter name="GTK_ASSISTANT_PAGE_CONTENT">
<parameter_description> The page has regular contents. Both the
Back and forward buttons will be shown.
</parameter_description>
</parameter>
<parameter name="GTK_ASSISTANT_PAGE_INTRO">
<parameter_description> The page contains an introduction to the
assistant task. Only the Forward button will be shown if there is a
next page.
</parameter_description>
</parameter>
<parameter name="GTK_ASSISTANT_PAGE_CONFIRM">
<parameter_description> The page lets the user confirm or deny the
changes. The Back and Apply buttons will be shown.
</parameter_description>
</parameter>
<parameter name="GTK_ASSISTANT_PAGE_SUMMARY">
<parameter_description> The page informs the user of the changes
done. Only the Close button will be shown.
</parameter_description>
</parameter>
<parameter name="GTK_ASSISTANT_PAGE_PROGRESS">
<parameter_description> Used for tasks that take a long time to
complete, blocks the assistant until the page is marked as complete.
Only the back button will be shown.
</parameter_description>
</parameter>
<parameter name="GTK_ASSISTANT_PAGE_CUSTOM">
<parameter_description> Used for when other page types are not
appropriate. No buttons will be shown, and the application must
add its own buttons through gtk_assistant_add_action_widget().
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkBaselinePosition">
<description>
Baseline position in a row of widgets.

Whenever a container has some form of natural row it may align
children in that row along a common typographical baseline. If
the amount of vertical space in the row is taller than the total
requested height of the baseline-aligned children then it can use a
`GtkBaselinePosition` to select where to put the baseline inside the
extra available space.

</description>
<parameters>
<parameter name="GTK_BASELINE_POSITION_TOP">
<parameter_description> Align the baseline at the top
</parameter_description>
</parameter>
<parameter name="GTK_BASELINE_POSITION_CENTER">
<parameter_description> Center the baseline
</parameter_description>
</parameter>
<parameter name="GTK_BASELINE_POSITION_BOTTOM">
<parameter_description> Align the baseline at the bottom
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkBookmarkList:attributes">
<description>
The attributes to query.

</description>
</property>

<property name="GtkBookmarkList:filename">
<description>
The bookmark file to load.

</description>
</property>

<property name="GtkBookmarkList:io-priority">
<description>
Priority used when loading.

</description>
</property>

<property name="GtkBookmarkList:item-type">
<description>
The type of items. See [method@Gio.ListModel.get_item_type].

Since: 4.8

</description>
</property>

<property name="GtkBookmarkList:loading">
<description>
%TRUE if files are being loaded.

</description>
</property>

<property name="GtkBookmarkList:n-items">
<description>
The number of items. See [method@Gio.ListModel.get_n_items].

Since: 4.8

</description>
</property>

<property name="GtkBoolFilter:expression">
<description>
The boolean expression to evaluate on item.

</description>
</property>

<property name="GtkBoolFilter:invert">
<description>
If the expression result should be inverted.

</description>
</property>

<enum name="GtkBorderStyle">
<description>
Describes how the border of a UI element should be rendered.

</description>
<parameters>
<parameter name="GTK_BORDER_STYLE_NONE">
<parameter_description> No visible border
</parameter_description>
</parameter>
<parameter name="GTK_BORDER_STYLE_HIDDEN">
<parameter_description> Same as %GTK_BORDER_STYLE_NONE
</parameter_description>
</parameter>
<parameter name="GTK_BORDER_STYLE_SOLID">
<parameter_description> A single line segment
</parameter_description>
</parameter>
<parameter name="GTK_BORDER_STYLE_INSET">
<parameter_description> Looks as if the content is sunken into the canvas
</parameter_description>
</parameter>
<parameter name="GTK_BORDER_STYLE_OUTSET">
<parameter_description> Looks as if the content is coming out of the canvas
</parameter_description>
</parameter>
<parameter name="GTK_BORDER_STYLE_DOTTED">
<parameter_description> A series of round dots
</parameter_description>
</parameter>
<parameter name="GTK_BORDER_STYLE_DASHED">
<parameter_description> A series of square-ended dashes
</parameter_description>
</parameter>
<parameter name="GTK_BORDER_STYLE_DOUBLE">
<parameter_description> Two parallel lines with some space between them
</parameter_description>
</parameter>
<parameter name="GTK_BORDER_STYLE_GROOVE">
<parameter_description> Looks as if it were carved in the canvas
</parameter_description>
</parameter>
<parameter name="GTK_BORDER_STYLE_RIDGE">
<parameter_description> Looks as if it were coming out of the canvas
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkBox:baseline-child">
<description>
The child that determines the baseline, in vertical orientation.

Since: 4.12

</description>
</property>

<property name="GtkBox:baseline-position">
<description>
The position of the baseline aligned widgets if extra space is available.

</description>
</property>

<property name="GtkBox:homogeneous">
<description>
Whether the children should all be the same size.

</description>
</property>

<property name="GtkBox:spacing">
<description>
The amount of space between children.

</description>
</property>

<property name="GtkBoxLayout:baseline-child">
<description>
The child that determines the baseline of the box
in vertical layout.

If the child does baseline positioning, then its baseline
is lined up with the baseline of the box. If it doesn't, then
the bottom edge of the child is used.

Since: 4.12

</description>
</property>

<property name="GtkBoxLayout:baseline-position">
<description>
The position of the allocated baseline within the extra space
allocated to each child.

This property is only relevant for horizontal layouts containing
at least one child with a baseline alignment.

</description>
</property>

<property name="GtkBoxLayout:homogeneous">
<description>
Whether the box layout should distribute the available space
equally among the children.

</description>
</property>

<property name="GtkBoxLayout:spacing">
<description>
The space to put between the children.

</description>
</property>

<property name="GtkBuilder:current-object">
<description>
The object the builder is evaluating for.

</description>
</property>

<property name="GtkBuilder:scope">
<description>
The scope the builder is operating in

</description>
</property>

<property name="GtkBuilder:translation-domain">
<description>
The translation domain used when translating property values that
have been marked as translatable.

If the translation domain is %NULL, `GtkBuilder` uses gettext(),
otherwise g_dgettext().

</description>
</property>

<enum name="GtkBuilderClosureFlags">
<description>
The list of flags that can be passed to gtk_builder_create_closure().

New values may be added in the future for new features, so external
implementations of [iface@Gtk.BuilderScope] should test the flags
for unknown values and raise a %GTK_BUILDER_ERROR_INVALID_ATTRIBUTE error
when they encounter one.

</description>
<parameters>
<parameter name="GTK_BUILDER_CLOSURE_SWAPPED">
<parameter_description> The closure should be created swapped. See
g_cclosure_new_swap() for details.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkBuilderError">
<description>
Error codes that identify various errors that can occur while using
`GtkBuilder`.

</description>
<parameters>
<parameter name="GTK_BUILDER_ERROR_INVALID_TYPE_FUNCTION">
<parameter_description> A type-func attribute didn’t name
a function that returns a `GType`.
</parameter_description>
</parameter>
<parameter name="GTK_BUILDER_ERROR_UNHANDLED_TAG">
<parameter_description> The input contained a tag that `GtkBuilder`
can’t handle.
</parameter_description>
</parameter>
<parameter name="GTK_BUILDER_ERROR_MISSING_ATTRIBUTE">
<parameter_description> An attribute that is required by
`GtkBuilder` was missing.
</parameter_description>
</parameter>
<parameter name="GTK_BUILDER_ERROR_INVALID_ATTRIBUTE">
<parameter_description> `GtkBuilder` found an attribute that
it doesn’t understand.
</parameter_description>
</parameter>
<parameter name="GTK_BUILDER_ERROR_INVALID_TAG">
<parameter_description> `GtkBuilder` found a tag that
it doesn’t understand.
</parameter_description>
</parameter>
<parameter name="GTK_BUILDER_ERROR_MISSING_PROPERTY_VALUE">
<parameter_description> A required property value was
missing.
</parameter_description>
</parameter>
<parameter name="GTK_BUILDER_ERROR_INVALID_VALUE">
<parameter_description> `GtkBuilder` couldn’t parse
some attribute value.
</parameter_description>
</parameter>
<parameter name="GTK_BUILDER_ERROR_VERSION_MISMATCH">
<parameter_description> The input file requires a newer version
of GTK.
</parameter_description>
</parameter>
<parameter name="GTK_BUILDER_ERROR_DUPLICATE_ID">
<parameter_description> An object id occurred twice.
</parameter_description>
</parameter>
<parameter name="GTK_BUILDER_ERROR_OBJECT_TYPE_REFUSED">
<parameter_description> A specified object type is of the same type or
derived from the type of the composite class being extended with builder XML.
</parameter_description>
</parameter>
<parameter name="GTK_BUILDER_ERROR_TEMPLATE_MISMATCH">
<parameter_description> The wrong type was specified in a composite class’s template XML
</parameter_description>
</parameter>
<parameter name="GTK_BUILDER_ERROR_INVALID_PROPERTY">
<parameter_description> The specified property is unknown for the object class.
</parameter_description>
</parameter>
<parameter name="GTK_BUILDER_ERROR_INVALID_SIGNAL">
<parameter_description> The specified signal is unknown for the object class.
</parameter_description>
</parameter>
<parameter name="GTK_BUILDER_ERROR_INVALID_ID">
<parameter_description> An object id is unknown.
</parameter_description>
</parameter>
<parameter name="GTK_BUILDER_ERROR_INVALID_FUNCTION">
<parameter_description> A function could not be found. This often happens
when symbols are set to be kept private. Compiling code with -rdynamic or using the
`gmodule-export-2.0` pkgconfig module can fix this problem.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkBuilderListItemFactory:bytes">
<description>
`GBytes` containing the UI definition.

</description>
</property>

<property name="GtkBuilderListItemFactory:resource">
<description>
Path of the resource containing the UI definition.

</description>
</property>

<property name="GtkBuilderListItemFactory:scope">
<description>
`GtkBuilderScope` to use when instantiating listitems

</description>
</property>

<signal name="GtkButton::activate">
<description>
Emitted to animate press then release.

This is an action signal. Applications should never connect
to this signal, but use the [signal@Gtk.Button::clicked] signal.

The default bindings for this signal are all forms of the
&lt;kbd&gt;␣&lt;/kbd&gt; and &lt;kbd&gt;Enter&lt;/kbd&gt; keys.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkButton::clicked">
<description>
Emitted when the button has been activated (pressed and released).

</description>
<parameters>
<parameter name="button">
<parameter_description> the object that received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkButton:can-shrink">
<description>
Whether the size of the button can be made smaller than the natural
size of its contents.

For text buttons, setting this property will allow ellipsizing the label.

If the contents of a button are an icon or a custom widget, setting this
property has no effect.

Since: 4.12

</description>
</property>

<property name="GtkButton:child">
<description>
The child widget.

</description>
</property>

<property name="GtkButton:has-frame">
<description>
Whether the button has a frame.

</description>
</property>

<property name="GtkButton:icon-name">
<description>
The name of the icon used to automatically populate the button.

</description>
</property>

<property name="GtkButton:label">
<description>
Text of the label inside the button, if the button contains a label widget.

</description>
</property>

<property name="GtkButton:use-underline">
<description>
If set, an underline in the text indicates that the following character is
to be used as mnemonic.

</description>
</property>

<enum name="GtkButtonRole">
<description>
The role specifies the desired appearance of a GtkModelButton.

</description>
<parameters>
<parameter name="GTK_BUTTON_ROLE_NORMAL">
<parameter_description> A plain button
</parameter_description>
</parameter>
<parameter name="GTK_BUTTON_ROLE_CHECK">
<parameter_description> A check button
</parameter_description>
</parameter>
<parameter name="GTK_BUTTON_ROLE_RADIO">
<parameter_description> A radio button
</parameter_description>
</parameter>
<parameter name="GTK_BUTTON_ROLE_TITLE">
<parameter_description> The title for a submenu
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkButtonsType">
<description>
Prebuilt sets of buttons for `GtkDialog`.

If none of these choices are appropriate, simply use
%GTK_BUTTONS_NONE and call [method@Gtk.Dialog.add_buttons].

&gt; Please note that %GTK_BUTTONS_OK, %GTK_BUTTONS_YES_NO
&gt; and %GTK_BUTTONS_OK_CANCEL are discouraged by the
&gt; [GNOME Human Interface Guidelines](http://library.gnome.org/devel/hig-book/stable/).

</description>
<parameters>
<parameter name="GTK_BUTTONS_NONE">
<parameter_description> no buttons at all
</parameter_description>
</parameter>
<parameter name="GTK_BUTTONS_OK">
<parameter_description> an OK button
</parameter_description>
</parameter>
<parameter name="GTK_BUTTONS_CLOSE">
<parameter_description> a Close button
</parameter_description>
</parameter>
<parameter name="GTK_BUTTONS_CANCEL">
<parameter_description> a Cancel button
</parameter_description>
</parameter>
<parameter name="GTK_BUTTONS_YES_NO">
<parameter_description> Yes and No buttons
</parameter_description>
</parameter>
<parameter name="GTK_BUTTONS_OK_CANCEL">
<parameter_description> OK and Cancel buttons
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkCalendar::day-selected">
<description>
Emitted when the user selects a day.

</description>
<parameters>
<parameter name="calendar">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkCalendar::next-month">
<description>
Emitted when the user switched to the next month.

</description>
<parameters>
<parameter name="calendar">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkCalendar::next-year">
<description>
Emitted when user switched to the next year.

</description>
<parameters>
<parameter name="calendar">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkCalendar::prev-month">
<description>
Emitted when the user switched to the previous month.

</description>
<parameters>
<parameter name="calendar">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkCalendar::prev-year">
<description>
Emitted when user switched to the previous year.

</description>
<parameters>
<parameter name="calendar">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkCalendar:day">
<description>
The selected day (as a number between 1 and 31).

</description>
</property>

<property name="GtkCalendar:month">
<description>
The selected month (as a number between 0 and 11).

This property gets initially set to the current month.

</description>
</property>

<property name="GtkCalendar:show-day-names">
<description>
Determines whether day names are displayed.

</description>
</property>

<property name="GtkCalendar:show-heading">
<description>
Determines whether a heading is displayed.

</description>
</property>

<property name="GtkCalendar:show-week-numbers">
<description>
Determines whether week numbers are displayed.

</description>
</property>

<property name="GtkCalendar:year">
<description>
The selected year.

This property gets initially set to the current year.

</description>
</property>

<signal name="GtkCellArea::add-editable">
<description>
Indicates that editing has started on @renderer and that @editable
should be added to the owning cell-layouting widget at @cell_area.

</description>
<parameters>
<parameter name="area">
<parameter_description> the `GtkCellArea` where editing started
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` that started the edited
</parameter_description>
</parameter>
<parameter name="editable">
<parameter_description> the `GtkCellEditable` widget to add
</parameter_description>
</parameter>
<parameter name="cell_area">
<parameter_description> the `GtkWidget` relative `GdkRectangle` coordinates
where @editable should be added
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> the `GtkTreePath` string this edit was initiated for
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkCellArea::apply-attributes">
<description>
This signal is emitted whenever applying attributes to @area from @model

</description>
<parameters>
<parameter name="area">
<parameter_description> the `GtkCellArea` to apply the attributes to
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> the `GtkTreeModel` to apply the attributes from
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the `GtkTreeIter` indicating which row to apply the attributes of
</parameter_description>
</parameter>
<parameter name="is_expander">
<parameter_description> whether the view shows children for this row
</parameter_description>
</parameter>
<parameter name="is_expanded">
<parameter_description> whether the view is currently showing the children of this row
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkCellArea::focus-changed">
<description>
Indicates that focus changed on this @area. This signal
is emitted either as a result of focus handling or event
handling.

It's possible that the signal is emitted even if the
currently focused renderer did not change, this is
because focus may change to the same renderer in the
same cell area for a different row of data.

</description>
<parameters>
<parameter name="area">
<parameter_description> the `GtkCellArea` where focus changed
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` that has focus
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> the current `GtkTreePath` string set for @area
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkCellArea::remove-editable">
<description>
Indicates that editing finished on @renderer and that @editable
should be removed from the owning cell-layouting widget.

</description>
<parameters>
<parameter name="area">
<parameter_description> the `GtkCellArea` where editing finished
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` that finished editeding
</parameter_description>
</parameter>
<parameter name="editable">
<parameter_description> the `GtkCellEditable` widget to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkCellArea:edit-widget">
<description>
The widget currently editing the edited cell

This property is read-only and only changes as
a result of a call gtk_cell_area_activate_cell().

</description>
</property>

<property name="GtkCellArea:edited-cell">
<description>
The cell in the area that is currently edited

This property is read-only and only changes as
a result of a call gtk_cell_area_activate_cell().

</description>
</property>

<property name="GtkCellArea:focus-cell">
<description>
The cell in the area that currently has focus

</description>
</property>

<property name="GtkCellAreaBox:align">
<description>
Whether the cell renderer should be aligned in adjacent rows.

</description>
</property>

<property name="GtkCellAreaBox:expand">
<description>
Whether the cell renderer should receive extra space
when the area receives more than its natural size.

</description>
</property>

<property name="GtkCellAreaBox:fixed-size">
<description>
Whether the cell renderer should require the same size
for all rows for which it was requested.

</description>
</property>

<property name="GtkCellAreaBox:pack-type">
<description>
A GtkPackType indicating whether the cell renderer is packed
with reference to the start or end of the area.

</description>
</property>

<property name="GtkCellAreaBox:spacing">
<description>
The amount of space to reserve between cells.

</description>
</property>

<property name="GtkCellAreaContext:area">
<description>
The `GtkCellArea` this context was created by

Deprecated: 4.10: This object will be removed in GTK 5

</description>
</property>

<property name="GtkCellAreaContext:minimum-height">
<description>
The minimum height for the `GtkCellArea` in this context
for all `GtkTreeModel` rows that this context was requested
for using gtk_cell_area_get_preferred_height().

Deprecated: 4.10: This object will be removed in GTK 5

</description>
</property>

<property name="GtkCellAreaContext:minimum-width">
<description>
The minimum width for the `GtkCellArea` in this context
for all `GtkTreeModel` rows that this context was requested
for using gtk_cell_area_get_preferred_width().

Deprecated: 4.10: This object will be removed in GTK 5

</description>
</property>

<property name="GtkCellAreaContext:natural-height">
<description>
The natural height for the `GtkCellArea` in this context
for all `GtkTreeModel` rows that this context was requested
for using gtk_cell_area_get_preferred_height().

Deprecated: 4.10: This object will be removed in GTK 5

</description>
</property>

<property name="GtkCellAreaContext:natural-width">
<description>
The natural width for the `GtkCellArea` in this context
for all `GtkTreeModel` rows that this context was requested
for using gtk_cell_area_get_preferred_width().

Deprecated: 4.10: This object will be removed in GTK 5

</description>
</property>

<signal name="GtkCellEditable::editing-done">
<description>
This signal is a sign for the cell renderer to update its
value from the @cell_editable.

Implementations of `GtkCellEditable` are responsible for
emitting this signal when they are done editing, e.g.
`GtkEntry` emits this signal when the user presses Enter. Typical things to
do in a handler for ::editing-done are to capture the edited value,
disconnect the @cell_editable from signals on the `GtkCellRenderer`, etc.

gtk_cell_editable_editing_done() is a convenience method
for emitting `GtkCellEditable::editing-done`.

</description>
<parameters>
<parameter name="cell_editable">
<parameter_description> the object on which the signal was emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkCellEditable::remove-widget">
<description>
This signal is meant to indicate that the cell is finished
editing, and the @cell_editable widget is being removed and may
subsequently be destroyed.

Implementations of `GtkCellEditable` are responsible for
emitting this signal when they are done editing. It must
be emitted after the `GtkCellEditable::editing-done` signal,
to give the cell renderer a chance to update the cell's value
before the widget is removed.

gtk_cell_editable_remove_widget() is a convenience method
for emitting `GtkCellEditable::remove-widget`.

</description>
<parameters>
<parameter name="cell_editable">
<parameter_description> the object on which the signal was emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkCellEditable:editing-canceled">
<description>
Indicates whether editing on the cell has been canceled.

</description>
</property>

<signal name="GtkCellRenderer::editing-canceled">
<description>
This signal gets emitted when the user cancels the process of editing a
cell.  For example, an editable cell renderer could be written to cancel
editing when the user presses Escape.

See also: gtk_cell_renderer_stop_editing().

</description>
<parameters>
<parameter name="renderer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkCellRenderer::editing-started">
<description>
This signal gets emitted when a cell starts to be edited.
The intended use of this signal is to do special setup
on @editable, e.g. adding a `GtkEntryCompletion` or setting
up additional columns in a `GtkComboBox`.

See gtk_cell_editable_start_editing() for information on the lifecycle of
the @editable and a way to do setup that doesn’t depend on the @renderer.

Note that GTK doesn't guarantee that cell renderers will
continue to use the same kind of widget for editing in future
releases, therefore you should check the type of @editable
before doing any specific setup, as in the following example:
|[&lt;!-- language=&quot;C&quot; --&gt;
static void
text_editing_started (GtkCellRenderer *cell,
GtkCellEditable *editable,
const char      *path,
gpointer         data)
{
if (GTK_IS_ENTRY (editable))
{
GtkEntry *entry = GTK_ENTRY (editable);

// ... create a GtkEntryCompletion

gtk_entry_set_completion (entry, completion);
}
}
]|

</description>
<parameters>
<parameter name="renderer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="editable">
<parameter_description> the `GtkCellEditable`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> the path identifying the edited cell
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkCellRenderer:cell-background-rgba">
<description>
Cell background as a `GdkRGBA`

</description>
</property>

<signal name="GtkCellRendererAccel::accel-cleared">
<description>
Gets emitted when the user has removed the accelerator.

</description>
<parameters>
<parameter name="accel">
<parameter_description> the object reveiving the signal
</parameter_description>
</parameter>
<parameter name="path_string">
<parameter_description> the path identifying the row of the edited cell
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkCellRendererAccel::accel-edited">
<description>
Gets emitted when the user has selected a new accelerator.

</description>
<parameters>
<parameter name="accel">
<parameter_description> the object reveiving the signal
</parameter_description>
</parameter>
<parameter name="path_string">
<parameter_description> the path identifying the row of the edited cell
</parameter_description>
</parameter>
<parameter name="accel_key">
<parameter_description> the new accelerator keyval
</parameter_description>
</parameter>
<parameter name="accel_mods">
<parameter_description> the new acclerator modifier mask
</parameter_description>
</parameter>
<parameter name="hardware_keycode">
<parameter_description> the keycode of the new accelerator
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkCellRendererAccel:accel-key">
<description>
The keyval of the accelerator.

</description>
</property>

<property name="GtkCellRendererAccel:accel-mode">
<description>
Determines if the edited accelerators are GTK accelerators. If
they are, consumed modifiers are suppressed, only accelerators
accepted by GTK are allowed, and the accelerators are rendered
in the same way as they are in menus.

</description>
</property>

<property name="GtkCellRendererAccel:accel-mods">
<description>
The modifier mask of the accelerator.

</description>
</property>

<property name="GtkCellRendererAccel:keycode">
<description>
The hardware keycode of the accelerator. Note that the hardware keycode is
only relevant if the key does not have a keyval. Normally, the keyboard
configuration should assign keyvals to all keys.

</description>
</property>

<enum name="GtkCellRendererAccelMode">
<description>
The available modes for [property@Gtk.CellRendererAccel:accel-mode].

</description>
<parameters>
<parameter name="GTK_CELL_RENDERER_ACCEL_MODE_GTK">
<parameter_description> GTK accelerators mode
</parameter_description>
</parameter>
<parameter name="GTK_CELL_RENDERER_ACCEL_MODE_OTHER">
<parameter_description> Other accelerator mode
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkCellRendererCombo::changed">
<description>
This signal is emitted each time after the user selected an item in
the combo box, either by using the mouse or the arrow keys.  Contrary
to GtkComboBox, GtkCellRendererCombo::changed is not emitted for
changes made to a selected item in the entry.  The argument @new_iter
corresponds to the newly selected item in the combo box and it is relative
to the GtkTreeModel set via the model property on GtkCellRendererCombo.

Note that as soon as you change the model displayed in the tree view,
the tree view will immediately cease the editing operating.  This
means that you most probably want to refrain from changing the model
until the combo cell renderer emits the edited or editing_canceled signal.

</description>
<parameters>
<parameter name="combo">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="path_string">
<parameter_description> a string of the path identifying the edited cell
(relative to the tree view model)
</parameter_description>
</parameter>
<parameter name="new_iter">
<parameter_description> the new iter selected in the combo box
(relative to the combo box model)
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkCellRendererCombo:has-entry">
<description>
If %TRUE, the cell renderer will include an entry and allow to enter
values other than the ones in the popup list.

</description>
</property>

<property name="GtkCellRendererCombo:model">
<description>
Holds a tree model containing the possible values for the combo box.
Use the text_column property to specify the column holding the values.

</description>
</property>

<property name="GtkCellRendererCombo:text-column">
<description>
Specifies the model column which holds the possible values for the
combo box.

Note that this refers to the model specified in the model property,
not the model backing the tree view to which
this cell renderer is attached.

`GtkCellRendererCombo` automatically adds a text cell renderer for
this column to its combo box.

</description>
</property>

<enum name="GtkCellRendererMode">
<description>
Identifies how the user can interact with a particular cell.

</description>
<parameters>
<parameter name="GTK_CELL_RENDERER_MODE_INERT">
<parameter_description> The cell is just for display
and cannot be interacted with.  Note that this doesn’t mean that eg. the
row being drawn can’t be selected -- just that a particular element of
it cannot be individually modified.
</parameter_description>
</parameter>
<parameter name="GTK_CELL_RENDERER_MODE_ACTIVATABLE">
<parameter_description> The cell can be clicked.
</parameter_description>
</parameter>
<parameter name="GTK_CELL_RENDERER_MODE_EDITABLE">
<parameter_description> The cell can be edited or otherwise modified.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkCellRendererPixbuf:gicon">
<description>
The GIcon representing the icon to display.
If the icon theme is changed, the image will be updated
automatically.

</description>
</property>

<property name="GtkCellRendererPixbuf:icon-name">
<description>
The name of the themed icon to display.
This property only has an effect if not overridden by the &quot;pixbuf&quot; property.

</description>
</property>

<property name="GtkCellRendererPixbuf:icon-size">
<description>
The `GtkIconSize` value that specifies the size of the rendered icon.

</description>
</property>

<property name="GtkCellRendererPixbuf:texture">
<description>

</description>
</property>

<property name="GtkCellRendererProgress:pulse">
<description>
Setting this to a non-negative value causes the cell renderer to
enter &quot;activity mode&quot;, where a block bounces back and forth to
indicate that some progress is made, without specifying exactly how
much.

Each increment of the property causes the block to move by a little
bit.

To indicate that the activity has not started yet, set the property
to zero. To indicate completion, set the property to %G_MAXINT.

</description>
</property>

<property name="GtkCellRendererProgress:text">
<description>
The &quot;text&quot; property determines the label which will be drawn
over the progress bar. Setting this property to %NULL causes the default
label to be displayed. Setting this property to an empty string causes
no label to be displayed.

</description>
</property>

<property name="GtkCellRendererProgress:text-xalign">
<description>
The &quot;text-xalign&quot; property controls the horizontal alignment of the
text in the progress bar.  Valid values range from 0 (left) to 1
(right).  Reserved for RTL layouts.

</description>
</property>

<property name="GtkCellRendererProgress:text-yalign">
<description>
The &quot;text-yalign&quot; property controls the vertical alignment of the
text in the progress bar.  Valid values range from 0 (top) to 1
(bottom).

</description>
</property>

<property name="GtkCellRendererProgress:value">
<description>
The &quot;value&quot; property determines the percentage to which the
progress bar will be &quot;filled in&quot;.

</description>
</property>

<property name="GtkCellRendererSpin:adjustment">
<description>
The adjustment that holds the value of the spinbutton.
This must be non-%NULL for the cell renderer to be editable.

</description>
</property>

<property name="GtkCellRendererSpin:climb-rate">
<description>
The acceleration rate when you hold down a button.

</description>
</property>

<property name="GtkCellRendererSpin:digits">
<description>
The number of decimal places to display.

</description>
</property>

<property name="GtkCellRendererSpinner:pulse">
<description>
Pulse of the spinner. Increment this value to draw the next frame of the
spinner animation. Usually, you would update this value in a timeout.

By default, the `GtkSpinner` widget draws one full cycle of the animation,
consisting of 12 frames, in 750 milliseconds.

</description>
</property>

<property name="GtkCellRendererSpinner:size">
<description>
The `GtkIconSize` value that specifies the size of the rendered spinner.

</description>
</property>

<enum name="GtkCellRendererState">
<description>
Tells how a cell is to be rendered.

</description>
<parameters>
<parameter name="GTK_CELL_RENDERER_SELECTED">
<parameter_description> The cell is currently selected, and
probably has a selection colored background to render to.
</parameter_description>
</parameter>
<parameter name="GTK_CELL_RENDERER_PRELIT">
<parameter_description> The mouse is hovering over the cell.
</parameter_description>
</parameter>
<parameter name="GTK_CELL_RENDERER_INSENSITIVE">
<parameter_description> The cell is drawn in an insensitive manner
</parameter_description>
</parameter>
<parameter name="GTK_CELL_RENDERER_SORTED">
<parameter_description> The cell is in a sorted row
</parameter_description>
</parameter>
<parameter name="GTK_CELL_RENDERER_FOCUSED">
<parameter_description> The cell is in the focus row.
</parameter_description>
</parameter>
<parameter name="GTK_CELL_RENDERER_EXPANDABLE">
<parameter_description> The cell is in a row that can be expanded
</parameter_description>
</parameter>
<parameter name="GTK_CELL_RENDERER_EXPANDED">
<parameter_description> The cell is in a row that is expanded
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkCellRendererText::edited">
<description>
This signal is emitted after @renderer has been edited.

It is the responsibility of the application to update the model
and store @new_text at the position indicated by @path.

</description>
<parameters>
<parameter name="renderer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> the path identifying the edited cell
</parameter_description>
</parameter>
<parameter name="new_text">
<parameter_description> the new text
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkCellRendererText:alignment">
<description>
Specifies how to align the lines of text with respect to each other.

Note that this property describes how to align the lines of text in
case there are several of them. The &quot;xalign&quot; property of `GtkCellRenderer`,
on the other hand, sets the horizontal alignment of the whole text.

</description>
</property>

<property name="GtkCellRendererText:background-rgba">
<description>
Background color as a `GdkRGBA`

</description>
</property>

<property name="GtkCellRendererText:ellipsize">
<description>
Specifies the preferred place to ellipsize the string, if the cell renderer
does not have enough room to display the entire string. Setting it to
%PANGO_ELLIPSIZE_NONE turns off ellipsizing. See the wrap-width property
for another way of making the text fit into a given width.

</description>
</property>

<property name="GtkCellRendererText:foreground-rgba">
<description>
Foreground color as a `GdkRGBA`

</description>
</property>

<property name="GtkCellRendererText:max-width-chars">
<description>
The desired maximum width of the cell, in characters. If this property
is set to -1, the width will be calculated automatically.

For cell renderers that ellipsize or wrap text; this property
controls the maximum reported width of the cell. The
cell should not receive any greater allocation unless it is
set to expand in its `GtkCellLayout` and all of the cell's siblings
have received their natural width.

</description>
</property>

<property name="GtkCellRendererText:placeholder-text">
<description>
The text that will be displayed in the `GtkCellRenderer` if
`GtkCellRendererText:editable` is %TRUE and the cell is empty.

</description>
</property>

<property name="GtkCellRendererText:width-chars">
<description>
The desired width of the cell, in characters. If this property is set to
-1, the width will be calculated automatically, otherwise the cell will
request either 3 characters or the property value, whichever is greater.

</description>
</property>

<property name="GtkCellRendererText:wrap-mode">
<description>
Specifies how to break the string into multiple lines, if the cell
renderer does not have enough room to display the entire string.
This property has no effect unless the wrap-width property is set.

</description>
</property>

<property name="GtkCellRendererText:wrap-width">
<description>
Specifies the minimum width at which the text is wrapped. The wrap-mode property can
be used to influence at what character positions the line breaks can be placed.
Setting wrap-width to -1 turns wrapping off.

</description>
</property>

<signal name="GtkCellRendererToggle::toggled">
<description>
The ::toggled signal is emitted when the cell is toggled.

It is the responsibility of the application to update the model
with the correct value to store at @path.  Often this is simply the
opposite of the value currently stored at @path.

</description>
<parameters>
<parameter name="cell_renderer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> string representation of `GtkTreePath` describing the
event location
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkCellView:cell-area">
<description>
The `GtkCellArea` rendering cells

If no area is specified when creating the cell view with gtk_cell_view_new_with_context()
a horizontally oriented `GtkCellArea`Box will be used.

since 3.0

</description>
</property>

<property name="GtkCellView:cell-area-context">
<description>
The `GtkCellAreaContext` used to compute the geometry of the cell view.

A group of cell views can be assigned the same context in order to
ensure the sizes and cell alignments match across all the views with
the same context.

`GtkComboBox` menus uses this to assign the same context to all cell views
in the menu items for a single menu (each submenu creates its own
context since the size of each submenu does not depend on parent
or sibling menus).

since 3.0

</description>
</property>

<property name="GtkCellView:draw-sensitive">
<description>
Whether all cells should be draw as sensitive for this view regardless
of the actual cell properties (used to make menus with submenus appear
sensitive when the items in submenus might be insensitive).

since 3.0

</description>
</property>

<property name="GtkCellView:fit-model">
<description>
Whether the view should request enough space to always fit
the size of every row in the model (used by the combo box to
ensure the combo box size doesn't change when different items
are selected).

since 3.0

</description>
</property>

<property name="GtkCellView:model">
<description>
The model for cell view

since 2.10

</description>
</property>

<property name="GtkCenterBox:baseline-position">
<description>
The position of the baseline aligned widget if extra space is available.

</description>
</property>

<property name="GtkCenterBox:center-widget">
<description>
The widget that is placed at the center position.

Since: 4.10

</description>
</property>

<property name="GtkCenterBox:end-widget">
<description>
The widget that is placed at the end position.

In vertical orientation, the end position is at the bottom.
In horizontal orientation, the end position is at the trailing
edge wrt. to the text direction.

Since: 4.10

</description>
</property>

<property name="GtkCenterBox:shrink-center-last">
<description>
Whether to shrink the center widget after other children.

By default, when there's no space to give all three children their
natural widths, the start and end widgets start shrinking and the
center child keeps natural width until they reach minimum width.

If set to `FALSE`, start and end widgets keep natural width and the
center widget starts shrinking instead.

Since: 4.12

</description>
</property>

<property name="GtkCenterBox:start-widget">
<description>
The widget that is placed at the start position.

In vertical orientation, the start position is at the top.
In horizontal orientation, the start position is at the leading
edge wrt. to the text direction.

Since: 4.10

</description>
</property>

<property name="GtkCenterLayout:shrink-center-last">
<description>
Whether to shrink the center widget after other children.

By default, when there's no space to give all three children their
natural widths, the start and end widgets start shrinking and the
center child keeps natural width until they reach minimum width.

If set to `FALSE`, start and end widgets keep natural width and the
center widget starts shrinking instead.

Since: 4.12

</description>
</property>

<signal name="GtkCheckButton::activate">
<description>
Emitted to when the check button is activated.

The `::activate` signal on `GtkCheckButton` is an action signal and
emitting it causes the button to animate press then release.

Applications should never connect to this signal, but use the
[signal@Gtk.CheckButton::toggled] signal.

The default bindings for this signal are all forms of the
&lt;kbd&gt;␣&lt;/kbd&gt; and &lt;kbd&gt;Enter&lt;/kbd&gt; keys.

Since: 4.2

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkCheckButton::toggled">
<description>
Emitted when the buttons's [property@Gtk.CheckButton:active]
property changes.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<property name="GtkCheckButton:active">
<description>
If the check button is active.

Setting `active` to %TRUE will add the `:checked:` state to both
the check button and the indicator CSS node.

</description>
</property>

<property name="GtkCheckButton:child">
<description>
The child widget.

Since: 4.8

</description>
</property>

<property name="GtkCheckButton:group">
<description>
The check button whose group this widget belongs to.

</description>
</property>

<property name="GtkCheckButton:inconsistent">
<description>
If the check button is in an “in between” state.

The inconsistent state only affects visual appearance,
not the semantics of the button.

</description>
</property>

<property name="GtkCheckButton:label">
<description>
Text of the label inside the check button, if it contains a label widget.

</description>
</property>

<property name="GtkCheckButton:use-underline">
<description>
If set, an underline in the text indicates that the following
character is to be used as mnemonic.

</description>
</property>

<enum name="GtkCollation">
<description>
Describes how a [class@Gtk.StringSorter] turns strings into sort keys to
compare them.

Note that the result of sorting will in general depend on the current locale
unless the mode is @GTK_COLLATION_NONE.

Since: 4.10

</description>
<parameters>
<parameter name="GTK_COLLATION_NONE">
<parameter_description> Don't do any collation
</parameter_description>
</parameter>
<parameter name="GTK_COLLATION_UNICODE">
<parameter_description> Use [func@GLib.utf8_collate_key]
</parameter_description>
</parameter>
<parameter name="GTK_COLLATION_FILENAME">
<parameter_description> Use [func@GLib.utf8_collate_key_for_filename]
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkColorButton::activate">
<description>
Emitted to when the color button is activated.

The `::activate` signal on `GtkMenuButton` is an action signal and
emitting it causes the button to pop up its dialog.

Since: 4.4

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkColorButton::color-set">
<description>
Emitted when the user selects a color.

When handling this signal, use [method@Gtk.ColorChooser.get_rgba]
to find out which color was just selected.

Note that this signal is only emitted when the user changes the color.
If you need to react to programmatic color changes as well, use
the notify::rgba signal.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkColorButton:modal">
<description>
Whether the color chooser dialog should be modal.

</description>
</property>

<property name="GtkColorButton:show-editor">
<description>
Whether the color chooser should open in editor mode.

This property should be used in cases where the palette
in the editor would be redundant, such as when the color
button is already part of a palette.

</description>
</property>

<property name="GtkColorButton:title">
<description>
The title of the color chooser dialog

</description>
</property>

<signal name="GtkColorChooser::color-activated">
<description>
Emitted when a color is activated from the color chooser.

This usually happens when the user clicks a color swatch,
or a color is selected and the user presses one of the keys
Space, Shift+Space, Return or Enter.

Deprecated: 4.10: Use [class@Gtk.ColorDialog] and [class@Gtk.ColorDialogButton]
instead of widgets implementing `GtkColorChooser`

</description>
<parameters>
<parameter name="chooser">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="color">
<parameter_description> the color
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkColorChooser:rgba">
<description>
The currently selected color, as a `GdkRGBA` struct.

The property can be set to change the current selection
programmatically.

Deprecated: 4.10: Use [class@Gtk.ColorDialog] and [class@Gtk.ColorDialogButton]
instead of widgets implementing `GtkColorChooser`

</description>
</property>

<property name="GtkColorChooser:use-alpha">
<description>
Whether colors may have alpha (translucency).

When ::use-alpha is %FALSE, the `GdkRGBA` struct obtained
via the [property@Gtk.ColorChooser:rgba] property will be
forced to have alpha == 1.

Implementations are expected to show alpha by rendering the color
over a non-uniform background (like a checkerboard pattern).

Deprecated: 4.10: Use [class@Gtk.ColorDialog] and [class@Gtk.ColorDialogButton]
instead of widgets implementing `GtkColorChooser`

</description>
</property>

<property name="GtkColorChooserWidget:show-editor">
<description>
%TRUE when the color chooser is showing the single-color editor.

It can be set to switch the color chooser into single-color editing mode.

</description>
</property>

<property name="GtkColorDialog:modal">
<description>
Whether the color chooser dialog is modal.

Since: 4.10

</description>
</property>

<property name="GtkColorDialog:title">
<description>
A title that may be shown on the color chooser
dialog that is presented by [method@Gtk.ColorDialog.choose_rgba].

Since: 4.10

</description>
</property>

<property name="GtkColorDialog:with-alpha">
<description>
Whether colors may have alpha (translucency).

When with-alpha is %FALSE, the color that is selected
will be forced to have alpha == 1.

Since: 4.10

</description>
</property>

<signal name="GtkColorDialogButton::activate">
<description>
Emitted when the color dialog button is activated.

The `::activate` signal on `GtkColorDialogButton` is an action signal
and emitting it causes the button to pop up its dialog.

Since: 4.14

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkColorDialogButton:dialog">
<description>
The `GtkColorDialog` that contains parameters for
the color chooser dialog.

Since: 4.10

</description>
</property>

<property name="GtkColorDialogButton:rgba">
<description>
The selected color.

This property can be set to give the button its initial
color, and it will be updated to reflect the users choice
in the color chooser dialog.

Listen to `notify::rgba` to get informed about changes
to the buttons color.

Since: 4.10

</description>
</property>

<signal name="GtkColumnView::activate">
<description>
Emitted when a row has been activated by the user, usually via activating
the GtkListBase|list.activate-item action.

This allows for a convenient way to handle activation in a columnview.
See [method@Gtk.ListItem.set_activatable] for details on how to use this
signal.

</description>
<parameters>
<parameter name="self">
<parameter_description> The `GtkColumnView`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position of item to activate
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkColumnView:columns">
<description>
The list of columns.

</description>
</property>

<property name="GtkColumnView:enable-rubberband">
<description>
Allow rubberband selection.

</description>
</property>

<property name="GtkColumnView:header-factory">
<description>
Factory for creating header widgets.

Since: 4.12

</description>
</property>

<property name="GtkColumnView:model">
<description>
Model for the items displayed.

</description>
</property>

<property name="GtkColumnView:reorderable">
<description>
Whether columns are reorderable.

</description>
</property>

<property name="GtkColumnView:row-factory">
<description>
The factory used for configuring rows.

Since: 4.12

</description>
</property>

<property name="GtkColumnView:show-column-separators">
<description>
Show separators between columns.

</description>
</property>

<property name="GtkColumnView:show-row-separators">
<description>
Show separators between rows.

</description>
</property>

<property name="GtkColumnView:single-click-activate">
<description>
Activate rows on single click and select them on hover.

</description>
</property>

<property name="GtkColumnView:sorter">
<description>
Sorter with the sorting choices of the user.

</description>
</property>

<property name="GtkColumnView:tab-behavior">
<description>
Behavior of the &lt;kbd&gt;Tab&lt;/kbd&gt; key

Since: 4.12

</description>
</property>

<property name="GtkColumnViewCell:child">
<description>
Widget used for display.

Since: 4.12

</description>
</property>

<property name="GtkColumnViewCell:focusable">
<description>
If the item can be focused with the keyboard.

Since: 4.12

</description>
</property>

<property name="GtkColumnViewCell:item">
<description>
Displayed item.

Since: 4.12

</description>
</property>

<property name="GtkColumnViewCell:position">
<description>
Position of the item.

Since: 4.12

</description>
</property>

<property name="GtkColumnViewCell:selected">
<description>
If the item is currently selected.

Since: 4.12

</description>
</property>

<property name="GtkColumnViewColumn:column-view">
<description>
The `GtkColumnView` this column is a part of.

</description>
</property>

<property name="GtkColumnViewColumn:expand">
<description>
Column gets share of extra width allocated to the view.

</description>
</property>

<property name="GtkColumnViewColumn:factory">
<description>
Factory for populating list items.

</description>
</property>

<property name="GtkColumnViewColumn:fixed-width">
<description>
If not -1, this is the width that the column is allocated,
regardless of the size of its content.

</description>
</property>

<property name="GtkColumnViewColumn:header-menu">
<description>
Menu model used to create the context menu for the column header.

</description>
</property>

<property name="GtkColumnViewColumn:id">
<description>
An ID for the column.

GTK is not currently using the ID for anything, but
it can be used by applications when saving column view
configurations.

It is up to applications to ensure uniqueness of IDs.

Since: 4.10

</description>
</property>

<property name="GtkColumnViewColumn:resizable">
<description>
Whether this column is resizable.

</description>
</property>

<property name="GtkColumnViewColumn:sorter">
<description>
Sorter for sorting items according to this column.

</description>
</property>

<property name="GtkColumnViewColumn:title">
<description>
Title displayed in the header.

</description>
</property>

<property name="GtkColumnViewColumn:visible">
<description>
Whether this column is visible.

</description>
</property>

<property name="GtkColumnViewRow:accessible-description">
<description>
The accessible description to set on the row.

Since: 4.12

</description>
</property>

<property name="GtkColumnViewRow:accessible-label">
<description>
The accessible label to set on the row.

Since: 4.12

</description>
</property>

<property name="GtkColumnViewRow:activatable">
<description>
If the row can be activated by the user.

Since: 4.12

</description>
</property>

<property name="GtkColumnViewRow:focusable">
<description>
If the row can be focused with the keyboard.

Since: 4.12

</description>
</property>

<property name="GtkColumnViewRow:item">
<description>
The item for this row.

Since: 4.12

</description>
</property>

<property name="GtkColumnViewRow:position">
<description>
Position of the row.

Since: 4.12

</description>
</property>

<property name="GtkColumnViewRow:selectable">
<description>
If the row can be selected by the user.

Since: 4.12

</description>
</property>

<property name="GtkColumnViewRow:selected">
<description>
If the item in the row is currently selected.

Since: 4.12

</description>
</property>

<property name="GtkColumnViewSorter:primary-sort-column">
<description>
The primary sort column.

The primary sort column is the one that displays the triangle
in a column view header.

Since: 4.10

</description>
</property>

<property name="GtkColumnViewSorter:primary-sort-order">
<description>
The primary sort order.

The primary sort order determines whether the triangle displayed
in the column view header of the primary sort column points upwards
or downwards.

Since: 4.10

</description>
</property>

<signal name="GtkComboBox::activate">
<description>
Emitted to when the combo box is activated.

The `::activate` signal on `GtkComboBox` is an action signal and
emitting it causes the combo box to pop up its dropdown.

Since: 4.6

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkComboBox::changed">
<description>
Emitted when the active item is changed.

The can be due to the user selecting a different item from the list,
or due to a call to [method@Gtk.ComboBox.set_active_iter]. It will
also be emitted while typing into the entry of a combo box with an entry.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkComboBox::format-entry-text">
<description>
Emitted to allow changing how the text in a combo box's entry is displayed.

See [property@Gtk.ComboBox:has-entry].

Connect a signal handler which returns an allocated string representing
@path. That string will then be used to set the text in the combo box's
entry. The default signal handler uses the text from the
[property@Gtk.ComboBox:entry-text-column] model column.

Here's an example signal handler which fetches data from the model and
displays it in the entry.
```c
static char *
format_entry_text_callback (GtkComboBox *combo,
const char *path,
gpointer     user_data)
{
GtkTreeIter iter;
GtkTreeModel model;
double       value;

model = gtk_combo_box_get_model (combo);

gtk_tree_model_get_iter_from_string (model, &amp;iter, path);
gtk_tree_model_get (model, &amp;iter,
THE_DOUBLE_VALUE_COLUMN, &amp;value,
-1);

return g_strdup_printf (&quot;%g&quot;, value);
}
```


</description>
<parameters>
<parameter name="combo">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> the [struct@Gtk.TreePath] string from the combo box's current model
to format text for
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated string representing @path
for the current `GtkComboBox` model.
</return>
</signal>

<signal name="GtkComboBox::move-active">
<description>
Emitted to move the active selection.

This is an [keybinding signal](class.SignalAction.html).

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object that received the signal
</parameter_description>
</parameter>
<parameter name="scroll_type">
<parameter_description> a `GtkScrollType`
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkComboBox::popdown">
<description>
Emitted to popdown the combo box list.

This is an [keybinding signal](class.SignalAction.html).

The default bindings for this signal are Alt+Up and Escape.

</description>
<parameters>
<parameter name="button">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkComboBox::popup">
<description>
Emitted to popup the combo box list.

This is an [keybinding signal](class.SignalAction.html).

The default binding for this signal is Alt+Down.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object that received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkComboBox:active">
<description>
The item which is currently active.

If the model is a non-flat treemodel, and the active item is not an
immediate child of the root of the tree, this property has the value
`gtk_tree_path_get_indices (path)[0]`, where `path` is the
[struct@Gtk.TreePath] of the active item.

</description>
</property>

<property name="GtkComboBox:active-id">
<description>
The value of the ID column of the active row.

</description>
</property>

<property name="GtkComboBox:button-sensitivity">
<description>
Whether the dropdown button is sensitive when
the model is empty.

</description>
</property>

<property name="GtkComboBox:child">
<description>
The child widget.

</description>
</property>

<property name="GtkComboBox:entry-text-column">
<description>
The model column to associate with strings from the entry.

This is property only relevant if the combo was created with
[property@Gtk.ComboBox:has-entry] is %TRUE.

</description>
</property>

<property name="GtkComboBox:has-entry">
<description>
Whether the combo box has an entry.

</description>
</property>

<property name="GtkComboBox:has-frame">
<description>
The `has-frame` property controls whether a frame is drawn around the entry.

</description>
</property>

<property name="GtkComboBox:id-column">
<description>
The model column that provides string IDs for the values
in the model, if != -1.

</description>
</property>

<property name="GtkComboBox:model">
<description>
The model from which the combo box takes its values.

</description>
</property>

<property name="GtkComboBox:popup-fixed-width">
<description>
Whether the popup's width should be a fixed width matching the
allocated width of the combo box.

</description>
</property>

<property name="GtkComboBox:popup-shown">
<description>
Whether the combo boxes dropdown is popped up.

Note that this property is mainly useful, because
it allows you to connect to notify::popup-shown.

</description>
</property>

<property name="GtkConstraint:constant">
<description>
The constant value to be added to the [property@Gtk.Constraint:source-attribute].

</description>
</property>

<property name="GtkConstraint:multiplier">
<description>
The multiplication factor to be applied to
the [property@Gtk.Constraint:source-attribute].

</description>
</property>

<property name="GtkConstraint:relation">
<description>
The order relation between the terms of the constraint.

</description>
</property>

<property name="GtkConstraint:source">
<description>
The source of the constraint.

The constraint will set the [property@Gtk.Constraint:target-attribute]
property of the target using the [property@Gtk.Constraint:source-attribute]
property of the source.

</description>
</property>

<property name="GtkConstraint:source-attribute">
<description>
The attribute of the [property@Gtk.Constraint:source] read by the
constraint.

</description>
</property>

<property name="GtkConstraint:strength">
<description>
The strength of the constraint.

The strength can be expressed either using one of the symbolic values
of the [enum@Gtk.ConstraintStrength] enumeration, or any positive integer
value.

</description>
</property>

<property name="GtkConstraint:target">
<description>
The target of the constraint.

The constraint will set the [property@Gtk.Constraint:target-attribute]
property of the target using the [property@Gtk.Constraint:source-attribute]
property of the source widget.



</description>
</property>

<property name="GtkConstraint:target-attribute">
<description>
The attribute of the [property@Gtk.Constraint:target] set by the constraint.

</description>
</property>

<enum name="GtkConstraintAttribute">
<description>
The widget attributes that can be used when creating a [class@Constraint].

</description>
<parameters>
<parameter name="GTK_CONSTRAINT_ATTRIBUTE_NONE">
<parameter_description> No attribute, used for constant
relations
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_ATTRIBUTE_LEFT">
<parameter_description> The left edge of a widget, regardless of
text direction
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_ATTRIBUTE_RIGHT">
<parameter_description> The right edge of a widget, regardless
of text direction
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_ATTRIBUTE_TOP">
<parameter_description> The top edge of a widget
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_ATTRIBUTE_BOTTOM">
<parameter_description> The bottom edge of a widget
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_ATTRIBUTE_START">
<parameter_description> The leading edge of a widget, depending
on text direction; equivalent to %GTK_CONSTRAINT_ATTRIBUTE_LEFT for LTR
languages, and %GTK_CONSTRAINT_ATTRIBUTE_RIGHT for RTL ones
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_ATTRIBUTE_END">
<parameter_description> The trailing edge of a widget, depending
on text direction; equivalent to %GTK_CONSTRAINT_ATTRIBUTE_RIGHT for LTR
languages, and %GTK_CONSTRAINT_ATTRIBUTE_LEFT for RTL ones
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_ATTRIBUTE_WIDTH">
<parameter_description> The width of a widget
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_ATTRIBUTE_HEIGHT">
<parameter_description> The height of a widget
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_ATTRIBUTE_CENTER_X">
<parameter_description> The center of a widget, on the
horizontal axis
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_ATTRIBUTE_CENTER_Y">
<parameter_description> The center of a widget, on the
vertical axis
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_ATTRIBUTE_BASELINE">
<parameter_description> The baseline of a widget
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkConstraintGuide:max-height">
<description>
The maximum height of the guide.

</description>
</property>

<property name="GtkConstraintGuide:max-width">
<description>
The maximum width of the guide.

</description>
</property>

<property name="GtkConstraintGuide:min-height">
<description>
The minimum height of the guide.

</description>
</property>

<property name="GtkConstraintGuide:min-width">
<description>
The minimum width of the guide.

</description>
</property>

<property name="GtkConstraintGuide:name">
<description>
A name that identifies the `GtkConstraintGuide`, for debugging.

</description>
</property>

<property name="GtkConstraintGuide:nat-height">
<description>
The preferred, or natural, height of the guide.

</description>
</property>

<property name="GtkConstraintGuide:nat-width">
<description>
The preferred, or natural, width of the guide.

</description>
</property>

<property name="GtkConstraintGuide:strength">
<description>
The `GtkConstraintStrength` to be used for the constraint on
the natural size of the guide.

</description>
</property>

<enum name="GtkConstraintRelation">
<description>
The relation between two terms of a constraint.

</description>
<parameters>
<parameter name="GTK_CONSTRAINT_RELATION_EQ">
<parameter_description> Equal
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_RELATION_LE">
<parameter_description> Less than, or equal
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_RELATION_GE">
<parameter_description> Greater than, or equal
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkConstraintStrength">
<description>
The strength of a constraint, expressed as a symbolic constant.

The strength of a [class@Constraint] can be expressed with any positive
integer; the values of this enumeration can be used for readability.

</description>
<parameters>
<parameter name="GTK_CONSTRAINT_STRENGTH_REQUIRED">
<parameter_description> The constraint is required towards solving the layout
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_STRENGTH_STRONG">
<parameter_description> A strong constraint
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_STRENGTH_MEDIUM">
<parameter_description> A medium constraint
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_STRENGTH_WEAK">
<parameter_description> A weak constraint
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkConstraintVflParserError">
<description>
Domain for VFL parsing errors.

</description>
<parameters>
<parameter name="GTK_CONSTRAINT_VFL_PARSER_ERROR_INVALID_SYMBOL">
<parameter_description> Invalid or unknown symbol
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_VFL_PARSER_ERROR_INVALID_ATTRIBUTE">
<parameter_description> Invalid or unknown attribute
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_VFL_PARSER_ERROR_INVALID_VIEW">
<parameter_description> Invalid or unknown view
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_VFL_PARSER_ERROR_INVALID_METRIC">
<parameter_description> Invalid or unknown metric
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_VFL_PARSER_ERROR_INVALID_PRIORITY">
<parameter_description> Invalid or unknown priority
</parameter_description>
</parameter>
<parameter name="GTK_CONSTRAINT_VFL_PARSER_ERROR_INVALID_RELATION">
<parameter_description> Invalid or unknown relation
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkContentFit">
<description>
Controls how a content should be made to fit inside an allocation.

Since: 4.8

</description>
<parameters>
<parameter name="GTK_CONTENT_FIT_FILL">
<parameter_description> Make the content fill the entire allocation,
without taking its aspect ratio in consideration. The resulting
content will appear as stretched if its aspect ratio is different
from the allocation aspect ratio.
</parameter_description>
</parameter>
<parameter name="GTK_CONTENT_FIT_CONTAIN">
<parameter_description> Scale the content to fit the allocation,
while taking its aspect ratio in consideration. The resulting
content will appear as letterboxed if its aspect ratio is different
from the allocation aspect ratio.
</parameter_description>
</parameter>
<parameter name="GTK_CONTENT_FIT_COVER">
<parameter_description> Cover the entire allocation, while taking
the content aspect ratio in consideration. The resulting content
will appear as clipped if its aspect ratio is different from the
allocation aspect ratio.
</parameter_description>
</parameter>
<parameter name="GTK_CONTENT_FIT_SCALE_DOWN">
<parameter_description> The content is scaled down to fit the
allocation, if needed, otherwise its original size is used.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkCornerType">
<description>
Specifies which corner a child widget should be placed in when packed into
a `GtkScrolledWindow.`

This is effectively the opposite of where the scroll bars are placed.

</description>
<parameters>
<parameter name="GTK_CORNER_TOP_LEFT">
<parameter_description> Place the scrollbars on the right and bottom of the
widget (default behaviour).
</parameter_description>
</parameter>
<parameter name="GTK_CORNER_BOTTOM_LEFT">
<parameter_description> Place the scrollbars on the top and right of the
widget.
</parameter_description>
</parameter>
<parameter name="GTK_CORNER_TOP_RIGHT">
<parameter_description> Place the scrollbars on the left and bottom of the
widget.
</parameter_description>
</parameter>
<parameter name="GTK_CORNER_BOTTOM_RIGHT">
<parameter_description> Place the scrollbars on the top and left of the
widget.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkCssParserError">
<description>
Errors that can occur while parsing CSS.

These errors are unexpected and will cause parts of the given CSS
to be ignored.

</description>
<parameters>
<parameter name="GTK_CSS_PARSER_ERROR_FAILED">
<parameter_description> Unknown failure.
</parameter_description>
</parameter>
<parameter name="GTK_CSS_PARSER_ERROR_SYNTAX">
<parameter_description> The given text does not form valid syntax
</parameter_description>
</parameter>
<parameter name="GTK_CSS_PARSER_ERROR_IMPORT">
<parameter_description> Failed to import a resource
</parameter_description>
</parameter>
<parameter name="GTK_CSS_PARSER_ERROR_NAME">
<parameter_description> The given name has not been defined
</parameter_description>
</parameter>
<parameter name="GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE">
<parameter_description> The given value is not correct
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkCssParserWarning">
<description>
Warnings that can occur while parsing CSS.

Unlike `GtkCssParserError`s, warnings do not cause the parser to
skip any input, but they indicate issues that should be fixed.

</description>
<parameters>
<parameter name="GTK_CSS_PARSER_WARNING_DEPRECATED">
<parameter_description> The given construct is
deprecated and will be removed in a future version
</parameter_description>
</parameter>
<parameter name="GTK_CSS_PARSER_WARNING_SYNTAX">
<parameter_description> A syntax construct was used
that should be avoided
</parameter_description>
</parameter>
<parameter name="GTK_CSS_PARSER_WARNING_UNIMPLEMENTED">
<parameter_description> A feature is not implemented
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkCssProvider::parsing-error">
<description>
Signals that a parsing error occurred.

The @path, @line and @position describe the actual location of
the error as accurately as possible.

Parsing errors are never fatal, so the parsing will resume after
the error. Errors may however cause parts of the given data or
even all of it to not be parsed at all. So it is a useful idea
to check that the parsing succeeds by connecting to this signal.

Note that this signal may be emitted at any time as the css provider
may opt to defer parsing parts or all of the input to a later time
than when a loading function was called.

</description>
<parameters>
<parameter name="provider">
<parameter_description> the provider that had a parsing error
</parameter_description>
</parameter>
<parameter name="section">
<parameter_description> section the error happened in
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> The parsing error
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GtkDebugFlags">
<description>
Flags to use with gtk_set_debug_flags().

Settings these flags causes GTK to print out different
types of debugging information. Some of these flags are
only available when GTK has been configured with `-Ddebug=true`.

</description>
<parameters>
<parameter name="GTK_DEBUG_TEXT">
<parameter_description> Information about GtkTextView
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_TREE">
<parameter_description> Information about GtkTreeView
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_KEYBINDINGS">
<parameter_description> Information about keyboard shortcuts
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_MODULES">
<parameter_description> Information about modules and extensions
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_GEOMETRY">
<parameter_description> Information about size allocation
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_ICONTHEME">
<parameter_description> Information about icon themes
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_PRINTING">
<parameter_description> Information about printing
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_BUILDER">
<parameter_description> Trace GtkBuilder operation
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_SIZE_REQUEST">
<parameter_description> Information about size requests
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_NO_CSS_CACHE">
<parameter_description> Disable the style property cache
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_INTERACTIVE">
<parameter_description> Open the GTK inspector
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_ACTIONS">
<parameter_description> Information about actions and menu models
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_LAYOUT">
<parameter_description> Information from layout managers
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_SNAPSHOT">
<parameter_description> Include debug render nodes in the generated snapshots
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_CONSTRAINTS">
<parameter_description> Information from the constraints solver
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_BUILDER_OBJECTS">
<parameter_description> Log unused GtkBuilder objects
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_A11Y">
<parameter_description> Information about accessibility state changes
</parameter_description>
</parameter>
<parameter name="GTK_DEBUG_ICONFALLBACK">
<parameter_description> Information about icon fallback. Since: 4.2
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkDeleteType">
<description>
Passed to various keybinding signals for deleting text.

</description>
<parameters>
<parameter name="GTK_DELETE_CHARS">
<parameter_description> Delete characters.
</parameter_description>
</parameter>
<parameter name="GTK_DELETE_WORD_ENDS">
<parameter_description> Delete only the portion of the word to the
left/right of cursor if we’re in the middle of a word.
</parameter_description>
</parameter>
<parameter name="GTK_DELETE_WORDS">
<parameter_description> Delete words.
</parameter_description>
</parameter>
<parameter name="GTK_DELETE_DISPLAY_LINES">
<parameter_description> Delete display-lines. Display-lines
refers to the visible lines, with respect to the current line
breaks. As opposed to paragraphs, which are defined by line
breaks in the input.
</parameter_description>
</parameter>
<parameter name="GTK_DELETE_DISPLAY_LINE_ENDS">
<parameter_description> Delete only the portion of the
display-line to the left/right of cursor.
</parameter_description>
</parameter>
<parameter name="GTK_DELETE_PARAGRAPH_ENDS">
<parameter_description> Delete to the end of the
paragraph. Like C-k in Emacs (or its reverse).
</parameter_description>
</parameter>
<parameter name="GTK_DELETE_PARAGRAPHS">
<parameter_description> Delete entire line. Like C-k in pico.
</parameter_description>
</parameter>
<parameter name="GTK_DELETE_WHITESPACE">
<parameter_description> Delete only whitespace. Like M-\ in Emacs.
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkDialog::close">
<description>
Emitted when the user uses a keybinding to close the dialog.

This is a [keybinding signal](class.SignalAction.html).

The default binding for this signal is the Escape key.

Deprecated: 4.10: Use [class@Gtk.Window] instead

</description>
<parameters>
</parameters>
<return></return>
</signal>

<signal name="GtkDialog::response">
<description>
Emitted when an action widget is clicked.

The signal is also emitted when the dialog receives a
delete event, and when [method@Gtk.Dialog.response] is called.
On a delete event, the response ID is %GTK_RESPONSE_DELETE_EVENT.
Otherwise, it depends on which action widget was clicked.

Deprecated: 4.10: Use [class@Gtk.Window] instead

</description>
<parameters>
<parameter name="dialog">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="response_id">
<parameter_description> the response ID
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkDialog:use-header-bar">
<description>
%TRUE if the dialog uses a headerbar for action buttons
instead of the action-area.

For technical reasons, this property is declared as an integer
property, but you should only set it to %TRUE or %FALSE.

## Creating a dialog with headerbar

Builtin `GtkDialog` subclasses such as [class@Gtk.ColorChooserDialog]
set this property according to platform conventions (using the
[property@Gtk.Settings:gtk-dialogs-use-header] setting).

Here is how you can achieve the same:

```c
g_object_get (settings, &quot;gtk-dialogs-use-header&quot;, &amp;header, NULL);
dialog = g_object_new (GTK_TYPE_DIALOG, header, TRUE, NULL);
```

Deprecated: 4.10: Use [class@Gtk.Window] instead

</description>
</property>

<enum name="GtkDialogError">
<description>
Error codes in the `GTK_DIALOG_ERROR` domain that can be returned
by async dialog functions.

Since: 4.10

</description>
<parameters>
<parameter name="GTK_DIALOG_ERROR_FAILED">
<parameter_description> Generic error condition for when
an operation fails and no more specific code is applicable
</parameter_description>
</parameter>
<parameter name="GTK_DIALOG_ERROR_CANCELLED">
<parameter_description> The async function call was cancelled
via its `GCancellable`
</parameter_description>
</parameter>
<parameter name="GTK_DIALOG_ERROR_DISMISSED">
<parameter_description> The operation was cancelled
by the user (via a Cancel or Close button)
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkDialogFlags">
<description>
Flags used to influence dialog construction.

</description>
<parameters>
<parameter name="GTK_DIALOG_MODAL">
<parameter_description> Make the constructed dialog modal
</parameter_description>
</parameter>
<parameter name="GTK_DIALOG_DESTROY_WITH_PARENT">
<parameter_description> Destroy the dialog when its parent is destroyed
</parameter_description>
</parameter>
<parameter name="GTK_DIALOG_USE_HEADER_BAR">
<parameter_description> Create dialog with actions in header
bar instead of action area
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkDirectionType">
<description>
Focus movement types.

</description>
<parameters>
<parameter name="GTK_DIR_TAB_FORWARD">
<parameter_description> Move forward.
</parameter_description>
</parameter>
<parameter name="GTK_DIR_TAB_BACKWARD">
<parameter_description> Move backward.
</parameter_description>
</parameter>
<parameter name="GTK_DIR_UP">
<parameter_description> Move up.
</parameter_description>
</parameter>
<parameter name="GTK_DIR_DOWN">
<parameter_description> Move down.
</parameter_description>
</parameter>
<parameter name="GTK_DIR_LEFT">
<parameter_description> Move left.
</parameter_description>
</parameter>
<parameter name="GTK_DIR_RIGHT">
<parameter_description> Move right.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkDirectoryList:attributes">
<description>
The attributes to query.

</description>
</property>

<property name="GtkDirectoryList:error">
<description>
Error encountered while loading files.

</description>
</property>

<property name="GtkDirectoryList:file">
<description>
File to query.

</description>
</property>

<property name="GtkDirectoryList:io-priority">
<description>
Priority used when loading.

</description>
</property>

<property name="GtkDirectoryList:item-type">
<description>
The type of items. See [method@Gio.ListModel.get_item_type].

Since: 4.8

</description>
</property>

<property name="GtkDirectoryList:loading">
<description>
%TRUE if files are being loaded.

</description>
</property>

<property name="GtkDirectoryList:monitored">
<description>
%TRUE if the directory is monitored for changed.

</description>
</property>

<property name="GtkDirectoryList:n-items">
<description>
The number of items. See [method@Gio.ListModel.get_n_items].

Since: 4.8

</description>
</property>

<property name="GtkDragIcon:child">
<description>
The widget to display as drag icon.

</description>
</property>

<signal name="GtkDragSource::drag-begin">
<description>
Emitted on the drag source when a drag is started.

It can be used to e.g. set a custom drag icon with
[method@Gtk.DragSource.set_icon].

</description>
<parameters>
<parameter name="source">
<parameter_description> the `GtkDragSource`
</parameter_description>
</parameter>
<parameter name="drag">
<parameter_description> the `GdkDrag` object
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkDragSource::drag-cancel">
<description>
Emitted on the drag source when a drag has failed.

The signal handler may handle a failed drag operation based on
the type of error. It should return %TRUE if the failure has been handled
and the default &quot;drag operation failed&quot; animation should not be shown.


</description>
<parameters>
<parameter name="source">
<parameter_description> the `GtkDragSource`
</parameter_description>
</parameter>
<parameter name="drag">
<parameter_description> the `GdkDrag` object
</parameter_description>
</parameter>
<parameter name="reason">
<parameter_description> information on why the drag failed
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the failed drag operation has been already handled
</return>
</signal>

<signal name="GtkDragSource::drag-end">
<description>
Emitted on the drag source when a drag is finished.

A typical reason to connect to this signal is to undo
things done in [signal@Gtk.DragSource::prepare] or
[signal@Gtk.DragSource::drag-begin] handlers.

</description>
<parameters>
<parameter name="source">
<parameter_description> the `GtkDragSource`
</parameter_description>
</parameter>
<parameter name="drag">
<parameter_description> the `GdkDrag` object
</parameter_description>
</parameter>
<parameter name="delete_data">
<parameter_description> %TRUE if the drag was performing %GDK_ACTION_MOVE,
and the data should be deleted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkDragSource::prepare">
<description>
Emitted when a drag is about to be initiated.

It returns the `GdkContentProvider` to use for the drag that is about
to start. The default handler for this signal returns the value of
the [property@Gtk.DragSource:content] property, so if you set up that
property ahead of time, you don't need to connect to this signal.


</description>
<parameters>
<parameter name="source">
<parameter_description> the `GtkDragSource`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the X coordinate of the drag starting point
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the Y coordinate of the drag starting point
</parameter_description>
</parameter>
</parameters>
<return> a `GdkContentProvider`
</return>
</signal>

<property name="GtkDragSource:actions">
<description>
The actions that are supported by drag operations from the source.

Note that you must handle the [signal@Gtk.DragSource::drag-end] signal
if the actions include %GDK_ACTION_MOVE.

</description>
</property>

<property name="GtkDragSource:content">
<description>
The data that is offered by drag operations from this source.

</description>
</property>

<signal name="GtkDrawingArea::resize">
<description>
Emitted once when the widget is realized, and then each time the widget
is changed while realized.

This is useful in order to keep state up to date with the widget size,
like for instance a backing surface.

</description>
<parameters>
<parameter name="area">
<parameter_description> the `GtkDrawingArea` that emitted the signal
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the width of the viewport
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the height of the viewport
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkDrawingArea:content-height">
<description>
The content height.

</description>
</property>

<property name="GtkDrawingArea:content-width">
<description>
The content width.

</description>
</property>

<signal name="GtkDropControllerMotion::enter">
<description>
Signals that the pointer has entered the widget.

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> coordinates of pointer location
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> coordinates of pointer location
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkDropControllerMotion::leave">
<description>
Signals that the pointer has left the widget.

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkDropControllerMotion::motion">
<description>
Emitted when the pointer moves inside the widget.

</description>
<parameters>
<parameter name="self">
<parameter_description> The object that received the signal
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkDropControllerMotion:contains-pointer">
<description>
Whether the pointer of a Drag-and-Drop operation is in
the controller's widget or a descendant.

See also [property@Gtk.DropControllerMotion:is-pointer].

When handling crossing events, this property is updated
before [signal@Gtk.DropControllerMotion::enter], but after
[signal@Gtk.DropControllerMotion::leave] is emitted.

</description>
</property>

<property name="GtkDropControllerMotion:drop">
<description>
The ongoing drop operation over the controller's widget or
its descendant.

If no drop operation is going on, this property returns %NULL.

The event controller should not modify the @drop, but it might
want to query its properties.

When handling crossing events, this property is updated
before [signal@Gtk.DropControllerMotion::enter], but after
[signal@Gtk.DropControllerMotion::leave] is emitted.

</description>
</property>

<property name="GtkDropControllerMotion:is-pointer">
<description>
Whether the pointer is in the controllers widget itself,
as opposed to in a descendent widget.

See also [property@Gtk.DropControllerMotion:contains-pointer].

When handling crossing events, this property is updated
before [signal@Gtk.DropControllerMotion::enter], but after
[signal@Gtk.DropControllerMotion::leave] is emitted.

</description>
</property>

<signal name="GtkDropDown::activate">
<description>
Emitted to when the drop down is activated.

The `::activate` signal on `GtkDropDown` is an action signal and
emitting it causes the drop down to pop up its dropdown.

Since: 4.6

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkDropDown:enable-search">
<description>
Whether to show a search entry in the popup.

Note that search requires [property@Gtk.DropDown:expression]
to be set.

</description>
</property>

<property name="GtkDropDown:expression">
<description>
An expression to evaluate to obtain strings to match against the search
term.

See [property@Gtk.DropDown:enable-search] for how to enable search.
If [property@Gtk.DropDown:factory] is not set, the expression is also
used to bind strings to labels produced by a default factory.

</description>
</property>

<property name="GtkDropDown:factory">
<description>
Factory for populating list items.

</description>
</property>

<property name="GtkDropDown:header-factory">
<description>
The factory for creating header widgets for the popup.

Since: 4.12

</description>
</property>

<property name="GtkDropDown:list-factory">
<description>
The factory for populating list items in the popup.

If this is not set, [property@Gtk.DropDown:factory] is used.

</description>
</property>

<property name="GtkDropDown:model">
<description>
Model for the displayed items.

</description>
</property>

<property name="GtkDropDown:search-match-mode">
<description>
The match mode for the search filter.

Since: 4.12

</description>
</property>

<property name="GtkDropDown:selected">
<description>
The position of the selected item.

If no item is selected, the property has the value
%GTK_INVALID_LIST_POSITION.

</description>
</property>

<property name="GtkDropDown:selected-item">
<description>
The selected item.

</description>
</property>

<property name="GtkDropDown:show-arrow">
<description>
Whether to show an arrow within the GtkDropDown widget.

Since: 4.6

</description>
</property>

<signal name="GtkDropTarget::accept">
<description>
Emitted on the drop site when a drop operation is about to begin.

If the drop is not accepted, %FALSE will be returned and the drop target
will ignore the drop. If %TRUE is returned, the drop is accepted for now
but may be rejected later via a call to [method@Gtk.DropTarget.reject]
or ultimately by returning %FALSE from a [signal@Gtk.DropTarget::drop]
handler.

The default handler for this signal decides whether to accept the drop
based on the formats provided by the @drop.

If the decision whether the drop will be accepted or rejected depends
on the data, this function should return %TRUE, the
[property@Gtk.DropTarget:preload] property should be set and the value
should be inspected via the ::notify:value signal, calling
[method@Gtk.DropTarget.reject] if required.


</description>
<parameters>
<parameter name="self">
<parameter_description> the `GtkDropTarget`
</parameter_description>
</parameter>
<parameter name="drop">
<parameter_description> the `GdkDrop`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @drop is accepted
</return>
</signal>

<signal name="GtkDropTarget::drop">
<description>
Emitted on the drop site when the user drops the data onto the widget.

The signal handler must determine whether the pointer position is in
a drop zone or not. If it is not in a drop zone, it returns %FALSE
and no further processing is necessary.

Otherwise, the handler returns %TRUE. In this case, this handler will
accept the drop. The handler is responsible for using the given @value
and performing the drop operation.


</description>
<parameters>
<parameter name="self">
<parameter_description> the `GtkDropTarget`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the `GValue` being dropped
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the current pointer position
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the current pointer position
</parameter_description>
</parameter>
</parameters>
<return> whether the drop was accepted at the given pointer position
</return>
</signal>

<signal name="GtkDropTarget::enter">
<description>
Emitted on the drop site when the pointer enters the widget.

It can be used to set up custom highlighting.


</description>
<parameters>
<parameter name="self">
<parameter_description> the `GtkDropTarget`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the current pointer position
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the current pointer position
</parameter_description>
</parameter>
</parameters>
<return> Preferred action for this drag operation or 0 if
dropping is not supported at the current @x,@y location.
</return>
</signal>

<signal name="GtkDropTarget::leave">
<description>
Emitted on the drop site when the pointer leaves the widget.

Its main purpose it to undo things done in
[signal@Gtk.DropTarget::enter].

</description>
<parameters>
<parameter name="self">
<parameter_description> the `GtkDropTarget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkDropTarget::motion">
<description>
Emitted while the pointer is moving over the drop target.


</description>
<parameters>
<parameter name="self">
<parameter_description> the `GtkDropTarget`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the current pointer position
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the current pointer position
</parameter_description>
</parameter>
</parameters>
<return> Preferred action for this drag operation or 0 if
dropping is not supported at the current @x,@y location.
</return>
</signal>

<property name="GtkDropTarget:actions">
<description>
The `GdkDragActions` that this drop target supports.

</description>
</property>

<property name="GtkDropTarget:current-drop">
<description>
The `GdkDrop` that is currently being performed.

Since: 4.4

</description>
</property>

<property name="GtkDropTarget:drop">
<description>
The `GdkDrop` that is currently being performed.

Deprecated: 4.4: Use [property@Gtk.DropTarget:current-drop] instead

</description>
</property>

<property name="GtkDropTarget:formats">
<description>
The `GdkContentFormats` that determine the supported data formats.

</description>
</property>

<property name="GtkDropTarget:preload">
<description>
Whether the drop data should be preloaded when the pointer is only
hovering over the widget but has not been released.

Setting this property allows finer grained reaction to an ongoing
drop at the cost of loading more data.

The default value for this property is %FALSE to avoid downloading
huge amounts of data by accident.

For example, if somebody drags a full document of gigabytes of text
from a text editor across a widget with a preloading drop target,
this data will be downloaded, even if the data is ultimately dropped
elsewhere.

For a lot of data formats, the amount of data is very small (like
%GDK_TYPE_RGBA), so enabling this property does not hurt at all.
And for local-only Drag-and-Drop operations, no data transfer is done,
so enabling it there is free.

</description>
</property>

<property name="GtkDropTarget:value">
<description>
The value for this drop operation.

This is %NULL if the data has not been loaded yet or no drop
operation is going on.

Data may be available before the [signal@Gtk.DropTarget::drop]
signal gets emitted - for example when the [property@Gtk.DropTarget:preload]
property is set. You can use the ::notify signal to be notified
of available data.

</description>
</property>

<signal name="GtkDropTargetAsync::accept">
<description>
Emitted on the drop site when a drop operation is about to begin.

If the drop is not accepted, %FALSE will be returned and the drop target
will ignore the drop. If %TRUE is returned, the drop is accepted for now
but may be rejected later via a call to [method@Gtk.DropTargetAsync.reject_drop]
or ultimately by returning %FALSE from a [signal@Gtk.DropTargetAsync::drop]
handler.

The default handler for this signal decides whether to accept the drop
based on the formats provided by the @drop.

If the decision whether the drop will be accepted or rejected needs
further processing, such as inspecting the data, this function should
return %TRUE and proceed as is @drop was accepted and if it decides to
reject the drop later, it should call [method@Gtk.DropTargetAsync.reject_drop].


</description>
<parameters>
<parameter name="self">
<parameter_description> the `GtkDropTargetAsync`
</parameter_description>
</parameter>
<parameter name="drop">
<parameter_description> the `GdkDrop`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @drop is accepted
</return>
</signal>

<signal name="GtkDropTargetAsync::drag-enter">
<description>
Emitted on the drop site when the pointer enters the widget.

It can be used to set up custom highlighting.


</description>
<parameters>
<parameter name="self">
<parameter_description> the `GtkDropTargetAsync`
</parameter_description>
</parameter>
<parameter name="drop">
<parameter_description> the `GdkDrop`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the current pointer position
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the current pointer position
</parameter_description>
</parameter>
</parameters>
<return> Preferred action for this drag operation.
</return>
</signal>

<signal name="GtkDropTargetAsync::drag-leave">
<description>
Emitted on the drop site when the pointer leaves the widget.

Its main purpose it to undo things done in
`GtkDropTargetAsync`::drag-enter.

</description>
<parameters>
<parameter name="self">
<parameter_description> the `GtkDropTargetAsync`
</parameter_description>
</parameter>
<parameter name="drop">
<parameter_description> the `GdkDrop`
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkDropTargetAsync::drag-motion">
<description>
Emitted while the pointer is moving over the drop target.


</description>
<parameters>
<parameter name="self">
<parameter_description> the `GtkDropTargetAsync`
</parameter_description>
</parameter>
<parameter name="drop">
<parameter_description> the `GdkDrop`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the current pointer position
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the current pointer position
</parameter_description>
</parameter>
</parameters>
<return> Preferred action for this drag operation.
</return>
</signal>

<signal name="GtkDropTargetAsync::drop">
<description>
Emitted on the drop site when the user drops the data onto the widget.

The signal handler must determine whether the pointer position is in a
drop zone or not. If it is not in a drop zone, it returns %FALSE and no
further processing is necessary.

Otherwise, the handler returns %TRUE. In this case, this handler will
accept the drop. The handler must ensure that [method@Gdk.Drop.finish]
is called to let the source know that the drop is done. The call to
[method@Gdk.Drop.finish] must only be done when all data has been received.

To receive the data, use one of the read functions provided by
[class@Gdk.Drop] such as [method@Gdk.Drop.read_async] or
[method@Gdk.Drop.read_value_async].


</description>
<parameters>
<parameter name="self">
<parameter_description> the `GtkDropTargetAsync`
</parameter_description>
</parameter>
<parameter name="drop">
<parameter_description> the `GdkDrop`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the current pointer position
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the current pointer position
</parameter_description>
</parameter>
</parameters>
<return> whether the drop is accepted at the given pointer position
</return>
</signal>

<property name="GtkDropTargetAsync:actions">
<description>
The `GdkDragActions` that this drop target supports.

</description>
</property>

<property name="GtkDropTargetAsync:formats">
<description>
The `GdkContentFormats` that determines the supported data formats.

</description>
</property>

<signal name="GtkEditable::changed">
<description>
Emitted at the end of a single user-visible operation on the
contents.

E.g., a paste operation that replaces the contents of the
selection will cause only one signal emission (even though it
is implemented by first deleting the selection, then inserting
the new content, and may cause multiple ::notify::text signals
to be emitted).

</description>
<parameters>
<parameter name="editable">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkEditable::delete-text">
<description>
Emitted when text is deleted from the widget by the user.

The default handler for this signal will normally be responsible for
deleting the text, so by connecting to this signal and then stopping
the signal with g_signal_stop_emission(), it is possible to modify the
range of deleted text, or prevent it from being deleted entirely.

The @start_pos and @end_pos parameters are interpreted as for
[method@Gtk.Editable.delete_text].

</description>
<parameters>
<parameter name="editable">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="start_pos">
<parameter_description> the starting position
</parameter_description>
</parameter>
<parameter name="end_pos">
<parameter_description> the end position
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkEditable::insert-text">
<description>
Emitted when text is inserted into the widget by the user.

The default handler for this signal will normally be responsible
for inserting the text, so by connecting to this signal and then
stopping the signal with g_signal_stop_emission(), it is possible
to modify the inserted text, or prevent it from being inserted entirely.

</description>
<parameters>
<parameter name="editable">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> the new text to insert
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> the length of the new text, in bytes,
or -1 if new_text is nul-terminated
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position, in characters,
at which to insert the new text. this is an in-out
parameter.  After the signal emission is finished, it
should point after the newly inserted text.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkEditable:cursor-position">
<description>
The current position of the insertion cursor in chars.

</description>
</property>

<property name="GtkEditable:editable">
<description>
Whether the entry contents can be edited.

</description>
</property>

<property name="GtkEditable:enable-undo">
<description>
If undo/redo should be enabled for the editable.

</description>
</property>

<property name="GtkEditable:max-width-chars">
<description>
The desired maximum width of the entry, in characters.

</description>
</property>

<property name="GtkEditable:selection-bound">
<description>
The position of the opposite end of the selection from the cursor in chars.

</description>
</property>

<property name="GtkEditable:text">
<description>
The contents of the entry.

</description>
</property>

<property name="GtkEditable:width-chars">
<description>
Number of characters to leave space for in the entry.

</description>
</property>

<property name="GtkEditable:xalign">
<description>
The horizontal alignment, from 0 (left) to 1 (right).

Reversed for RTL layouts.

</description>
</property>

<property name="GtkEditableLabel:editing">
<description>
This property is %TRUE while the widget is in edit mode.

</description>
</property>

<enum name="GtkEditableProperties">
<description>
The identifiers for [iface@Gtk.Editable] properties.

See [func@Gtk.Editable.install_properties] for details on how to
implement the `GtkEditable` interface.

</description>
<parameters>
<parameter name="GTK_EDITABLE_PROP_TEXT">
<parameter_description> the property id for [property@Gtk.Editable:text]
</parameter_description>
</parameter>
<parameter name="GTK_EDITABLE_PROP_CURSOR_POSITION">
<parameter_description> the property id for [property@Gtk.Editable:cursor-position]
</parameter_description>
</parameter>
<parameter name="GTK_EDITABLE_PROP_SELECTION_BOUND">
<parameter_description> the property id for [property@Gtk.Editable:selection-bound]
</parameter_description>
</parameter>
<parameter name="GTK_EDITABLE_PROP_EDITABLE">
<parameter_description> the property id for [property@Gtk.Editable:editable]
</parameter_description>
</parameter>
<parameter name="GTK_EDITABLE_PROP_WIDTH_CHARS">
<parameter_description> the property id for [property@Gtk.Editable:width-chars]
</parameter_description>
</parameter>
<parameter name="GTK_EDITABLE_PROP_MAX_WIDTH_CHARS">
<parameter_description> the property id for [property@Gtk.Editable:max-width-chars]
</parameter_description>
</parameter>
<parameter name="GTK_EDITABLE_PROP_XALIGN">
<parameter_description> the property id for [property@Gtk.Editable:xalign]
</parameter_description>
</parameter>
<parameter name="GTK_EDITABLE_PROP_ENABLE_UNDO">
<parameter_description> the property id for [property@Gtk.Editable:enable-undo]
</parameter_description>
</parameter>
<parameter name="GTK_EDITABLE_NUM_PROPERTIES">
<parameter_description> the number of properties
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkEmojiChooser::emoji-picked">
<description>
Emitted when the user selects an Emoji.

</description>
<parameters>
<parameter name="chooser">
<parameter_description> the `GtkEmojiChooser`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> the Unicode sequence for the picked Emoji, in UTF-8
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkEntry::activate">
<description>
Emitted when the entry is activated.

The keybindings for this signal are all forms of the Enter key.

</description>
<parameters>
<parameter name="self">
<parameter_description> The widget on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkEntry::icon-press">
<description>
Emitted when an activatable icon is clicked.

</description>
<parameters>
<parameter name="entry">
<parameter_description> The entry on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> The position of the clicked icon
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkEntry::icon-release">
<description>
Emitted on the button release from a mouse click
over an activatable icon.

</description>
<parameters>
<parameter name="entry">
<parameter_description> The entry on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> The position of the clicked icon
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkEntry::show-emoji-icon">
<description>
Whether the entry will show an Emoji icon in the secondary icon position
to open the Emoji chooser.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<signal name="GtkEntry::tabs">
<description>
A list of tabstops to apply to the text of the entry.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<property name="GtkEntry:activates-default">
<description>
Whether to activate the default widget when Enter is pressed.

</description>
</property>

<property name="GtkEntry:attributes">
<description>
A list of Pango attributes to apply to the text of the entry.

This is mainly useful to change the size or weight of the text.

The `PangoAttribute`'s @start_index and @end_index must refer to the
[class@Gtk.EntryBuffer] text, i.e. without the preedit string.

</description>
</property>

<property name="GtkEntry:buffer">
<description>
The buffer object which actually stores the text.

</description>
</property>

<property name="GtkEntry:completion">
<description>
The auxiliary completion object to use with the entry.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
</property>

<property name="GtkEntry:enable-emoji-completion">
<description>
Whether to suggest Emoji replacements for :-delimited names
like `:heart:`.

</description>
</property>

<property name="GtkEntry:extra-menu">
<description>
A menu model whose contents will be appended to the context menu.

</description>
</property>

<property name="GtkEntry:has-frame">
<description>
Whether the entry should draw a frame.

</description>
</property>

<property name="GtkEntry:im-module">
<description>
Which IM (input method) module should be used for this entry.

See [class@Gtk.IMContext].

Setting this to a non-%NULL value overrides the system-wide IM
module setting. See the GtkSettings [property@Gtk.Settings:gtk-im-module]
property.

</description>
</property>

<property name="GtkEntry:input-hints">
<description>
Additional hints that allow input methods to fine-tune their behavior.

Also see [property@Gtk.Entry:input-purpose]

</description>
</property>

<property name="GtkEntry:input-purpose">
<description>
The purpose of this text field.

This property can be used by on-screen keyboards and other input
methods to adjust their behaviour.

Note that setting the purpose to %GTK_INPUT_PURPOSE_PASSWORD or
%GTK_INPUT_PURPOSE_PIN is independent from setting
[property@Gtk.Entry:visibility].

</description>
</property>

<property name="GtkEntry:invisible-char">
<description>
The character to use when masking entry contents (“password mode”).

</description>
</property>

<property name="GtkEntry:invisible-char-set">
<description>
Whether the invisible char has been set for the `GtkEntry`.

</description>
</property>

<property name="GtkEntry:max-length">
<description>
Maximum number of characters for this entry.

</description>
</property>

<property name="GtkEntry:overwrite-mode">
<description>
If text is overwritten when typing in the `GtkEntry`.

</description>
</property>

<property name="GtkEntry:placeholder-text">
<description>
The text that will be displayed in the `GtkEntry` when it is empty
and unfocused.

</description>
</property>

<property name="GtkEntry:primary-icon-activatable">
<description>
Whether the primary icon is activatable.

GTK emits the [signal@Gtk.Entry::icon-press] and
[signal@Gtk.Entry::icon-release] signals only on sensitive,
activatable icons.

Sensitive, but non-activatable icons can be used for purely
informational purposes.

</description>
</property>

<property name="GtkEntry:primary-icon-gicon">
<description>
The `GIcon` to use for the primary icon for the entry.

</description>
</property>

<property name="GtkEntry:primary-icon-name">
<description>
The icon name to use for the primary icon for the entry.

</description>
</property>

<property name="GtkEntry:primary-icon-paintable">
<description>
A `GdkPaintable` to use as the primary icon for the entry.

</description>
</property>

<property name="GtkEntry:primary-icon-sensitive">
<description>
Whether the primary icon is sensitive.

An insensitive icon appears grayed out. GTK does not emit the
[signal@Gtk.Entry::icon-press] and [signal@Gtk.Entry::icon-release]
signals and does not allow DND from insensitive icons.

An icon should be set insensitive if the action that would trigger
when clicked is currently not available.

</description>
</property>

<property name="GtkEntry:primary-icon-storage-type">
<description>
The representation which is used for the primary icon of the entry.

</description>
</property>

<property name="GtkEntry:primary-icon-tooltip-markup">
<description>
The contents of the tooltip on the primary icon, with markup.

Also see [method@Gtk.Entry.set_icon_tooltip_markup].

</description>
</property>

<property name="GtkEntry:primary-icon-tooltip-text">
<description>
The contents of the tooltip on the primary icon.

Also see [method@Gtk.Entry.set_icon_tooltip_text].

</description>
</property>

<property name="GtkEntry:progress-fraction">
<description>
The current fraction of the task that's been completed.

</description>
</property>

<property name="GtkEntry:progress-pulse-step">
<description>
The fraction of total entry width to move the progress
bouncing block for each pulse.

See [method@Gtk.Entry.progress_pulse].

</description>
</property>

<property name="GtkEntry:scroll-offset">
<description>
Number of pixels of the entry scrolled off the screen to the left.

</description>
</property>

<property name="GtkEntry:secondary-icon-activatable">
<description>
Whether the secondary icon is activatable.

GTK emits the [signal@Gtk.Entry::icon-press] and
[signal@Gtk.Entry::icon-release] signals only on sensitive,
activatable icons.

Sensitive, but non-activatable icons can be used for purely
informational purposes.

</description>
</property>

<property name="GtkEntry:secondary-icon-gicon">
<description>
The `GIcon` to use for the secondary icon for the entry.

</description>
</property>

<property name="GtkEntry:secondary-icon-name">
<description>
The icon name to use for the secondary icon for the entry.

</description>
</property>

<property name="GtkEntry:secondary-icon-paintable">
<description>
A `GdkPaintable` to use as the secondary icon for the entry.

</description>
</property>

<property name="GtkEntry:secondary-icon-sensitive">
<description>
Whether the secondary icon is sensitive.

An insensitive icon appears grayed out. GTK does not emit the
[signal@Gtk.Entry::icon-press[ and [signal@Gtk.Entry::icon-release]
signals and does not allow DND from insensitive icons.

An icon should be set insensitive if the action that would trigger
when clicked is currently not available.

</description>
</property>

<property name="GtkEntry:secondary-icon-storage-type">
<description>
The representation which is used for the secondary icon of the entry.

</description>
</property>

<property name="GtkEntry:secondary-icon-tooltip-markup">
<description>
The contents of the tooltip on the secondary icon, with markup.

Also see [method@Gtk.Entry.set_icon_tooltip_markup].

</description>
</property>

<property name="GtkEntry:secondary-icon-tooltip-text">
<description>
The contents of the tooltip on the secondary icon.

Also see [method@Gtk.Entry.set_icon_tooltip_text].

</description>
</property>

<property name="GtkEntry:text-length">
<description>
The length of the text in the `GtkEntry`.

</description>
</property>

<property name="GtkEntry:truncate-multiline">
<description>
When %TRUE, pasted multi-line text is truncated to the first line.

</description>
</property>

<property name="GtkEntry:visibility">
<description>
Whether the entry should show the “invisible char” instead of the
actual text (“password mode”).

</description>
</property>

<signal name="GtkEntryBuffer::deleted-text">
<description>
The text is altered in the default handler for this signal.

If you want access to the text after the text has been modified,
use %G_CONNECT_AFTER.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkEntryBuffer`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position the text was deleted at.
</parameter_description>
</parameter>
<parameter name="n_chars">
<parameter_description> The number of characters that were deleted.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkEntryBuffer::inserted-text">
<description>
This signal is emitted after text is inserted into the buffer.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkEntryBuffer`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position the text was inserted at.
</parameter_description>
</parameter>
<parameter name="chars">
<parameter_description> The text that was inserted.
</parameter_description>
</parameter>
<parameter name="n_chars">
<parameter_description> The number of characters that were inserted.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkEntryBuffer:length">
<description>
The length (in characters) of the text in buffer.

</description>
</property>

<property name="GtkEntryBuffer:max-length">
<description>
The maximum length (in characters) of the text in the buffer.

</description>
</property>

<property name="GtkEntryBuffer:text">
<description>
The contents of the buffer.

</description>
</property>

<signal name="GtkEntryCompletion::cursor-on-match">
<description>
Emitted when a match from the cursor is on a match of the list.

The default behaviour is to replace the contents
of the entry with the contents of the text column in the row
pointed to by @iter.

Note that @model is the model that was passed to
[method@Gtk.EntryCompletion.set_model].


</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> the `GtkTreeModel` containing the matches
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTreeIter` positioned at the selected match
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the signal has been handled
</return>
</signal>

<signal name="GtkEntryCompletion::insert-prefix">
<description>
Emitted when the inline autocompletion is triggered.

The default behaviour is to make the entry display the
whole prefix and select the newly inserted part.

Applications may connect to this signal in order to insert only a
smaller part of the @prefix into the entry - e.g. the entry used in
the `GtkFileChooser` inserts only the part of the prefix up to the
next '/'.


</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="prefix">
<parameter_description> the common prefix of all possible completions
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the signal has been handled
</return>
</signal>

<signal name="GtkEntryCompletion::match-selected">
<description>
Emitted when a match from the list is selected.

The default behaviour is to replace the contents of the
entry with the contents of the text column in the row
pointed to by @iter.

Note that @model is the model that was passed to
[method@Gtk.EntryCompletion.set_model].


</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> the `GtkTreeModel` containing the matches
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTreeIter` positioned at the selected match
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the signal has been handled
</return>
</signal>

<signal name="GtkEntryCompletion::no-matches">
<description>
Emitted when the filter model has zero
number of rows in completion_complete method.

In other words when `GtkEntryCompletion` is out of suggestions.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkEntryCompletion:cell-area">
<description>
The `GtkCellArea` used to layout cell renderers in the treeview column.

If no area is specified when creating the entry completion with
[ctor@Gtk.EntryCompletion.new_with_area], a horizontally oriented
[class@Gtk.CellAreaBox] will be used.

</description>
</property>

<property name="GtkEntryCompletion:inline-completion">
<description>
Determines whether the common prefix of the possible completions
should be inserted automatically in the entry.

Note that this requires text-column to be set, even if you are
using a custom match function.

</description>
</property>

<property name="GtkEntryCompletion:inline-selection">
<description>
Determines whether the possible completions on the popup
will appear in the entry as you navigate through them.

</description>
</property>

<property name="GtkEntryCompletion:popup-completion">
<description>
Determines whether the possible completions should be
shown in a popup window.

</description>
</property>

<property name="GtkEntryCompletion:popup-set-width">
<description>
Determines whether the completions popup window will be
resized to the width of the entry.

</description>
</property>

<property name="GtkEntryCompletion:popup-single-match">
<description>
Determines whether the completions popup window will shown
for a single possible completion.

You probably want to set this to %FALSE if you are using
[property@Gtk.EntryCompletion:inline-completion].

</description>
</property>

<property name="GtkEntryCompletion:text-column">
<description>
The column of the model containing the strings.

Note that the strings must be UTF-8.

</description>
</property>

<enum name="GtkEntryIconPosition">
<description>
Specifies the side of the entry at which an icon is placed.

</description>
<parameters>
<parameter name="GTK_ENTRY_ICON_PRIMARY">
<parameter_description> At the beginning of the entry (depending on the text direction).
</parameter_description>
</parameter>
<parameter name="GTK_ENTRY_ICON_SECONDARY">
<parameter_description> At the end of the entry (depending on the text direction).
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkEventController:name">
<description>
The name for this controller, typically used for debugging purposes.

</description>
</property>

<property name="GtkEventController:propagation-limit">
<description>
The limit for which events this controller will handle.

</description>
</property>

<property name="GtkEventController:propagation-phase">
<description>
The propagation phase at which this controller will handle events.

</description>
</property>

<property name="GtkEventController:widget">
<description>
The widget receiving the `GdkEvents` that the controller will handle.

</description>
</property>

<signal name="GtkEventControllerFocus::enter">
<description>
Emitted whenever the focus enters into the widget or one
of its descendents.

Note that this means you may not get an ::enter signal
even though the widget becomes the focus location, in
certain cases (such as when the focus moves from a descendent
of the widget to the widget itself). If you are interested
in these cases, you can monitor the
[property@Gtk.EventControllerFocus:is-focus]
property for changes.

</description>
<parameters>
<parameter name="controller">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkEventControllerFocus::leave">
<description>
Emitted whenever the focus leaves the widget hierarchy
that is rooted at the widget that the controller is attached to.

Note that this means you may not get a ::leave signal
even though the focus moves away from the widget, in
certain cases (such as when the focus moves from the widget
to a descendent). If you are interested in these cases, you
can monitor the [property@Gtk.EventControllerFocus:is-focus]
property for changes.

</description>
<parameters>
<parameter name="controller">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkEventControllerFocus:contains-focus">
<description>
%TRUE if focus is contained in the controllers widget.

See [property@Gtk.EventControllerFocus:is-focus] for whether
the focus is in the widget itself or inside a descendent.

When handling focus events, this property is updated
before [signal@Gtk.EventControllerFocus::enter] or
[signal@Gtk.EventControllerFocus::leave] are emitted.

</description>
</property>

<property name="GtkEventControllerFocus:is-focus">
<description>
%TRUE if focus is in the controllers widget itself,
as opposed to in a descendent widget.

See also [property@Gtk.EventControllerFocus:contains-focus].

When handling focus events, this property is updated
before [signal@Gtk.EventControllerFocus::enter] or
[signal@Gtk.EventControllerFocus::leave] are emitted.

</description>
</property>

<signal name="GtkEventControllerKey::im-update">
<description>
Emitted whenever the input method context filters away
a keypress and prevents the @controller receiving it.

See [method@Gtk.EventControllerKey.set_im_context] and
[method@Gtk.IMContext.filter_keypress].

</description>
<parameters>
<parameter name="controller">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkEventControllerKey::key-pressed">
<description>
Emitted whenever a key is pressed.


</description>
<parameters>
<parameter name="controller">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
<parameter name="keyval">
<parameter_description> the pressed key.
</parameter_description>
</parameter>
<parameter name="keycode">
<parameter_description> the raw code of the pressed key.
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> the bitmask, representing the state of modifier keys and pointer buttons.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the key press was handled, %FALSE otherwise.
</return>
</signal>

<signal name="GtkEventControllerKey::key-released">
<description>
Emitted whenever a key is released.

</description>
<parameters>
<parameter name="controller">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
<parameter name="keyval">
<parameter_description> the released key.
</parameter_description>
</parameter>
<parameter name="keycode">
<parameter_description> the raw code of the released key.
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> the bitmask, representing the state of modifier keys and pointer buttons.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkEventControllerKey::modifiers">
<description>
Emitted whenever the state of modifier keys and pointer buttons change.

</description>
<parameters>
<parameter name="controller">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> the bitmask, representing the new state of modifier keys and
pointer buttons.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkEventControllerLegacy::event">
<description>
Emitted for each GDK event delivered to @controller.


</description>
<parameters>
<parameter name="controller">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> the `GdkEvent` which triggered this signal
</parameter_description>
</parameter>
</parameters>
<return> %TRUE to stop other handlers from being invoked for the event
and the emission of this signal. %FALSE to propagate the event further.
</return>
</signal>

<signal name="GtkEventControllerMotion::enter">
<description>
Signals that the pointer has entered the widget.

</description>
<parameters>
<parameter name="controller">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> coordinates of pointer location
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> coordinates of pointer location
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkEventControllerMotion::leave">
<description>
Signals that the pointer has left the widget.

</description>
<parameters>
<parameter name="controller">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkEventControllerMotion::motion">
<description>
Emitted when the pointer moves inside the widget.

</description>
<parameters>
<parameter name="controller">
<parameter_description> The object that received the signal
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkEventControllerMotion:contains-pointer">
<description>
Whether the pointer is in the controllers widget or a descendant.

See also [property@Gtk.EventControllerMotion:is-pointer].

When handling crossing events, this property is updated
before [signal@Gtk.EventControllerMotion::enter], but after
[signal@Gtk.EventControllerMotion::leave] is emitted.

</description>
</property>

<property name="GtkEventControllerMotion:is-pointer">
<description>
Whether the pointer is in the controllers widget itself,
as opposed to in a descendent widget.

See also [property@Gtk.EventControllerMotion:contains-pointer].

When handling crossing events, this property is updated
before [signal@Gtk.EventControllerMotion::enter], but after
[signal@Gtk.EventControllerMotion::leave] is emitted.

</description>
</property>

<signal name="GtkEventControllerScroll::decelerate">
<description>
Emitted after scroll is finished if the
%GTK_EVENT_CONTROLLER_SCROLL_KINETIC flag is set.

@vel_x and @vel_y express the initial velocity that was
imprinted by the scroll events. @vel_x and @vel_y are expressed in
pixels/ms.

</description>
<parameters>
<parameter name="controller">
<parameter_description> The object that received the signal
</parameter_description>
</parameter>
<parameter name="vel_x">
<parameter_description> X velocity
</parameter_description>
</parameter>
<parameter name="vel_y">
<parameter_description> Y velocity
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkEventControllerScroll::scroll">
<description>
Signals that the widget should scroll by the
amount specified by @dx and @dy.

For the representation unit of the deltas, see
[method@Gtk.EventControllerScroll.get_unit].


</description>
<parameters>
<parameter name="controller">
<parameter_description> The object that received the signal
</parameter_description>
</parameter>
<parameter name="dx">
<parameter_description> X delta
</parameter_description>
</parameter>
<parameter name="dy">
<parameter_description> Y delta
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the scroll event was handled,
%FALSE otherwise.
</return>
</signal>

<signal name="GtkEventControllerScroll::scroll-begin">
<description>
Signals that a new scrolling operation has begun.

It will only be emitted on devices capable of it.

</description>
<parameters>
<parameter name="controller">
<parameter_description> The object that received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkEventControllerScroll::scroll-end">
<description>
Signals that a scrolling operation has finished.

It will only be emitted on devices capable of it.

</description>
<parameters>
<parameter name="controller">
<parameter_description> The object that received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkEventControllerScroll:flags">
<description>
The flags affecting event controller behavior.

</description>
</property>

<enum name="GtkEventControllerScrollFlags">
<description>
Describes the behavior of a `GtkEventControllerScroll`.

</description>
<parameters>
<parameter name="GTK_EVENT_CONTROLLER_SCROLL_NONE">
<parameter_description> Don't emit scroll.
</parameter_description>
</parameter>
<parameter name="GTK_EVENT_CONTROLLER_SCROLL_VERTICAL">
<parameter_description> Emit scroll with vertical deltas.
</parameter_description>
</parameter>
<parameter name="GTK_EVENT_CONTROLLER_SCROLL_HORIZONTAL">
<parameter_description> Emit scroll with horizontal deltas.
</parameter_description>
</parameter>
<parameter name="GTK_EVENT_CONTROLLER_SCROLL_DISCRETE">
<parameter_description> Only emit deltas that are multiples of 1.
</parameter_description>
</parameter>
<parameter name="GTK_EVENT_CONTROLLER_SCROLL_KINETIC">
<parameter_description> Emit ::decelerate after continuous scroll finishes.
</parameter_description>
</parameter>
<parameter name="GTK_EVENT_CONTROLLER_SCROLL_BOTH_AXES">
<parameter_description> Emit scroll on both axes.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkEventSequenceState">
<description>
Describes the state of a [struct@Gdk.EventSequence] in a [class@Gesture].

</description>
<parameters>
<parameter name="GTK_EVENT_SEQUENCE_NONE">
<parameter_description> The sequence is handled, but not grabbed.
</parameter_description>
</parameter>
<parameter name="GTK_EVENT_SEQUENCE_CLAIMED">
<parameter_description> The sequence is handled and grabbed.
</parameter_description>
</parameter>
<parameter name="GTK_EVENT_SEQUENCE_DENIED">
<parameter_description> The sequence is denied.
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkExpander::activate">
<description>
Activates the `GtkExpander`.

</description>
<parameters>
<parameter name="expander">
<parameter_description> the `GtkExpander` that emitted the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkExpander:child">
<description>
The child widget.

</description>
</property>

<property name="GtkExpander:expanded">
<description>
Whether the expander has been opened to reveal the child.

</description>
</property>

<property name="GtkExpander:label">
<description>
The text of the expanders label.

</description>
</property>

<property name="GtkExpander:label-widget">
<description>
A widget to display instead of the usual expander label.

</description>
</property>

<property name="GtkExpander:resize-toplevel">
<description>
When this property is %TRUE, the expander will resize the toplevel
widget containing the expander upon expanding and collapsing.

</description>
</property>

<property name="GtkExpander:use-markup">
<description>
Whether the text in the label is Pango markup.

</description>
</property>

<property name="GtkExpander:use-underline">
<description>
Whether an underline in the text indicates a mnemonic.

</description>
</property>

<property name="GtkFileChooser:action">
<description>
The type of operation that the file chooser is performing.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
</property>

<property name="GtkFileChooser:create-folders">
<description>
Whether a file chooser not in %GTK_FILE_CHOOSER_ACTION_OPEN mode
will offer the user to create new folders.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
</property>

<property name="GtkFileChooser:filter">
<description>
The current filter for selecting files that are displayed.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
</property>

<property name="GtkFileChooser:filters">
<description>
A `GListModel` containing the filters that have been
added with gtk_file_chooser_add_filter().

The returned object should not be modified. It may
or may not be updated for later changes.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
</property>

<property name="GtkFileChooser:select-multiple">
<description>
Whether to allow multiple files to be selected.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
</property>

<property name="GtkFileChooser:shortcut-folders">
<description>
A `GListModel` containing the shortcut folders that have been
added with gtk_file_chooser_add_shortcut_folder().

The returned object should not be modified. It may
or may not be updated for later changes.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
</property>

<enum name="GtkFileChooserAction">
<description>
Describes whether a `GtkFileChooser` is being used to open existing files
or to save to a possibly new file.

</description>
<parameters>
<parameter name="GTK_FILE_CHOOSER_ACTION_OPEN">
<parameter_description> Indicates open mode.  The file chooser
will only let the user pick an existing file.
</parameter_description>
</parameter>
<parameter name="GTK_FILE_CHOOSER_ACTION_SAVE">
<parameter_description> Indicates save mode.  The file chooser
will let the user pick an existing file, or type in a new
filename.
</parameter_description>
</parameter>
<parameter name="GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER">
<parameter_description> Indicates an Open mode for
selecting folders.  The file chooser will let the user pick an
existing folder.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkFileChooserError">
<description>
These identify the various errors that can occur while calling
`GtkFileChooser` functions.

</description>
<parameters>
<parameter name="GTK_FILE_CHOOSER_ERROR_NONEXISTENT">
<parameter_description> Indicates that a file does not exist.
</parameter_description>
</parameter>
<parameter name="GTK_FILE_CHOOSER_ERROR_BAD_FILENAME">
<parameter_description> Indicates a malformed filename.
</parameter_description>
</parameter>
<parameter name="GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS">
<parameter_description> Indicates a duplicate path (e.g. when
adding a bookmark).
</parameter_description>
</parameter>
<parameter name="GTK_FILE_CHOOSER_ERROR_INCOMPLETE_HOSTNAME">
<parameter_description> Indicates an incomplete hostname
(e.g. &quot;http://foo&quot; without a slash after that).
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkFileChooserNative:accept-label">
<description>
The text used for the label on the accept button in the dialog, or
%NULL to use the default text.

</description>
</property>

<property name="GtkFileChooserNative:cancel-label">
<description>
The text used for the label on the cancel button in the dialog, or
%NULL to use the default text.

</description>
</property>

<signal name="GtkFileChooserWidget::desktop-folder">
<description>
Emitted when the user asks for it.

This is a [keybinding signal](class.SignalAction.html).

This is used to make the file chooser show the user's Desktop
folder in the file list.

The default binding for this signal is &lt;kbd&gt;Alt&lt;/kbd&gt;-&lt;kbd&gt;D&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFileChooserWidget::down-folder">
<description>
Emitted when the user asks for it.

This is a [keybinding signal](class.SignalAction.html).

This is used to make the file chooser go to a child of the
current folder in the file hierarchy. The subfolder that will
be used is displayed in the path bar widget of the file chooser.
For example, if the path bar is showing &quot;/foo/bar/baz&quot;, with bar
currently displayed, then this will cause the file chooser to
switch to the &quot;baz&quot; subfolder.

The default binding for this signal is &lt;kbd&gt;Alt&lt;/kbd&gt;-&lt;kbd&gt;Down&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFileChooserWidget::home-folder">
<description>
Emitted when the user asks for it.

This is a [keybinding signal](class.SignalAction.html).

This is used to make the file chooser show the user's home
folder in the file list.

The default binding for this signal is &lt;kbd&gt;Alt&lt;/kbd&gt;-&lt;kbd&gt;Home&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFileChooserWidget::location-popup">
<description>
Emitted when the user asks for it.

This is a [keybinding signal](class.SignalAction.html).

This is used to make the file chooser show a &quot;Location&quot; prompt which
the user can use to manually type the name of the file he wishes to select.

The default bindings for this signal are &lt;kbd&gt;Control&lt;/kbd&gt;-&lt;kbd&gt;L&lt;/kbd&gt;
with a @path string of &quot;&quot; (the empty string). It is also bound to
&lt;kbd&gt;/&lt;/kbd&gt; with a @path string of &quot;`/`&quot; (a slash):  this lets you
type `/` and immediately type a path name. On Unix systems, this is
bound to &lt;kbd&gt;~&lt;/kbd&gt; (tilde) with a @path string of &quot;~&quot; itself for
access to home directories.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a string that gets put in the text entry for the file name
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFileChooserWidget::location-popup-on-paste">
<description>
Emitted when the user asks for it.

This is a [keybinding signal](class.SignalAction.html).

This is used to make the file chooser show a &quot;Location&quot; prompt
when the user pastes into a `GtkFileChooserWidget`.

The default binding for this signal is &lt;kbd&gt;Control&lt;/kbd&gt;-&lt;kbd&gt;V&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFileChooserWidget::location-toggle-popup">
<description>
Emitted when the user asks for it.

This is a [keybinding signal](class.SignalAction.html).

This is used to toggle the visibility of a &quot;Location&quot; prompt
which the user can use to manually type the name of the file
he wishes to select.

The default binding for this signal is &lt;kbd&gt;Control&lt;/kbd&gt;-&lt;kbd&gt;L&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFileChooserWidget::places-shortcut">
<description>
Emitted when the user asks for it.

This is a [keybinding signal](class.SignalAction.html).

This is used to move the focus to the places sidebar.

The default binding for this signal is &lt;kbd&gt;Alt&lt;/kbd&gt;-&lt;kbd&gt;P&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFileChooserWidget::quick-bookmark">
<description>
Emitted when the user asks for it.

This is a [keybinding signal](class.SignalAction.html).

This is used to make the file chooser switch to the bookmark
specified in the @bookmark_index parameter. For example, if
you have three bookmarks, you can pass 0, 1, 2 to this signal
to switch to each of them, respectively.

The default binding for this signal is &lt;kbd&gt;Alt&lt;/kbd&gt;-&lt;kbd&gt;1&lt;/kbd&gt;,
&lt;kbd&gt;Alt&lt;/kbd&gt;-&lt;kbd&gt;2&lt;/kbd&gt;, etc. until &lt;kbd&gt;Alt&lt;/kbd&gt;-&lt;kbd&gt;0&lt;/kbd&gt;.
Note that in the default binding, that &lt;kbd&gt;Alt&lt;/kbd&gt;-&lt;kbd&gt;1&lt;/kbd&gt; is
actually defined to switch to the bookmark at index 0, and so on
successively.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="bookmark_index">
<parameter_description> the number of the bookmark to switch to
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFileChooserWidget::recent-shortcut">
<description>
Emitted when the user asks for it.

This is a [keybinding signal](class.SignalAction.html).

This is used to make the file chooser show the Recent location.

The default binding for this signal is &lt;kbd&gt;Alt&lt;/kbd&gt;-&lt;kbd&gt;R&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFileChooserWidget::search-shortcut">
<description>
Emitted when the user asks for it.

This is a [keybinding signal](class.SignalAction.html).

This is used to make the file chooser show the search entry.

The default binding for this signal is &lt;kbd&gt;Alt&lt;/kbd&gt;-&lt;kbd&gt;S&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFileChooserWidget::show-hidden">
<description>
Emitted when the user asks for it.

This is a [keybinding signal](class.SignalAction.html).

This is used to make the file chooser display hidden files.

The default binding for this signal is &lt;kbd&gt;Control&lt;/kbd&gt;-&lt;kbd&gt;H&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFileChooserWidget::up-folder">
<description>
Emitted when the user asks for it.

This is a [keybinding signal](class.SignalAction.html).

This is used to make the file chooser go to the parent
of the current folder in the file hierarchy.

The default binding for this signal is &lt;kbd&gt;Alt&lt;/kbd&gt;-&lt;kbd&gt;Up&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkFileChooserWidget:show-time">
<description>
Whether to show the time.

Since: 4.10

</description>
</property>

<property name="GtkFileDialog:accept-label">
<description>
Label for the file chooser's accept button.

Since: 4.10

</description>
</property>

<property name="GtkFileDialog:default-filter">
<description>
The default filter, that is, the filter that is initially
active in the file chooser dialog.

If the default filter is %NULL, the first filter of [property@Gtk.FileDialog:filters]
is used as the default filter. If that property contains no filter, the dialog will
be unfiltered.

If [property@Gtk.FileDialog:filters] is not %NULL, the default filter should be part
of the list. If it is not, the dialog may choose to not make it available.

Since: 4.10

</description>
</property>

<property name="GtkFileDialog:filters">
<description>
The list of filters.

See [property@Gtk.FileDialog:default-filter] about how those two properties interact.

Since: 4.10

</description>
</property>

<property name="GtkFileDialog:initial-file">
<description>
The initial file, that is, the file that is initially selected
in the file chooser dialog

This is a utility property that sets both [property@Gtk.FileDialog:initial-folder] and
[property@Gtk.FileDialog:initial-name].

Since: 4.10

</description>
</property>

<property name="GtkFileDialog:initial-folder">
<description>
The initial folder, that is, the directory that is initially
opened in the file chooser dialog

Since: 4.10

</description>
</property>

<property name="GtkFileDialog:initial-name">
<description>
The initial name, that is, the filename that is initially
selected in the file chooser dialog.

Since: 4.10

</description>
</property>

<property name="GtkFileDialog:modal">
<description>
Whether the file chooser dialog is modal.

Since: 4.10

</description>
</property>

<property name="GtkFileDialog:title">
<description>
A title that may be shown on the file chooser dialog.

Since: 4.10

</description>
</property>

<property name="GtkFileFilter:mime-types">
<description>
The MIME types that this filter matches.

Since: 4.10

</description>
</property>

<property name="GtkFileFilter:name">
<description>
The human-readable name of the filter.

This is the string that will be displayed in the file chooser
user interface if there is a selectable list of filters.

</description>
</property>

<property name="GtkFileFilter:patterns">
<description>
The patterns that this filter matches.

Since: 4.10

</description>
</property>

<property name="GtkFileFilter:suffixes">
<description>
The suffixes that this filter matches.

Since: 4.10

</description>
</property>

<property name="GtkFileLauncher:always-ask">
<description>
Whether to ask the user to choose an app for opening the file. If `FALSE`,
the file might be opened with a default app or the previous choice.

Since: 4.12

</description>
</property>

<property name="GtkFileLauncher:file">
<description>
The file to launch.

Since: 4.10

</description>
</property>

<signal name="GtkFilter::changed">
<description>
Emitted whenever the filter changed.

Users of the filter should then check items again via
[method@Gtk.Filter.match].

`GtkFilterListModel` handles this signal automatically.

Depending on the @change parameter, not all items need
to be checked, but only some. Refer to the [enum@Gtk.FilterChange]
documentation for details.

</description>
<parameters>
<parameter name="self">
<parameter_description> The `GtkFilter`
</parameter_description>
</parameter>
<parameter name="change">
<parameter_description> how the filter changed
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GtkFilterChange">
<description>
Describes changes in a filter in more detail and allows objects
using the filter to optimize refiltering items.

If you are writing an implementation and are not sure which
value to pass, %GTK_FILTER_CHANGE_DIFFERENT is always a correct
choice.

</description>
<parameters>
<parameter name="GTK_FILTER_CHANGE_DIFFERENT">
<parameter_description> The filter change cannot be
described with any of the other enumeration values.
</parameter_description>
</parameter>
<parameter name="GTK_FILTER_CHANGE_LESS_STRICT">
<parameter_description> The filter is less strict than
it was before: All items that it used to return %TRUE for
still return %TRUE, others now may, too.
</parameter_description>
</parameter>
<parameter name="GTK_FILTER_CHANGE_MORE_STRICT">
<parameter_description> The filter is more strict than
it was before: All items that it used to return %FALSE for
still return %FALSE, others now may, too.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkFilterListModel:filter">
<description>
The filter for this model.

</description>
</property>

<property name="GtkFilterListModel:incremental">
<description>
If the model should filter items incrementally.

</description>
</property>

<property name="GtkFilterListModel:item-type">
<description>
The type of items. See [method@Gio.ListModel.get_item_type].

Since: 4.8

</description>
</property>

<property name="GtkFilterListModel:model">
<description>
The model being filtered.

</description>
</property>

<property name="GtkFilterListModel:n-items">
<description>
The number of items. See [method@Gio.ListModel.get_n_items].

Since: 4.8

</description>
</property>

<property name="GtkFilterListModel:pending">
<description>
Number of items not yet filtered.

</description>
</property>

<enum name="GtkFilterMatch">
<description>
Describes the known strictness of a filter.

Note that for filters where the strictness is not known,
%GTK_FILTER_MATCH_SOME is always an acceptable value,
even if a filter does match all or no items.

</description>
<parameters>
<parameter name="GTK_FILTER_MATCH_SOME">
<parameter_description> The filter matches some items,
gtk_filter_match() may return %TRUE or %FALSE
</parameter_description>
</parameter>
<parameter name="GTK_FILTER_MATCH_NONE">
<parameter_description> The filter does not match any item,
gtk_filter_match() will always return %FALSE.
</parameter_description>
</parameter>
<parameter name="GTK_FILTER_MATCH_ALL">
<parameter_description> The filter matches all items,
gtk_filter_match() will alays return %TRUE.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkFixedLayoutChild:transform">
<description>
The transform of the child.

</description>
</property>

<property name="GtkFlattenListModel:item-type">
<description>
The type of items. See [method@Gio.ListModel.get_item_type].

Since: 4.8

</description>
</property>

<property name="GtkFlattenListModel:model">
<description>
The model being flattened.

</description>
</property>

<property name="GtkFlattenListModel:n-items">
<description>
The number of items. See [method@Gio.ListModel.get_n_items].

Since: 4.8

</description>
</property>

<signal name="GtkFlowBox::activate-cursor-child">
<description>
Emitted when the user activates the @box.

This is a [keybinding signal](class.SignalAction.html).

</description>
<parameters>
<parameter name="box">
<parameter_description> the `GtkFlowBox` on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFlowBox::child-activated">
<description>
Emitted when a child has been activated by the user.

</description>
<parameters>
<parameter name="box">
<parameter_description> the `GtkFlowBox` on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child that is activated
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFlowBox::move-cursor">
<description>
Emitted when the user initiates a cursor movement.

This is a [keybinding signal](class.SignalAction.html).
Applications should not connect to it, but may emit it with
g_signal_emit_by_name() if they need to control the cursor
programmatically.

The default bindings for this signal come in two variants,
the variant with the Shift modifier extends the selection,
the variant without the Shift modifier does not.
There are too many key combinations to list them all here.

- &lt;kbd&gt;←&lt;/kbd&gt;, &lt;kbd&gt;→&lt;/kbd&gt;, &lt;kbd&gt;↑&lt;/kbd&gt;, &lt;kbd&gt;↓&lt;/kbd&gt;
move by individual children
- &lt;kbd&gt;Home&lt;/kbd&gt;, &lt;kbd&gt;End&lt;/kbd&gt; move to the ends of the box
- &lt;kbd&gt;PgUp&lt;/kbd&gt;, &lt;kbd&gt;PgDn&lt;/kbd&gt; move vertically by pages


</description>
<parameters>
<parameter name="box">
<parameter_description> the `GtkFlowBox` on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="step">
<parameter_description> the granularity of the move, as a `GtkMovementStep`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> the number of @step units to move
</parameter_description>
</parameter>
<parameter name="extend">
<parameter_description> whether to extend the selection
</parameter_description>
</parameter>
<parameter name="modify">
<parameter_description> whether to modify the selection
</parameter_description>
</parameter>
</parameters>
<return> %TRUE to stop other handlers from being invoked for the event.
%FALSE to propagate the event further.
</return>
</signal>

<signal name="GtkFlowBox::select-all">
<description>
Emitted to select all children of the box,
if the selection mode permits it.

This is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal is &lt;kbd&gt;Ctrl&lt;/kbd&gt;-&lt;kbd&gt;a&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="box">
<parameter_description> the `GtkFlowBox` on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFlowBox::selected-children-changed">
<description>
Emitted when the set of selected children changes.

Use [method@Gtk.FlowBox.selected_foreach] or
[method@Gtk.FlowBox.get_selected_children] to obtain the
selected children.

</description>
<parameters>
<parameter name="box">
<parameter_description> the `GtkFlowBox` on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFlowBox::toggle-cursor-child">
<description>
Emitted to toggle the selection of the child that has the focus.

This is a [keybinding signal](class.SignalAction.html).

The default binding for this signal is &lt;kbd&gt;Ctrl&lt;/kbd&gt;-&lt;kbd&gt;Space&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="box">
<parameter_description> the `GtkFlowBox` on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFlowBox::unselect-all">
<description>
Emitted to unselect all children of the box,
if the selection mode permits it.

This is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal is &lt;kbd&gt;Ctrl&lt;/kbd&gt;-&lt;kbd&gt;Shift&lt;/kbd&gt;-&lt;kbd&gt;a&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="box">
<parameter_description> the `GtkFlowBox` on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkFlowBox:activate-on-single-click">
<description>
Determines whether children can be activated with a single
click, or require a double-click.

</description>
</property>

<property name="GtkFlowBox:column-spacing">
<description>
The amount of horizontal space between two children.

</description>
</property>

<property name="GtkFlowBox:homogeneous">
<description>
Determines whether all children should be allocated the
same size.

</description>
</property>

<property name="GtkFlowBox:max-children-per-line">
<description>
The maximum amount of children to request space for consecutively
in the given orientation.

</description>
</property>

<property name="GtkFlowBox:min-children-per-line">
<description>
The minimum number of children to allocate consecutively
in the given orientation.

Setting the minimum children per line ensures
that a reasonably small height will be requested
for the overall minimum width of the box.

</description>
</property>

<property name="GtkFlowBox:row-spacing">
<description>
The amount of vertical space between two children.

</description>
</property>

<property name="GtkFlowBox:selection-mode">
<description>
The selection mode used by the flow box.

</description>
</property>

<signal name="GtkFlowBoxChild::activate">
<description>
Emitted when the user activates a child widget in a `GtkFlowBox`.

This can happen either by clicking or double-clicking,
or via a keybinding.

This is a [keybinding signal](class.SignalAction.html),
but it can be used by applications for their own purposes.

The default bindings are &lt;kbd&gt;Space&lt;/kbd&gt; and &lt;kbd&gt;Enter&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="child">
<parameter_description> The child on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkFlowBoxChild:child">
<description>
The child widget.

</description>
</property>

<property name="GtkFlwoBox:accept-unpaired-release">
<description>
Whether to accept unpaired release events.

</description>
</property>

<signal name="GtkFontButton::activate">
<description>
Emitted to when the font button is activated.

The `::activate` signal on `GtkFontButton` is an action signal and
emitting it causes the button to present its dialog.

Since: 4.4

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkFontButton::font-set">
<description>
Emitted when the user selects a font.

When handling this signal, use [method@Gtk.FontChooser.get_font]
to find out which font was just selected.

Note that this signal is only emitted when the user changes the font.
If you need to react to programmatic font changes as well, use
the notify::font signal.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkFontButton:modal">
<description>
Whether the font chooser dialog should be modal.

</description>
</property>

<property name="GtkFontButton:title">
<description>
The title of the font chooser dialog.

</description>
</property>

<property name="GtkFontButton:use-font">
<description>
Whether the buttons label will be drawn in the selected font.

</description>
</property>

<property name="GtkFontButton:use-size">
<description>
Whether the buttons label will use the selected font size.

</description>
</property>

<signal name="GtkFontChooser::font-activated">
<description>
Emitted when a font is activated.

This usually happens when the user double clicks an item,
or an item is selected and the user presses one of the keys
Space, Shift+Space, Return or Enter.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton] instead

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="fontname">
<parameter_description> the font name
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkFontChooser:font">
<description>
The font description as a string, e.g. &quot;Sans Italic 12&quot;.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton] instead

</description>
</property>

<property name="GtkFontChooser:font-desc">
<description>
The font description as a `PangoFontDescription`.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton] instead

</description>
</property>

<property name="GtkFontChooser:font-features">
<description>
The selected font features.

The format of the string is compatible with
CSS and with Pango attributes.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton] instead

</description>
</property>

<property name="GtkFontChooser:language">
<description>
The language for which the font features were selected.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton] instead

</description>
</property>

<property name="GtkFontChooser:level">
<description>
The level of granularity to offer for selecting fonts.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton] instead

</description>
</property>

<property name="GtkFontChooser:preview-text">
<description>
The string with which to preview the font.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton] instead

</description>
</property>

<property name="GtkFontChooser:show-preview-entry">
<description>
Whether to show an entry to change the preview text.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton] instead

</description>
</property>

<enum name="GtkFontChooserLevel">
<description>
Specifies the granularity of font selection
that is desired in a `GtkFontChooser`.

This enumeration may be extended in the future; applications should
ignore unknown values.

</description>
<parameters>
<parameter name="GTK_FONT_CHOOSER_LEVEL_FAMILY">
<parameter_description> Allow selecting a font family
</parameter_description>
</parameter>
<parameter name="GTK_FONT_CHOOSER_LEVEL_STYLE">
<parameter_description> Allow selecting a specific font face
</parameter_description>
</parameter>
<parameter name="GTK_FONT_CHOOSER_LEVEL_SIZE">
<parameter_description> Allow selecting a specific font size
</parameter_description>
</parameter>
<parameter name="GTK_FONT_CHOOSER_LEVEL_VARIATIONS">
<parameter_description> Allow changing OpenType font variation axes
</parameter_description>
</parameter>
<parameter name="GTK_FONT_CHOOSER_LEVEL_FEATURES">
<parameter_description> Allow selecting specific OpenType font features
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkFontChooserWidget:tweak-action">
<description>
A toggle action that can be used to switch to the tweak page
of the font chooser widget, which lets the user tweak the
OpenType features and variation axes of the selected font.

The action will be enabled or disabled depending on whether
the selected font has any features or axes.

</description>
</property>

<property name="GtkFontDialog:filter">
<description>
Sets a filter to restrict what fonts are shown
in the font chooser dialog.

Since: 4.10

</description>
</property>

<property name="GtkFontDialog:font-map">
<description>
Sets a custom font map to select fonts from.

A custom font map can be used to present application-specific
fonts instead of or in addition to the normal system fonts.

Since: 4.10

</description>
</property>

<property name="GtkFontDialog:language">
<description>
The language for which the font features are selected.

Since: 4.10

</description>
</property>

<property name="GtkFontDialog:modal">
<description>
Whether the font chooser dialog is modal.

Since: 4.10

</description>
</property>

<property name="GtkFontDialog:title">
<description>
A title that may be shown on the font chooser
dialog that is presented by [method@Gtk.FontDialog.choose_font].

Since: 4.10

</description>
</property>

<signal name="GtkFontDialogButton::activate">
<description>
Emitted when the font dialog button is activated.

The `::activate` signal on `GtkFontDialogButton` is an action signal
and emitting it causes the button to pop up its dialog.

Since: 4.14

</description>
<parameters>
<parameter name="widget">
<parameter_description> The object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkFontDialogButton:dialog">
<description>
The `GtkFontDialog` that contains parameters for
the font chooser dialog.

Since: 4.10

</description>
</property>

<property name="GtkFontDialogButton:font-desc">
<description>
The selected font.

This property can be set to give the button its initial
font, and it will be updated to reflect the users choice
in the font chooser dialog.

Listen to `notify::font-desc` to get informed about changes
to the buttons font.

Since: 4.10

</description>
</property>

<property name="GtkFontDialogButton:font-features">
<description>
The selected font features.

This property will be updated to reflect the users choice
in the font chooser dialog.

Listen to `notify::font-features` to get informed about changes
to the buttons font features.

Since: 4.10

</description>
</property>

<property name="GtkFontDialogButton:language">
<description>
The selected language for font features.

This property will be updated to reflect the users choice
in the font chooser dialog.

Listen to `notify::language` to get informed about changes
to the buttons language.

Since: 4.10

</description>
</property>

<property name="GtkFontDialogButton:level">
<description>
The level of detail for the font chooser dialog.

</description>
</property>

<property name="GtkFontDialogButton:use-font">
<description>
Whether the buttons label will be drawn in the selected font.

</description>
</property>

<property name="GtkFontDialogButton:use-size">
<description>
Whether the buttons label will use the selected font size.

</description>
</property>

<enum name="GtkFontLevel">
<description>
The level of granularity for the font selection.

Depending on this value, the `PangoFontDescription` that
is returned by [method@Gtk.FontDialogButton.get_font_desc]
will have more or less fields set.

Since: 4.10

</description>
<parameters>
<parameter name="GTK_FONT_LEVEL_FAMILY">
<parameter_description> Select a font family
</parameter_description>
</parameter>
<parameter name="GTK_FONT_LEVEL_FACE">
<parameter_description> Select a font face (i.e. a family and a style)
</parameter_description>
</parameter>
<parameter name="GTK_FONT_LEVEL_FONT">
<parameter_description> Select a font (i.e. a face with a size, and possibly font variations)
</parameter_description>
</parameter>
<parameter name="GTK_FONT_LEVEL_FEATURES">
<parameter_description> Select a font and font features
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkFrame:child">
<description>
The child widget.

</description>
</property>

<property name="GtkFrame:label">
<description>
Text of the frame's label.

</description>
</property>

<property name="GtkFrame:label-widget">
<description>
Widget to display in place of the usual frame label.

</description>
</property>

<property name="GtkFrame:label-xalign">
<description>
The horizontal alignment of the label.

</description>
</property>

<signal name="GtkGLArea::create-context">
<description>
Emitted when the widget is being realized.

This allows you to override how the GL context is created.
This is useful when you want to reuse an existing GL context,
or if you want to try creating different kinds of GL options.

If context creation fails then the signal handler can use
[method@Gtk.GLArea.set_error] to register a more detailed error
of how the construction failed.


</description>
<parameters>
<parameter name="area">
<parameter_description> the `GtkGLArea` that emitted the signal
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> location to store error information on failure
</parameter_description>
</parameter>
</parameters>
<return> a newly created `GdkGLContext`;
the `GtkGLArea` widget will take ownership of the returned value.
</return>
</signal>

<signal name="GtkGLArea::render">
<description>
Emitted every time the contents of the `GtkGLArea` should be redrawn.

The @context is bound to the @area prior to emitting this function,
and the buffers are painted to the window once the emission terminates.


</description>
<parameters>
<parameter name="area">
<parameter_description> the `GtkGLArea` that emitted the signal
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GdkGLContext` used by @area
</parameter_description>
</parameter>
</parameters>
<return> %TRUE to stop other handlers from being invoked for the event.
%FALSE to propagate the event further.
</return>
</signal>

<signal name="GtkGLArea::resize">
<description>
Emitted once when the widget is realized, and then each time the widget
is changed while realized.

This is useful in order to keep GL state up to date with the widget size,
like for instance camera properties which may depend on the width/height
ratio.

The GL context for the area is guaranteed to be current when this signal
is emitted.

The default handler sets up the GL viewport.

</description>
<parameters>
<parameter name="area">
<parameter_description> the `GtkGLArea` that emitted the signal
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the width of the viewport
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the height of the viewport
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkGLArea:allowed-apis">
<description>
The allowed APIs.

Since: 4.12

</description>
</property>

<property name="GtkGLArea:api">
<description>
The API currently in use.

Since: 4.12

</description>
</property>

<property name="GtkGLArea:auto-render">
<description>
If set to %TRUE the ::render signal will be emitted every time
the widget draws.

This is the default and is useful if drawing the widget is faster.

If set to %FALSE the data from previous rendering is kept around and will
be used for drawing the widget the next time, unless the window is resized.
In order to force a rendering [method@Gtk.GLArea.queue_render] must be called.
This mode is useful when the scene changes seldom, but takes a long time
to redraw.

</description>
</property>

<property name="GtkGLArea:context">
<description>
The `GdkGLContext` used by the `GtkGLArea` widget.

The `GtkGLArea` widget is responsible for creating the `GdkGLContext`
instance. If you need to render with other kinds of buffers (stencil,
depth, etc), use render buffers.

</description>
</property>

<property name="GtkGLArea:has-depth-buffer">
<description>
If set to %TRUE the widget will allocate and enable a depth buffer for the
target framebuffer.

Setting this property will enable GL's depth testing as a side effect. If
you don't need depth testing, you should call `glDisable(GL_DEPTH_TEST)`
in your `GtkGLArea::render` handler.

</description>
</property>

<property name="GtkGLArea:has-stencil-buffer">
<description>
If set to %TRUE the widget will allocate and enable a stencil buffer for the
target framebuffer.

</description>
</property>

<property name="GtkGLArea:use-es">
<description>
If set to %TRUE the widget will try to create a `GdkGLContext` using
OpenGL ES instead of OpenGL.

Deprecated: 4.12: Use [property@Gtk.GLArea:allowed-apis]

</description>
</property>

<signal name="GtkGesture::begin">
<description>
Emitted when the gesture is recognized.

This means the number of touch sequences matches
[property@Gtk.Gesture:n-points].

Note: These conditions may also happen when an extra touch
(eg. a third touch on a 2-touches gesture) is lifted, in that
situation @sequence won't pertain to the current set of active
touches, so don't rely on this being true.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="sequence">
<parameter_description> the `GdkEventSequence` that made the gesture
to be recognized
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkGesture::cancel">
<description>
Emitted whenever a sequence is cancelled.

This usually happens on active touches when
[method@Gtk.EventController.reset] is called on @gesture
(manually, due to grabs...), or the individual @sequence
was claimed by parent widgets' controllers (see
[method@Gtk.Gesture.set_sequence_state]).

@gesture must forget everything about @sequence as in
response to this signal.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="sequence">
<parameter_description> the `GdkEventSequence` that was cancelled
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkGesture::end">
<description>
Emitted when @gesture either stopped recognizing the event
sequences as something to be handled, or the number of touch
sequences became higher or lower than [property@Gtk.Gesture:n-points].

Note: @sequence might not pertain to the group of sequences that
were previously triggering recognition on @gesture (ie. a just
pressed touch sequence that exceeds [property@Gtk.Gesture:n-points]).
This situation may be detected by checking through
[method@Gtk.Gesture.handles_sequence].

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="sequence">
<parameter_description> the `GdkEventSequence` that made gesture
recognition to finish
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkGesture::sequence-state-changed">
<description>
Emitted whenever a sequence state changes.

See [method@Gtk.Gesture.set_sequence_state] to know
more about the expectable sequence lifetimes.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="sequence">
<parameter_description> the `GdkEventSequence` that was cancelled
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> the new sequence state
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkGesture::update">
<description>
Emitted whenever an event is handled while the gesture is recognized.

@sequence is guaranteed to pertain to the set of active touches.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="sequence">
<parameter_description> the `GdkEventSequence` that was updated
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkGesture:n-points">
<description>
The number of touch points that trigger
recognition on this gesture.

</description>
</property>

<signal name="GtkGestureClick::pressed">
<description>
Emitted whenever a button or touch press happens.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="n_press">
<parameter_description> how many touch/button presses happened with this one
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> The X coordinate, in widget allocation coordinates
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> The Y coordinate, in widget allocation coordinates
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkGestureClick::released">
<description>
Emitted when a button or touch is released.

@n_press will report the number of press that is paired to
this event, note that [signal@Gtk.GestureClick::stopped] may
have been emitted between the press and its release, @n_press
will only start over at the next press.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="n_press">
<parameter_description> number of press that is paired with this release
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> The X coordinate, in widget allocation coordinates
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> The Y coordinate, in widget allocation coordinates
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkGestureClick::stopped">
<description>
Emitted whenever any time/distance threshold has been exceeded.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkGestureClick::unpaired-release">
<description>
Emitted whenever the gesture receives a release
event that had no previous corresponding press.

Due to implicit grabs, this can only happen on situations
where input is grabbed elsewhere mid-press or the pressed
widget voluntarily relinquishes its implicit grab.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X coordinate of the event
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y coordinate of the event
</parameter_description>
</parameter>
<parameter name="button">
<parameter_description> Button being released
</parameter_description>
</parameter>
<parameter name="sequence">
<parameter_description> Sequence being released
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkGestureDrag::drag-begin">
<description>
Emitted whenever dragging starts.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="start_x">
<parameter_description> X coordinate, relative to the widget allocation
</parameter_description>
</parameter>
<parameter name="start_y">
<parameter_description> Y coordinate, relative to the widget allocation
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkGestureDrag::drag-end">
<description>
Emitted whenever the dragging is finished.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="offset_x">
<parameter_description> X offset, relative to the start point
</parameter_description>
</parameter>
<parameter name="offset_y">
<parameter_description> Y offset, relative to the start point
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkGestureDrag::drag-update">
<description>
Emitted whenever the dragging point moves.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="offset_x">
<parameter_description> X offset, relative to the start point
</parameter_description>
</parameter>
<parameter name="offset_y">
<parameter_description> Y offset, relative to the start point
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkGestureLongPress::cancelled">
<description>
Emitted whenever a press moved too far, or was released
before [signal@Gtk.GestureLongPress::pressed] happened.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkGestureLongPress::pressed">
<description>
Emitted whenever a press goes unmoved/unreleased longer than
what the GTK defaults tell.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the X coordinate where the press happened, relative to the widget allocation
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the Y coordinate where the press happened, relative to the widget allocation
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkGestureLongPress:delay-factor">
<description>
Factor by which to modify the default timeout.

</description>
</property>

<signal name="GtkGesturePan::pan">
<description>
Emitted once a panning gesture along the expected axis is detected.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> The object which received the signal
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> current direction of the pan gesture
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> Offset along the gesture orientation
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkGesturePan:orientation">
<description>
The expected orientation of pan gestures.

</description>
</property>

<signal name="GtkGestureRotate::angle-changed">
<description>
Emitted when the angle between both tracked points changes.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="angle">
<parameter_description> Current angle in radians
</parameter_description>
</parameter>
<parameter name="angle_delta">
<parameter_description> Difference with the starting angle, in radians
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkGestureSingle:button">
<description>
Mouse button number to listen to, or 0 to listen for any button.

</description>
</property>

<property name="GtkGestureSingle:exclusive">
<description>
Whether the gesture is exclusive.

Exclusive gestures only listen to pointer and pointer emulated events.

</description>
</property>

<property name="GtkGestureSingle:touch-only">
<description>
Whether the gesture handles only touch events.

</description>
</property>

<signal name="GtkGestureStylus::down">
<description>
Emitted when the stylus touches the device.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the `GtkGestureStylus` that emitted the signal
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the X coordinate of the stylus event
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the Y coordinate of the stylus event
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkGestureStylus::motion">
<description>
Emitted when the stylus moves while touching the device.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the `GtkGestureStylus` that emitted the signal
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the X coordinate of the stylus event
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the Y coordinate of the stylus event
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkGestureStylus::proximity">
<description>
Emitted when the stylus is in proximity of the device.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the `GtkGestureStylus` that emitted the signal
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the X coordinate of the stylus event
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the Y coordinate of the stylus event
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkGestureStylus::up">
<description>
Emitted when the stylus no longer touches the device.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the `GtkGestureStylus` that emitted the signal
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the X coordinate of the stylus event
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the Y coordinate of the stylus event
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkGestureStylus:stylus-only">
<description>
If this gesture should exclusively react to stylus input devices.

Since: 4.10

</description>
</property>

<signal name="GtkGestureSwipe::swipe">
<description>
Emitted when the recognized gesture is finished.

Velocity and direction are a product of previously recorded events.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> object which received the signal
</parameter_description>
</parameter>
<parameter name="velocity_x">
<parameter_description> velocity in the X axis, in pixels/sec
</parameter_description>
</parameter>
<parameter name="velocity_y">
<parameter_description> velocity in the Y axis, in pixels/sec
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkGestureZoom::scale-changed">
<description>
Emitted whenever the distance between both tracked sequences changes.

</description>
<parameters>
<parameter name="controller">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> Scale delta, taking the initial state as 1:1
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkGraphicsOffload:child">
<description>
The child widget.

Since: 4.14

</description>
</property>

<property name="GtkGraphicsOffload:enabled">
<description>
Whether graphics offload is enabled.

Since: 4.14

</description>
</property>

<property name="GtkGrid:baseline-row">
<description>
The row to align to the baseline when valign is using baseline alignment.

</description>
</property>

<property name="GtkGrid:column-homogeneous">
<description>
If %TRUE, the columns are all the same width.

</description>
</property>

<property name="GtkGrid:column-spacing">
<description>
The amount of space between two consecutive columns.

</description>
</property>

<property name="GtkGrid:row-homogeneous">
<description>
If %TRUE, the rows are all the same height.

</description>
</property>

<property name="GtkGrid:row-spacing">
<description>
The amount of space between two consecutive rows.

</description>
</property>

<property name="GtkGridLayout:baseline-row">
<description>
The row to align to the baseline, when `GtkWidget:valign` is set
to %GTK_ALIGN_BASELINE.

</description>
</property>

<property name="GtkGridLayout:column-homogeneous">
<description>
Whether all the columns in the grid have the same width.

</description>
</property>

<property name="GtkGridLayout:column-spacing">
<description>
The amount of space between to consecutive columns.

</description>
</property>

<property name="GtkGridLayout:row-homogeneous">
<description>
Whether all the rows in the grid have the same height.

</description>
</property>

<property name="GtkGridLayout:row-spacing">
<description>
The amount of space between to consecutive rows.

</description>
</property>

<property name="GtkGridLayoutChild:column">
<description>
The column to place the child in.

</description>
</property>

<property name="GtkGridLayoutChild:column-span">
<description>
The number of columns the child spans to.

</description>
</property>

<property name="GtkGridLayoutChild:row">
<description>
The row to place the child in.

</description>
</property>

<property name="GtkGridLayoutChild:row-span">
<description>
The number of rows the child spans to.

</description>
</property>

<signal name="GtkGridView::activate">
<description>
Emitted when a cell has been activated by the user,
usually via activating the GtkGridView|list.activate-item action.

This allows for a convenient way to handle activation in a gridview.
See [property@Gtk.ListItem:activatable] for details on how to use
this signal.

</description>
<parameters>
<parameter name="self">
<parameter_description> The `GtkGridView`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position of item to activate
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkGridView:enable-rubberband">
<description>
Allow rubberband selection.

</description>
</property>

<property name="GtkGridView:factory">
<description>
Factory for populating list items.

</description>
</property>

<property name="GtkGridView:max-columns">
<description>
Maximum number of columns per row.

If this number is smaller than [property@Gtk.GridView:min-columns],
that value is used instead.

</description>
</property>

<property name="GtkGridView:min-columns">
<description>
Minimum number of columns per row.

</description>
</property>

<property name="GtkGridView:model">
<description>
Model for the items displayed.

</description>
</property>

<property name="GtkGridView:single-click-activate">
<description>
Activate rows on single click and select them on hover.

</description>
</property>

<property name="GtkGridView:tab-behavior">
<description>
Behavior of the &lt;kbd&gt;Tab&lt;/kbd&gt; key

Since: 4.12

</description>
</property>

<property name="GtkHeaderBar:decoration-layout">
<description>
The decoration layout for buttons.

If this property is not set, the
[property@Gtk.Settings:gtk-decoration-layout] setting is used.

</description>
</property>

<property name="GtkHeaderBar:show-title-buttons">
<description>
Whether to show title buttons like close, minimize, maximize.

Which buttons are actually shown and where is determined
by the [property@Gtk.HeaderBar:decoration-layout] property,
and by the state of the window (e.g. a close button will not
be shown if the window can't be closed).

</description>
</property>

<signal name="GtkIMContext::commit">
<description>
The ::commit signal is emitted when a complete input sequence
has been entered by the user.

If the commit comes after a preediting sequence, the
::commit signal is emitted after ::preedit-end.

This can be a single character immediately after a key press or
the final result of preediting.

</description>
<parameters>
<parameter name="context">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> the completed character(s) entered by the user
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkIMContext::delete-surrounding">
<description>
The ::delete-surrounding signal is emitted when the input method
needs to delete all or part of the context surrounding the cursor.


</description>
<parameters>
<parameter name="context">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the character offset from the cursor position of the text
to be deleted. A negative value indicates a position before
the cursor.
</parameter_description>
</parameter>
<parameter name="n_chars">
<parameter_description> the number of characters to be deleted
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the signal was handled.
</return>
</signal>

<signal name="GtkIMContext::preedit-changed">
<description>
The ::preedit-changed signal is emitted whenever the preedit sequence
currently being entered has changed.

It is also emitted at the end of a preedit sequence, in which case
[method@Gtk.IMContext.get_preedit_string] returns the empty string.

</description>
<parameters>
<parameter name="context">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkIMContext::preedit-end">
<description>
The ::preedit-end signal is emitted when a preediting sequence
has been completed or canceled.

</description>
<parameters>
<parameter name="context">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkIMContext::preedit-start">
<description>
The ::preedit-start signal is emitted when a new preediting sequence
starts.

</description>
<parameters>
<parameter name="context">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkIMContext::retrieve-surrounding">
<description>
The ::retrieve-surrounding signal is emitted when the input method
requires the context surrounding the cursor.

The callback should set the input method surrounding context by
calling the [method@Gtk.IMContext.set_surrounding] method.


</description>
<parameters>
<parameter name="context">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the signal was handled.
</return>
</signal>

<property name="GtkIMContext:input-hints">
<description>
Additional hints that allow input methods to fine-tune
their behaviour.

</description>
</property>

<property name="GtkIMContext:input-purpose">
<description>
The purpose of the text field that the `GtkIMContext is connected to.

This property can be used by on-screen keyboards and other input
methods to adjust their behaviour.

</description>
</property>

<enum name="GtkIconLookupFlags">
<description>
Used to specify options for gtk_icon_theme_lookup_icon().

</description>
<parameters>
<parameter name="GTK_ICON_LOOKUP_FORCE_REGULAR">
<parameter_description> Try to always load regular icons, even
when symbolic icon names are given
</parameter_description>
</parameter>
<parameter name="GTK_ICON_LOOKUP_FORCE_SYMBOLIC">
<parameter_description> Try to always load symbolic icons, even
when regular icon names are given
</parameter_description>
</parameter>
<parameter name="GTK_ICON_LOOKUP_PRELOAD">
<parameter_description> Starts loading the texture in the background
so it is ready when later needed.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkIconPaintable:file">
<description>
The file representing the icon, if any.

</description>
</property>

<property name="GtkIconPaintable:icon-name">
<description>
The icon name that was chosen during lookup.

</description>
</property>

<property name="GtkIconPaintable:is-symbolic">
<description>
Whether the icon is symbolic or not.

</description>
</property>

<enum name="GtkIconSize">
<description>
Built-in icon sizes.

Icon sizes default to being inherited. Where they cannot be
inherited, text size is the default.

All widgets which use `GtkIconSize` set the normal-icons or
large-icons style classes correspondingly, and let themes
determine the actual size to be used with the
`-gtk-icon-size` CSS property.

</description>
<parameters>
<parameter name="GTK_ICON_SIZE_INHERIT">
<parameter_description> Keep the size of the parent element
</parameter_description>
</parameter>
<parameter name="GTK_ICON_SIZE_NORMAL">
<parameter_description> Size similar to text size
</parameter_description>
</parameter>
<parameter name="GTK_ICON_SIZE_LARGE">
<parameter_description> Large size, for example in an icon view
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkIconTheme::changed">
<description>
Emitted when the icon theme changes.

This can happen because current icon theme is switched or
because GTK detects that a change has occurred in the
contents of the current icon theme.

</description>
<parameters>
<parameter name="self">
<parameter_description> the icon theme
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkIconTheme:display">
<description>
The display that this icon theme object is attached to.

</description>
</property>

<property name="GtkIconTheme:icon-names">
<description>
The icon names that are supported by the icon theme.

</description>
</property>

<property name="GtkIconTheme:resource-path">
<description>
Resource paths that will be looked at when looking for icons,
similar to search paths.

The resources are considered as part of the hicolor icon theme
and must be located in subdirectories that are defined in the
hicolor icon theme, such as `@path/16x16/actions/run.png`.
Icons that are directly placed in the resource path instead
of a subdirectory are also considered as ultimate fallback.

</description>
</property>

<property name="GtkIconTheme:search-path">
<description>
The search path for this icon theme.

When looking for icons, GTK will search for a subdirectory of
one or more of the directories in the search path with the same
name as the icon theme containing an index.theme file. (Themes
from multiple of the path elements are combined to allow themes
to be extended by adding icons in the user’s home directory.)

</description>
</property>

<property name="GtkIconTheme:theme-name">
<description>
The name of the icon theme that is being used.

Unless set to a different value, this will be the value of
the `GtkSettings:gtk-icon-theme-name` property of the `GtkSettings`
object associated to the display of the icontheme object. 

</description>
</property>

<enum name="GtkIconThemeError">
<description>
Error codes for `GtkIconTheme` operations.

</description>
<parameters>
<parameter name="GTK_ICON_THEME_NOT_FOUND">
<parameter_description> The icon specified does not exist in the theme
</parameter_description>
</parameter>
<parameter name="GTK_ICON_THEME_FAILED">
<parameter_description> An unspecified error occurred.
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkIconView::activate-cursor-item">
<description>
A [keybinding signal][class@Gtk.SignalAction]
which gets emitted when the user activates the currently
focused item.

Applications should not connect to it, but may emit it with
g_signal_emit_by_name() if they need to control activation
programmatically.

The default bindings for this signal are Space, Return and Enter.

</description>
<parameters>
<parameter name="iconview">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkIconView::item-activated">
<description>
The ::item-activated signal is emitted when the method
gtk_icon_view_item_activated() is called, when the user double
clicks an item with the &quot;activate-on-single-click&quot; property set
to %FALSE, or when the user single clicks an item when the
&quot;activate-on-single-click&quot; property set to %TRUE. It is also
emitted when a non-editable item is selected and one of the keys:
Space, Return or Enter is pressed.

</description>
<parameters>
<parameter name="iconview">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> the `GtkTreePath` for the activated item
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkIconView::move-cursor">
<description>
The ::move-cursor signal is a
[keybinding signal][class@Gtk.SignalAction]
which gets emitted when the user initiates a cursor movement.

Applications should not connect to it, but may emit it with
g_signal_emit_by_name() if they need to control the cursor
programmatically.

The default bindings for this signal include
- Arrow keys which move by individual steps
- Home/End keys which move to the first/last item
- PageUp/PageDown which move by &quot;pages&quot;
All of these will extend the selection when combined with
the Shift modifier.

</description>
<parameters>
<parameter name="iconview">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="step">
<parameter_description> the granularity of the move, as a `GtkMovementStep`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> the number of @step units to move
</parameter_description>
</parameter>
<parameter name="extend">
<parameter_description> whether to extend the selection
</parameter_description>
</parameter>
<parameter name="modify">
<parameter_description> whether to modify the selection
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkIconView::select-all">
<description>
A [keybinding signal][class@Gtk.SignalAction]
which gets emitted when the user selects all items.

Applications should not connect to it, but may emit it with
g_signal_emit_by_name() if they need to control selection
programmatically.

The default binding for this signal is Ctrl-a.

</description>
<parameters>
<parameter name="iconview">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkIconView::select-cursor-item">
<description>
A [keybinding signal][class@Gtk.SignalAction]
which gets emitted when the user selects the item that is currently
focused.

Applications should not connect to it, but may emit it with
g_signal_emit_by_name() if they need to control selection
programmatically.

There is no default binding for this signal.

</description>
<parameters>
<parameter name="iconview">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkIconView::selection-changed">
<description>
The ::selection-changed signal is emitted when the selection
(i.e. the set of selected items) changes.

</description>
<parameters>
<parameter name="iconview">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkIconView::toggle-cursor-item">
<description>
A [keybinding signal][class@Gtk.SignalAction]
which gets emitted when the user toggles whether the currently
focused item is selected or not. The exact effect of this
depend on the selection mode.

Applications should not connect to it, but may emit it with
g_signal_emit_by_name() if they need to control selection
programmatically.

There is no default binding for this signal is Ctrl-Space.

</description>
<parameters>
<parameter name="iconview">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkIconView::unselect-all">
<description>
A [keybinding signal][class@Gtk.SignalAction]
which gets emitted when the user unselects all items.

Applications should not connect to it, but may emit it with
g_signal_emit_by_name() if they need to control selection
programmatically.

The default binding for this signal is Ctrl-Shift-a.

</description>
<parameters>
<parameter name="iconview">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkIconView:activate-on-single-click">
<description>
The activate-on-single-click property specifies whether the &quot;item-activated&quot; signal
will be emitted after a single click.

</description>
</property>

<property name="GtkIconView:cell-area">
<description>
The `GtkCellArea` used to layout cell renderers for this view.

If no area is specified when creating the icon view with gtk_icon_view_new_with_area()
a `GtkCellAreaBox` will be used.

</description>
</property>

<property name="GtkIconView:column-spacing">
<description>
The column-spacing property specifies the space which is inserted between
the columns of the icon view.

</description>
</property>

<property name="GtkIconView:columns">
<description>
The columns property contains the number of the columns in which the
items should be displayed. If it is -1, the number of columns will
be chosen automatically to fill the available area.

</description>
</property>

<property name="GtkIconView:item-orientation">
<description>
The item-orientation property specifies how the cells (i.e. the icon and
the text) of the item are positioned relative to each other.

</description>
</property>

<property name="GtkIconView:item-padding">
<description>
The item-padding property specifies the padding around each
of the icon view's item.

</description>
</property>

<property name="GtkIconView:item-width">
<description>
The item-width property specifies the width to use for each item.
If it is set to -1, the icon view will automatically determine a
suitable item size.

</description>
</property>

<property name="GtkIconView:margin">
<description>
The margin property specifies the space which is inserted
at the edges of the icon view.

</description>
</property>

<property name="GtkIconView:markup-column">
<description>
The ::markup-column property contains the number of the model column
containing markup information to be displayed. The markup column must be
of type `G_TYPE_STRING`. If this property and the :text-column property
are both set to column numbers, it overrides the text column.
If both are set to -1, no texts are displayed.

</description>
</property>

<property name="GtkIconView:pixbuf-column">
<description>
The ::pixbuf-column property contains the number of the model column
containing the pixbufs which are displayed. The pixbuf column must be
of type `GDK_TYPE_PIXBUF`. Setting this property to -1 turns off the
display of pixbufs.

</description>
</property>

<property name="GtkIconView:reorderable">
<description>
The reorderable property specifies if the items can be reordered
by DND.

</description>
</property>

<property name="GtkIconView:row-spacing">
<description>
The row-spacing property specifies the space which is inserted between
the rows of the icon view.

</description>
</property>

<property name="GtkIconView:selection-mode">
<description>
The ::selection-mode property specifies the selection mode of
icon view. If the mode is %GTK_SELECTION_MULTIPLE, rubberband selection
is enabled, for the other modes, only keyboard selection is possible.

</description>
</property>

<property name="GtkIconView:spacing">
<description>
The spacing property specifies the space which is inserted between
the cells (i.e. the icon and the text) of an item.

</description>
</property>

<property name="GtkIconView:text-column">
<description>
The ::text-column property contains the number of the model column
containing the texts which are displayed. The text column must be
of type `G_TYPE_STRING`. If this property and the :markup-column
property are both set to -1, no texts are displayed.

</description>
</property>

<enum name="GtkIconViewDropPosition">
<description>
An enum for determining where a dropped item goes.

</description>
<parameters>
<parameter name="GTK_ICON_VIEW_NO_DROP">
<parameter_description> no drop possible
</parameter_description>
</parameter>
<parameter name="GTK_ICON_VIEW_DROP_INTO">
<parameter_description> dropped item replaces the item
</parameter_description>
</parameter>
<parameter name="GTK_ICON_VIEW_DROP_LEFT">
<parameter_description> dropped item is inserted to the left
</parameter_description>
</parameter>
<parameter name="GTK_ICON_VIEW_DROP_RIGHT">
<parameter_description> dropped item is inserted to the right
</parameter_description>
</parameter>
<parameter name="GTK_ICON_VIEW_DROP_ABOVE">
<parameter_description> dropped item is inserted above
</parameter_description>
</parameter>
<parameter name="GTK_ICON_VIEW_DROP_BELOW">
<parameter_description> dropped item is inserted below
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkImage:file">
<description>
The `GFile` to display.

</description>
</property>

<property name="GtkImage:gicon">
<description>
The `GIcon` displayed in the GtkImage.

For themed icons, If the icon theme is changed, the image will be updated
automatically.

</description>
</property>

<property name="GtkImage:icon-name">
<description>
The name of the icon in the icon theme.

If the icon theme is changed, the image will be updated automatically.

</description>
</property>

<property name="GtkImage:icon-size">
<description>
The symbolic size to display icons at.

</description>
</property>

<property name="GtkImage:paintable">
<description>
The `GdkPaintable` to display.

</description>
</property>

<property name="GtkImage:pixel-size">
<description>
The size in pixels to display icons at.

If set to a value != -1, this property overrides the
[property@Gtk.Image:icon-size] property for images of type
`GTK_IMAGE_ICON_NAME`.

</description>
</property>

<property name="GtkImage:resource">
<description>
A path to a resource file to display.

</description>
</property>

<property name="GtkImage:storage-type">
<description>
The representation being used for image data.

</description>
</property>

<property name="GtkImage:use-fallback">
<description>
Whether the icon displayed in the `GtkImage` will use
standard icon names fallback.

The value of this property is only relevant for images of type
%GTK_IMAGE_ICON_NAME and %GTK_IMAGE_GICON.

</description>
</property>

<enum name="GtkImageType">
<description>
Describes the image data representation used by a [class@Gtk.Image].

If you want to get the image from the widget, you can only get the
currently-stored representation; for instance, if the gtk_image_get_storage_type()
returns %GTK_IMAGE_PAINTABLE, then you can call gtk_image_get_paintable().

For empty images, you can request any storage type (call any of the &quot;get&quot;
functions), but they will all return %NULL values.

</description>
<parameters>
<parameter name="GTK_IMAGE_EMPTY">
<parameter_description> there is no image displayed by the widget
</parameter_description>
</parameter>
<parameter name="GTK_IMAGE_ICON_NAME">
<parameter_description> the widget contains a named icon
</parameter_description>
</parameter>
<parameter name="GTK_IMAGE_GICON">
<parameter_description> the widget contains a `GIcon`
</parameter_description>
</parameter>
<parameter name="GTK_IMAGE_PAINTABLE">
<parameter_description> the widget contains a `GdkPaintable`
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkInfoBar::close">
<description>
Gets emitted when the user uses a keybinding to dismiss the info bar.

The ::close signal is a [keybinding signal](class.SignalAction.html).

The default binding for this signal is the Escape key.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<signal name="GtkInfoBar::response">
<description>
Emitted when an action widget is clicked.

The signal is also emitted when the application programmer
calls [method@Gtk.InfoBar.response]. The @response_id depends
on which action widget was clicked.

</description>
<parameters>
<parameter name="info_bar">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="response_id">
<parameter_description> the response ID
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkInfoBar:message-type">
<description>
The type of the message.

The type may be used to determine the appearance of the info bar.

</description>
</property>

<property name="GtkInfoBar:revealed">
<description>
Whether the info bar shows its contents.

</description>
</property>

<property name="GtkInfoBar:show-close-button">
<description>
Whether to include a standard close button.

</description>
</property>

<enum name="GtkInputHints">
<description>
Describes hints that might be taken into account by input methods
or applications.

Note that input methods may already tailor their behaviour according
to the [enum@InputPurpose] of the entry.

Some common sense is expected when using these flags - mixing
%GTK_INPUT_HINT_LOWERCASE with any of the uppercase hints makes no sense.

This enumeration may be extended in the future; input methods should
ignore unknown values.

</description>
<parameters>
<parameter name="GTK_INPUT_HINT_NONE">
<parameter_description> No special behaviour suggested
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_HINT_SPELLCHECK">
<parameter_description> Suggest checking for typos
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_HINT_NO_SPELLCHECK">
<parameter_description> Suggest not checking for typos
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_HINT_WORD_COMPLETION">
<parameter_description> Suggest word completion
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_HINT_LOWERCASE">
<parameter_description> Suggest to convert all text to lowercase
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_HINT_UPPERCASE_CHARS">
<parameter_description> Suggest to capitalize all text
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_HINT_UPPERCASE_WORDS">
<parameter_description> Suggest to capitalize the first
character of each word
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_HINT_UPPERCASE_SENTENCES">
<parameter_description> Suggest to capitalize the
first word of each sentence
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_HINT_INHIBIT_OSK">
<parameter_description> Suggest to not show an onscreen keyboard
(e.g for a calculator that already has all the keys).
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_HINT_VERTICAL_WRITING">
<parameter_description> The text is vertical
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_HINT_EMOJI">
<parameter_description> Suggest offering Emoji support
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_HINT_NO_EMOJI">
<parameter_description> Suggest not offering Emoji support
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_HINT_PRIVATE">
<parameter_description> Request that the input method should not
update personalized data (like typing history)
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkInputPurpose">
<description>
Describes primary purpose of the input widget.

This information is useful for on-screen keyboards and similar input
methods to decide which keys should be presented to the user.

Note that the purpose is not meant to impose a totally strict rule
about allowed characters, and does not replace input validation.
It is fine for an on-screen keyboard to let the user override the
character set restriction that is expressed by the purpose. The
application is expected to validate the entry contents, even if
it specified a purpose.

The difference between %GTK_INPUT_PURPOSE_DIGITS and
%GTK_INPUT_PURPOSE_NUMBER is that the former accepts only digits
while the latter also some punctuation (like commas or points, plus,
minus) and “e” or “E” as in 3.14E+000.

This enumeration may be extended in the future; input methods should
interpret unknown values as “free form”.

</description>
<parameters>
<parameter name="GTK_INPUT_PURPOSE_FREE_FORM">
<parameter_description> Allow any character
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_PURPOSE_ALPHA">
<parameter_description> Allow only alphabetic characters
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_PURPOSE_DIGITS">
<parameter_description> Allow only digits
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_PURPOSE_NUMBER">
<parameter_description> Edited field expects numbers
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_PURPOSE_PHONE">
<parameter_description> Edited field expects phone number
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_PURPOSE_URL">
<parameter_description> Edited field expects URL
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_PURPOSE_EMAIL">
<parameter_description> Edited field expects email address
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_PURPOSE_NAME">
<parameter_description> Edited field expects the name of a person
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_PURPOSE_PASSWORD">
<parameter_description> Like %GTK_INPUT_PURPOSE_FREE_FORM, but characters are hidden
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_PURPOSE_PIN">
<parameter_description> Like %GTK_INPUT_PURPOSE_DIGITS, but characters are hidden
</parameter_description>
</parameter>
<parameter name="GTK_INPUT_PURPOSE_TERMINAL">
<parameter_description> Allow any character, in addition to control codes
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkInscription:attributes">
<description>
A list of style attributes to apply to the text of the inscription.

Since: 4.8

</description>
</property>

<property name="GtkInscription:markup">
<description>
Utility property that sets both the [property@Gtk.Inscription:text] and
[property@Gtk.Inscription:attributes] properties, mainly intended for use in
GtkBuilder ui files to ease translation support and bindings.

This function uses [func@Pango.parse_markup] to parse the markup into text and
attributes. The markup must be valid. If you cannot ensure that, consider using
[func@Pango.parse_markup] and setting the two properties yourself.

Since: 4.8

</description>
</property>

<property name="GtkInscription:min-chars">
<description>
The number of characters that should fit into the inscription at minimum.

This influences the requested width, not the width actually given to the widget,
which might turn out to be larger.

Note that this is an approximate character width, so some characters might be
wider and some might be thinner, so do not expect the number of characters to
exactly match.

If you set this property to 0, the inscription will not request any width at all
and its width will be determined entirely by its surroundings.

Since: 4.8

</description>
</property>

<property name="GtkInscription:min-lines">
<description>
The number of lines that should fit into the inscription at minimum.

This influences the requested height, not the height actually given to the widget,
which might turn out to be larger.

Note that this is an approximate line height, so if the text uses things like fancy
Unicode or attribute that influence the height, the text might not fit.

If you set this property to 0, the inscription will not request any height at all
and its height will be determined entirely by its surroundings.

Since: 4.8

</description>
</property>

<property name="GtkInscription:nat-chars">
<description>
The number of characters that should ideally fit into the inscription.

This influences the requested width, not the width actually given to the widget.
The widget might turn out larger as well as smaller.

If this property is set to a value smaller than [property@Gtk.Inscription:min-chars],
that value will be used. In particular, for the default value of 0, this will always
be the case.

Since: 4.8

</description>
</property>

<property name="GtkInscription:nat-lines">
<description>
The number of lines that should ideally fit into the inscription.

This influences the requested height, not the height actually given to the widget.
The widget might turn out larger as well as smaller.

If this property is set to a value smaller than [property@Gtk.Inscription:min-lines],
that value will be used. In particular, for the default value of 0, this will always
be the case.

Since: 4.8

</description>
</property>

<property name="GtkInscription:text">
<description>
The displayed text.

Since: 4.8

</description>
</property>

<property name="GtkInscription:text-overflow">
<description>
The overflow method to use for the text.

Since: 4.8

</description>
</property>

<property name="GtkInscription:wrap-mode">
<description>
Controls how the line wrapping is done.

Note that unlike `GtkLabel`, the default here is %PANGO_WRAP_WORD_CHAR.

Since: 4.8

</description>
</property>

<property name="GtkInscription:xalign">
<description>
The horizontal alignment of the text inside the allocated size.

Compare this to [property@Gtk.Widget:halign], which determines how the
inscription's size allocation is positioned in the available space.

Since: 4.8

</description>
</property>

<property name="GtkInscription:yalign">
<description>
The vertical alignment of the text inside the allocated size.

Compare this to [property@Gtk.Widget:valign], which determines how the
inscription's size allocation is positioned in the available space.

Since: 4.8

</description>
</property>

<enum name="GtkInscriptionOverflow">
<description>
The different methods to handle text in #GtkInscription when it doesn't
fit the available space.

Since: 4.8

</description>
<parameters>
<parameter name="GTK_INSCRIPTION_OVERFLOW_CLIP">
<parameter_description> Clip the remaining text
</parameter_description>
</parameter>
<parameter name="GTK_INSCRIPTION_OVERFLOW_ELLIPSIZE_START">
<parameter_description> Omit characters at the start of the text
</parameter_description>
</parameter>
<parameter name="GTK_INSCRIPTION_OVERFLOW_ELLIPSIZE_MIDDLE">
<parameter_description> Omit characters at the middle of the text
</parameter_description>
</parameter>
<parameter name="GTK_INSCRIPTION_OVERFLOW_ELLIPSIZE_END">
<parameter_description> Omit characters at the end of the text
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkJustification">
<description>
Used for justifying the text inside a [class@Label] widget.

</description>
<parameters>
<parameter name="GTK_JUSTIFY_LEFT">
<parameter_description> The text is placed at the left edge of the label.
</parameter_description>
</parameter>
<parameter name="GTK_JUSTIFY_RIGHT">
<parameter_description> The text is placed at the right edge of the label.
</parameter_description>
</parameter>
<parameter name="GTK_JUSTIFY_CENTER">
<parameter_description> The text is placed in the center of the label.
</parameter_description>
</parameter>
<parameter name="GTK_JUSTIFY_FILL">
<parameter_description> The text is placed is distributed across the label.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkKeyvalTrigger:keyval">
<description>
The key value for the trigger.

</description>
</property>

<property name="GtkKeyvalTrigger:modifiers">
<description>
The key modifiers for the trigger.

</description>
</property>

<signal name="GtkLabel::activate-current-link">
<description>
Gets emitted when the user activates a link in the label.

The ::activate-current-link is a [keybinding signal](class.SignalAction.html).

Applications may also emit the signal with g_signal_emit_by_name()
if they need to control activation of URIs programmatically.

The default bindings for this signal are all forms of the &lt;kbd&gt;Enter&lt;/kbd&gt; key.

</description>
<parameters>
<parameter name="self">
<parameter_description> The label on which the signal was emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkLabel::activate-link">
<description>
Gets emitted to activate a URI.

Applications may connect to it to override the default behaviour,
which is to call [method@Gtk.FileLauncher.launch].


</description>
<parameters>
<parameter name="self">
<parameter_description> The label on which the signal was emitted
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> the URI that is activated
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the link has been activated
</return>
</signal>

<signal name="GtkLabel::copy-clipboard">
<description>
Gets emitted to copy the selection to the clipboard.

The ::copy-clipboard signal is a [keybinding signal](class.SignalAction.html).

The default binding for this signal is &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;c&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkLabel::move-cursor">
<description>
Gets emitted when the user initiates a cursor movement.

The ::move-cursor signal is a [keybinding signal](class.SignalAction.html).
If the cursor is not visible in @entry, this signal causes the viewport to
be moved instead.

Applications should not connect to it, but may emit it with
g_signal_emit_by_name() if they need to control the cursor
programmatically.

The default bindings for this signal come in two variants,
the variant with the Shift modifier extends the selection,
the variant without the Shift modifier does not.
There are too many key combinations to list them all here.

- &lt;kbd&gt;←&lt;/kbd&gt;, &lt;kbd&gt;→&lt;/kbd&gt;, &lt;kbd&gt;↑&lt;/kbd&gt;, &lt;kbd&gt;↓&lt;/kbd&gt;
move by individual characters/lines
- &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;←&lt;/kbd&gt;, etc. move by words/paragraphs
- &lt;kbd&gt;Home&lt;/kbd&gt; and &lt;kbd&gt;End&lt;/kbd&gt; move to the ends of the buffer

</description>
<parameters>
<parameter name="entry">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="step">
<parameter_description> the granularity of the move, as a `GtkMovementStep`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> the number of @step units to move
</parameter_description>
</parameter>
<parameter name="extend_selection">
<parameter_description> %TRUE if the move should extend the selection
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkLabel:attributes">
<description>
A list of style attributes to apply to the text of the label.

</description>
</property>

<property name="GtkLabel:ellipsize">
<description>
The preferred place to ellipsize the string, if the label does
not have enough room to display the entire string.

Note that setting this property to a value other than
%PANGO_ELLIPSIZE_NONE has the side-effect that the label requests
only enough space to display the ellipsis &quot;...&quot;. In particular, this
means that ellipsizing labels do not work well in notebook tabs, unless
the [property@Gtk.NotebookPage:tab-expand] child property is set to %TRUE.
Other ways to set a label's width are [method@Gtk.Widget.set_size_request]
and [method@Gtk.Label.set_width_chars].

</description>
</property>

<property name="GtkLabel:extra-menu">
<description>
A menu model whose contents will be appended to the context menu.

</description>
</property>

<property name="GtkLabel:justify">
<description>
The alignment of the lines in the text of the label, relative to each other.

This does *not* affect the alignment of the label within its allocation.
See [property@Gtk.Label:xalign] for that.

</description>
</property>

<property name="GtkLabel:label">
<description>
The contents of the label.

If the string contains Pango markup (see [func@Pango.parse_markup]),
you will have to set the [property@Gtk.Label:use-markup] property to
%TRUE in order for the label to display the markup attributes. See also
[method@Gtk.Label.set_markup] for a convenience function that sets both
this property and the [property@Gtk.Label:use-markup] property at the
same time.

If the string contains underlines acting as mnemonics, you will have to
set the [property@Gtk.Label:use-underline] property to %TRUE in order
for the label to display them.

</description>
</property>

<property name="GtkLabel:lines">
<description>
The number of lines to which an ellipsized, wrapping label
should be limited.

This property has no effect if the label is not wrapping or ellipsized.
Set this property to -1 if you don't want to limit the number of lines.

</description>
</property>

<property name="GtkLabel:max-width-chars">
<description>
The desired maximum width of the label, in characters.

If this property is set to -1, the width will be calculated automatically.

See the section on [text layout](class.Label.html#text-layout) for details of how
[property@Gtk.Label:width-chars] and [property@Gtk.Label:max-width-chars]
determine the width of ellipsized and wrapped labels.

</description>
</property>

<property name="GtkLabel:mnemonic-keyval">
<description>
The mnemonic accelerator key for the label.

</description>
</property>

<property name="GtkLabel:mnemonic-widget">
<description>
The widget to be activated when the labels mnemonic key is pressed.

</description>
</property>

<property name="GtkLabel:natural-wrap-mode">
<description>
Select the line wrapping for the natural size request.

This only affects the natural size requested. For the actual wrapping used,
see the [property@Gtk.Label:wrap-mode] property.

The default is %GTK_NATURAL_WRAP_INHERIT, which inherits the behavior of the
[property@Gtk.Label:wrap-mode] property.

Since: 4.6

</description>
</property>

<property name="GtkLabel:selectable">
<description>
Whether the label text can be selected with the mouse.

</description>
</property>

<property name="GtkLabel:single-line-mode">
<description>
Whether the label is in single line mode.

In single line mode, the height of the label does not depend on the
actual text, it is always set to ascent + descent of the font. This
can be an advantage in situations where resizing the label because
of text changes would be distracting, e.g. in a statusbar.

</description>
</property>

<property name="GtkLabel:tabs">
<description>
Custom tabs for this label.

Since: 4.8

</description>
</property>

<property name="GtkLabel:use-markup">
<description>
%TRUE if the text of the label includes Pango markup.

See [func@Pango.parse_markup].

</description>
</property>

<property name="GtkLabel:use-underline">
<description>
%TRUE if the text of the label indicates a mnemonic with an _
before the mnemonic character.

</description>
</property>

<property name="GtkLabel:width-chars">
<description>
The desired width of the label, in characters.

If this property is set to -1, the width will be calculated automatically.

See the section on [text layout](class.Label.html#text-layout) for details of how
[property@Gtk.Label:width-chars] and [property@Gtk.Label:max-width-chars]
determine the width of ellipsized and wrapped labels.

</description>
</property>

<property name="GtkLabel:wrap">
<description>
%TRUE if the label text will wrap if it gets too wide.

</description>
</property>

<property name="GtkLabel:wrap-mode">
<description>
Controls how the line wrapping is done.

This only affects the formatting if line wrapping is on (see the
[property@Gtk.Label:wrap] property). The default is %PANGO_WRAP_WORD,
which means wrap on word boundaries.

For sizing behavior, also consider the [property@Gtk.Label:natural-wrap-mode]
property.

</description>
</property>

<property name="GtkLabel:xalign">
<description>
The horizontal alignment of the label text inside its size allocation.

Compare this to [property@Gtk.Widget:halign], which determines how the
labels size allocation is positioned in the space available for the label.

</description>
</property>

<property name="GtkLabel:yalign">
<description>
The vertical alignment of the label text inside its size allocation.

Compare this to [property@Gtk.Widget:valign], which determines how the
labels size allocation is positioned in the space available for the label.

</description>
</property>

<property name="GtkLayoutChild:child-widget">
<description>
The widget that is associated to the `GtkLayoutChild` instance.

</description>
</property>

<property name="GtkLayoutChild:layout-manager">
<description>
The layout manager that created the `GtkLayoutChild` instance.

</description>
</property>

<signal name="GtkLevelBar::offset-changed">
<description>
Emitted when an offset specified on the bar changes value.

This typically is the result of a [method@Gtk.LevelBar.add_offset_value]
call.

The signal supports detailed connections; you can connect to the
detailed signal &quot;changed::x&quot; in order to only receive callbacks when
the value of offset &quot;x&quot; changes.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLevelBar`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the offset that changed value
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkLevelBar:inverted">
<description>
Whether the `GtkLeveBar` is inverted.

Level bars normally grow from top to bottom or left to right.
Inverted level bars grow in the opposite direction.

</description>
</property>

<property name="GtkLevelBar:max-value">
<description>
Determines the maximum value of the interval that can be displayed by the bar.

</description>
</property>

<property name="GtkLevelBar:min-value">
<description>
Determines the minimum value of the interval that can be displayed by the bar.

</description>
</property>

<property name="GtkLevelBar:mode">
<description>
Determines the way `GtkLevelBar` interprets the value properties to draw the
level fill area.

Specifically, when the value is %GTK_LEVEL_BAR_MODE_CONTINUOUS,
`GtkLevelBar` will draw a single block representing the current value in
that area; when the value is %GTK_LEVEL_BAR_MODE_DISCRETE,
the widget will draw a succession of separate blocks filling the
draw area, with the number of blocks being equal to the units separating
the integral roundings of [property@Gtk.LevelBar:min-value] and
[property@Gtk.LevelBar:max-value].

</description>
</property>

<property name="GtkLevelBar:value">
<description>
Determines the currently filled value of the level bar.

</description>
</property>

<enum name="GtkLevelBarMode">
<description>
Describes how [class@LevelBar] contents should be rendered.

Note that this enumeration could be extended with additional modes
in the future.

</description>
<parameters>
<parameter name="GTK_LEVEL_BAR_MODE_CONTINUOUS">
<parameter_description> the bar has a continuous mode
</parameter_description>
</parameter>
<parameter name="GTK_LEVEL_BAR_MODE_DISCRETE">
<parameter_description> the bar has a discrete mode
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkLicense">
<description>
The type of license for an application.

This enumeration can be expanded at later date.

</description>
<parameters>
<parameter name="GTK_LICENSE_UNKNOWN">
<parameter_description> No license specified
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_CUSTOM">
<parameter_description> A license text is going to be specified by the
developer
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_GPL_2_0">
<parameter_description> The GNU General Public License, version 2.0 or later
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_GPL_3_0">
<parameter_description> The GNU General Public License, version 3.0 or later
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_LGPL_2_1">
<parameter_description> The GNU Lesser General Public License, version 2.1 or later
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_LGPL_3_0">
<parameter_description> The GNU Lesser General Public License, version 3.0 or later
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_BSD">
<parameter_description> The BSD standard license
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_MIT_X11">
<parameter_description> The MIT/X11 standard license
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_ARTISTIC">
<parameter_description> The Artistic License, version 2.0
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_GPL_2_0_ONLY">
<parameter_description> The GNU General Public License, version 2.0 only
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_GPL_3_0_ONLY">
<parameter_description> The GNU General Public License, version 3.0 only
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_LGPL_2_1_ONLY">
<parameter_description> The GNU Lesser General Public License, version 2.1 only
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_LGPL_3_0_ONLY">
<parameter_description> The GNU Lesser General Public License, version 3.0 only
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_AGPL_3_0">
<parameter_description> The GNU Affero General Public License, version 3.0 or later
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_AGPL_3_0_ONLY">
<parameter_description> The GNU Affero General Public License, version 3.0 only
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_BSD_3">
<parameter_description> The 3-clause BSD licence
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_APACHE_2_0">
<parameter_description> The Apache License, version 2.0
</parameter_description>
</parameter>
<parameter name="GTK_LICENSE_MPL_2_0">
<parameter_description> The Mozilla Public License, version 2.0
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkLinkButton::activate-link">
<description>
Emitted each time the `GtkLinkButton` is clicked.

The default handler will call [method@Gtk.FileLauncher.launch] with the URI
stored inside the [property@Gtk.LinkButton:uri] property.

To override the default behavior, you can connect to the
::activate-link signal and stop the propagation of the signal
by returning %TRUE from your handler.


</description>
<parameters>
<parameter name="button">
<parameter_description> the `GtkLinkButton` that emitted the signal
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the signal has been handled
</return>
</signal>

<property name="GtkLinkButton:uri">
<description>
The URI bound to this button.

</description>
</property>

<property name="GtkLinkButton:visited">
<description>
The 'visited' state of this button.

A visited link is drawn in a different color.

</description>
</property>

<property name="GtkListBase:orientation">
<description>
The orientation of the list. See GtkOrientable:orientation
for details.

</description>
</property>

<signal name="GtkListBox::row-activated">
<description>
Emitted when a row has been activated by the user.

</description>
<parameters>
<parameter name="box">
<parameter_description> the `GtkListBox`
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> the activated row
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkListBox::row-selected">
<description>
Emitted when a new row is selected, or (with a %NULL @row)
when the selection is cleared.

When the @box is using %GTK_SELECTION_MULTIPLE, this signal will not
give you the full picture of selection changes, and you should use
the [signal@Gtk.ListBox::selected-rows-changed] signal instead.

</description>
<parameters>
<parameter name="box">
<parameter_description> the `GtkListBox`
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> the selected row
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkListBox::select-all">
<description>
Emitted to select all children of the box, if the selection
mode permits it.

This is a [keybinding signal](class.SignalAction.html).

The default binding for this signal is &lt;kbd&gt;Ctrl&lt;/kbd&gt;-&lt;kbd&gt;a&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="box">
<parameter_description> the `GtkListBox` on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkListBox::selected-rows-changed">
<description>
Emitted when the set of selected rows changes.

</description>
<parameters>
<parameter name="box">
<parameter_description> the `GtkListBox` on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkListBox::unselect-all">
<description>
Emitted to unselect all children of the box, if the selection
mode permits it.

This is a [keybinding signal](class.SignalAction.html).

The default binding for this signal is
&lt;kbd&gt;Ctrl&lt;/kbd&gt;-&lt;kbd&gt;Shift&lt;/kbd&gt;-&lt;kbd&gt;a&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="box">
<parameter_description> the `GtkListBox` on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkListBox:accept-unpaired-release">
<description>
Whether to accept unpaired release events.

</description>
</property>

<property name="GtkListBox:activate-on-single-click">
<description>
Determines whether children can be activated with a single
click, or require a double-click.

</description>
</property>

<property name="GtkListBox:selection-mode">
<description>
The selection mode used by the list box.

</description>
</property>

<property name="GtkListBox:show-separators">
<description>
Whether to show separators between rows.

</description>
</property>

<signal name="GtkListBoxRow::activate">
<description>
This is a keybinding signal, which will cause this row to be activated.

If you want to be notified when the user activates a row (by key or not),
use the [signal@Gtk.ListBox::row-activated] signal on the row’s parent
`GtkListBox`.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<property name="GtkListBoxRow:activatable">
<description>
Determines whether the ::row-activated
signal will be emitted for this row.

</description>
</property>

<property name="GtkListBoxRow:child">
<description>
The child widget.

</description>
</property>

<property name="GtkListBoxRow:selectable">
<description>
Determines whether this row can be selected.

</description>
</property>

<property name="GtkListHeader:child">
<description>
Widget used for display.

Since: 4.12

</description>
</property>

<property name="GtkListHeader:end">
<description>
The first position no longer part of this section.

Since: 4.12

</description>
</property>

<property name="GtkListHeader:item">
<description>
The item at the start of the section.

Since: 4.12

</description>
</property>

<property name="GtkListHeader:n-items">
<description>
Number of items in this section.

Since: 4.12

</description>
</property>

<property name="GtkListHeader:start">
<description>
First position of items in this section.

Since: 4.12

</description>
</property>

<property name="GtkListItem:accessible-description">
<description>
The accessible description to set on the list item.

Since: 4.12

</description>
</property>

<property name="GtkListItem:accessible-label">
<description>
The accessible label to set on the list item.

Since: 4.12

</description>
</property>

<property name="GtkListItem:activatable">
<description>
If the item can be activated by the user.

</description>
</property>

<property name="GtkListItem:child">
<description>
Widget used for display.

</description>
</property>

<property name="GtkListItem:focusable">
<description>
If the item can be focused with the keyboard.

Since: 4.12

</description>
</property>

<property name="GtkListItem:item">
<description>
Displayed item.

</description>
</property>

<property name="GtkListItem:position">
<description>
Position of the item.

</description>
</property>

<property name="GtkListItem:selectable">
<description>
If the item can be selected by the user.

</description>
</property>

<property name="GtkListItem:selected">
<description>
If the item is currently selected.

</description>
</property>

<enum name="GtkListScrollFlags">
<description>
List of actions to perform when scrolling to items in
a list widget.

Since: 4.12

</description>
<parameters>
<parameter name="GTK_LIST_SCROLL_NONE">
<parameter_description> Don't do anything extra
</parameter_description>
</parameter>
<parameter name="GTK_LIST_SCROLL_FOCUS">
<parameter_description> Focus the target item
</parameter_description>
</parameter>
<parameter name="GTK_LIST_SCROLL_SELECT">
<parameter_description> Select the target item and
unselect all other items.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkListTabBehavior">
<description>
Used to configure the focus behavior in the `GTK_DIR_TAB_FORWARD`
and `GTK_DIR_TAB_BACKWARD` direction, like the &lt;kbd&gt;Tab&lt;/kbd&gt; key
in a [class@Gtk.ListView].

Since: 4.12

</description>
<parameters>
<parameter name="GTK_LIST_TAB_ALL">
<parameter_description> Cycle through all focusable items of the list
</parameter_description>
</parameter>
<parameter name="GTK_LIST_TAB_ITEM">
<parameter_description> Cycle through a single list element, then move
focus out of the list. Moving focus between items needs to be
done with the arrow keys.
</parameter_description>
</parameter>
<parameter name="GTK_LIST_TAB_CELL">
<parameter_description> Cycle only through a single cell, then
move focus out of the list. Moving focus between cells needs to
be done with the arrow keys. This is only relevant for
cell-based widgets like #GtkColumnView, otherwise it behaves
like `GTK_LIST_TAB_ITEM`.
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkListView::activate">
<description>
Emitted when a row has been activated by the user,
usually via activating the GtkListView|list.activate-item action.

This allows for a convenient way to handle activation in a listview.
See [method@Gtk.ListItem.set_activatable] for details on how to use
this signal.

</description>
<parameters>
<parameter name="self">
<parameter_description> The `GtkListView`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position of item to activate
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkListView:enable-rubberband">
<description>
Allow rubberband selection.

</description>
</property>

<property name="GtkListView:factory">
<description>
Factory for populating list items.

</description>
</property>

<property name="GtkListView:header-factory">
<description>
Factory for creating header widgets.

Since: 4.12

</description>
</property>

<property name="GtkListView:model">
<description>
Model for the items displayed.

</description>
</property>

<property name="GtkListView:show-separators">
<description>
Show separators between rows.

</description>
</property>

<property name="GtkListView:single-click-activate">
<description>
Activate rows on single click and select them on hover.

</description>
</property>

<property name="GtkListView:tab-behavior">
<description>
Behavior of the &lt;kbd&gt;Tab&lt;/kbd&gt; key

Since: 4.12

</description>
</property>

<property name="GtkLockButton:permission">
<description>
The `GPermission object controlling this button.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
</property>

<property name="GtkLockButton:text-lock">
<description>
The text to display when prompting the user to lock.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
</property>

<property name="GtkLockButton:text-unlock">
<description>
The text to display when prompting the user to unlock.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
</property>

<property name="GtkLockButton:tooltip-lock">
<description>
The tooltip to display when prompting the user to lock.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
</property>

<property name="GtkLockButton:tooltip-not-authorized">
<description>
The tooltip to display when the user cannot obtain authorization.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
</property>

<property name="GtkLockButton:tooltip-unlock">
<description>
The tooltip to display when prompting the user to unlock.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
</property>

<property name="GtkMapListModel:has-map">
<description>
If a map is set for this model

</description>
</property>

<property name="GtkMapListModel:item-type">
<description>
The type of items. See [method@Gio.ListModel.get_item_type].

Since: 4.8

</description>
</property>

<property name="GtkMapListModel:model">
<description>
The model being mapped.

</description>
</property>

<property name="GtkMapListModel:n-items">
<description>
The number of items. See [method@Gio.ListModel.get_n_items].

Since: 4.8

</description>
</property>

<property name="GtkMediaControls:media-stream">
<description>
The media-stream managed by this object or %NULL if none.

</description>
</property>

<property name="GtkMediaFile:file">
<description>
The file being played back or %NULL if not playing a file.

</description>
</property>

<property name="GtkMediaFile:input-stream">
<description>
The stream being played back or %NULL if not playing a stream.

This is %NULL when playing a file.

</description>
</property>

<property name="GtkMediaStream:duration">
<description>
The stream's duration in microseconds or 0 if unknown.

</description>
</property>

<property name="GtkMediaStream:ended">
<description>
Set when playback has finished.

</description>
</property>

<property name="GtkMediaStream:error">
<description>
%NULL for a properly working stream or the `GError`
that the stream is in.

</description>
</property>

<property name="GtkMediaStream:has-audio">
<description>
Whether the stream contains audio.

</description>
</property>

<property name="GtkMediaStream:has-video">
<description>
Whether the stream contains video.

</description>
</property>

<property name="GtkMediaStream:loop">
<description>
Try to restart the media from the beginning once it ended.

</description>
</property>

<property name="GtkMediaStream:muted">
<description>
Whether the audio stream should be muted.

</description>
</property>

<property name="GtkMediaStream:playing">
<description>
Whether the stream is currently playing.

</description>
</property>

<property name="GtkMediaStream:prepared">
<description>
Whether the stream has finished initializing and existence of
audio and video is known.

</description>
</property>

<property name="GtkMediaStream:seekable">
<description>
Set unless the stream is known to not support seeking.

</description>
</property>

<property name="GtkMediaStream:seeking">
<description>
Set while a seek is in progress.

</description>
</property>

<property name="GtkMediaStream:timestamp">
<description>
The current presentation timestamp in microseconds.

</description>
</property>

<property name="GtkMediaStream:volume">
<description>
Volume of the audio stream.

</description>
</property>

<signal name="GtkMenuButton::activate">
<description>
Emitted to when the menu button is activated.

The `::activate` signal on `GtkMenuButton` is an action signal and
emitting it causes the button to pop up its menu.

Since: 4.4

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkMenuButton:active">
<description>
Whether the menu button is active.

Since: 4.10

</description>
</property>

<property name="GtkMenuButton:always-show-arrow">
<description>
Whether to show a dropdown arrow even when using an icon or a custom child.

Since: 4.4

</description>
</property>

<property name="GtkMenuButton:can-shrink">
<description>
Whether the size of the button can be made smaller than the natural
size of its contents.

Since: 4.12

</description>
</property>

<property name="GtkMenuButton:child">
<description>
The child widget.

Since: 4.6

</description>
</property>

<property name="GtkMenuButton:direction">
<description>
The `GtkArrowType` representing the direction in which the
menu or popover will be popped out.

</description>
</property>

<property name="GtkMenuButton:has-frame">
<description>
Whether the button has a frame.

</description>
</property>

<property name="GtkMenuButton:icon-name">
<description>
The name of the icon used to automatically populate the button.

</description>
</property>

<property name="GtkMenuButton:label">
<description>
The label for the button.

</description>
</property>

<property name="GtkMenuButton:menu-model">
<description>
The `GMenuModel` from which the popup will be created.

See [method@Gtk.MenuButton.set_menu_model] for the interaction
with the [property@Gtk.MenuButton:popover] property.

</description>
</property>

<property name="GtkMenuButton:popover">
<description>
The `GtkPopover` that will be popped up when the button is clicked.

</description>
</property>

<property name="GtkMenuButton:primary">
<description>
Whether the menu button acts as a primary menu.

Primary menus can be opened using the &lt;kbd&gt;F10&lt;/kbd&gt; key

Since: 4.4

</description>
</property>

<property name="GtkMenuButton:use-underline">
<description>
If set an underscore in the text indicates a mnemonic.

</description>
</property>

<property name="GtkMessageDialog:message-area">
<description>
The `GtkBox` that corresponds to the message area of this dialog.

See [method@Gtk.MessageDialog.get_message_area] for a detailed
description of this area.

</description>
</property>

<property name="GtkMessageDialog:message-type">
<description>
The type of the message.

</description>
</property>

<property name="GtkMessageDialog:secondary-text">
<description>
The secondary text of the message dialog.

</description>
</property>

<property name="GtkMessageDialog:secondary-use-markup">
<description>
%TRUE if the secondary text of the dialog includes Pango markup.

See [func@Pango.parse_markup].

</description>
</property>

<property name="GtkMessageDialog:text">
<description>
The primary text of the message dialog.

If the dialog has a secondary text, this will appear as the title.

</description>
</property>

<property name="GtkMessageDialog:use-markup">
<description>
%TRUE if the primary text of the dialog includes Pango markup.

See [func@Pango.parse_markup].

</description>
</property>

<enum name="GtkMessageType">
<description>
The type of message being displayed in a [class@MessageDialog].

</description>
<parameters>
<parameter name="GTK_MESSAGE_INFO">
<parameter_description> Informational message
</parameter_description>
</parameter>
<parameter name="GTK_MESSAGE_WARNING">
<parameter_description> Non-fatal warning message
</parameter_description>
</parameter>
<parameter name="GTK_MESSAGE_QUESTION">
<parameter_description> Question requiring a choice
</parameter_description>
</parameter>
<parameter name="GTK_MESSAGE_ERROR">
<parameter_description> Fatal error message
</parameter_description>
</parameter>
<parameter name="GTK_MESSAGE_OTHER">
<parameter_description> None of the above
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkMnemonicTrigger:keyval">
<description>
The key value for the trigger.

</description>
</property>

<property name="GtkModelButton:active">
<description>
The state of the button. This is reflecting the state of the associated
GAction.

</description>
</property>

<property name="GtkModelButton:icon">
<description>
A GIcon that will be used if iconic appearance for the button is
desired.

</description>
</property>

<property name="GtkModelButton:iconic">
<description>
If this property is set, the button will show an icon if one is set.
If no icon is set, the text will be used. This is typically used for
horizontal sections of linked buttons.

</description>
</property>

<property name="GtkModelButton:indicator-size-group">
<description>
Containers like GtkPopoverMenu can provide a size group
in this property to align the checks and radios of all
the model buttons in a menu.

</description>
</property>

<property name="GtkModelButton:menu-name">
<description>
The name of a submenu to open when the button is activated.  * If this is set, the button should not have an action associated with it.

</description>
</property>

<property name="GtkModelButton:role">
<description>
Specifies whether the button is a plain, check or radio button.
When GtkActionable:action-name is set, the role will be determined
from the action and does not have to be set explicitly.

</description>
</property>

<property name="GtkModelButton:text">
<description>
The label for the button.

</description>
</property>

<property name="GtkModelButton:use-markup">
<description>
If %TRUE, XML tags in the text of the button are interpreted as by
pango_parse_markup() to format the enclosed spans of text. If %FALSE, the
text will be displayed verbatim.

</description>
</property>

<property name="GtkMountOperation:display">
<description>
The display where dialogs will be shown.

</description>
</property>

<property name="GtkMountOperation:is-showing">
<description>
Whether a dialog is currently shown.

</description>
</property>

<property name="GtkMountOperation:parent">
<description>
The parent window.

</description>
</property>

<enum name="GtkMovementStep">
<description>
Passed as argument to various keybinding signals for moving the
cursor position.

</description>
<parameters>
<parameter name="GTK_MOVEMENT_LOGICAL_POSITIONS">
<parameter_description> Move forward or back by graphemes
</parameter_description>
</parameter>
<parameter name="GTK_MOVEMENT_VISUAL_POSITIONS">
<parameter_description>  Move left or right by graphemes
</parameter_description>
</parameter>
<parameter name="GTK_MOVEMENT_WORDS">
<parameter_description>             Move forward or back by words
</parameter_description>
</parameter>
<parameter name="GTK_MOVEMENT_DISPLAY_LINES">
<parameter_description>     Move up or down lines (wrapped lines)
</parameter_description>
</parameter>
<parameter name="GTK_MOVEMENT_DISPLAY_LINE_ENDS">
<parameter_description> Move to either end of a line
</parameter_description>
</parameter>
<parameter name="GTK_MOVEMENT_PARAGRAPHS">
<parameter_description>        Move up or down paragraphs (newline-ended lines)
</parameter_description>
</parameter>
<parameter name="GTK_MOVEMENT_PARAGRAPH_ENDS">
<parameter_description>    Move to either end of a paragraph
</parameter_description>
</parameter>
<parameter name="GTK_MOVEMENT_PAGES">
<parameter_description>             Move by pages
</parameter_description>
</parameter>
<parameter name="GTK_MOVEMENT_BUFFER_ENDS">
<parameter_description>       Move to ends of the buffer
</parameter_description>
</parameter>
<parameter name="GTK_MOVEMENT_HORIZONTAL_PAGES">
<parameter_description>  Move horizontally by pages
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkMultiFilter:item-type">
<description>
The type of items. See [method@Gio.ListModel.get_item_type].

Since: 4.8

</description>
</property>

<property name="GtkMultiFilter:n-items">
<description>
The number of items. See [method@Gio.ListModel.get_n_items].

Since: 4.8

</description>
</property>

<property name="GtkMultiSelection:item-type">
<description>
The type of items. See [method@Gio.ListModel.get_item_type].

Since: 4.8

</description>
</property>

<property name="GtkMultiSelection:model">
<description>
The list managed by this selection.

</description>
</property>

<property name="GtkMultiSelection:n-items">
<description>
The number of items. See [method@Gio.ListModel.get_n_items].

Since: 4.8

</description>
</property>

<property name="GtkMultiSorter:item-type">
<description>
The type of items. See [method@Gio.ListModel.get_item_type].

Since: 4.8

</description>
</property>

<property name="GtkMultiSorter:n-items">
<description>
The number of items. See [method@Gio.ListModel.get_n_items].

Since: 4.8

</description>
</property>

<property name="GtkNamedAction:action-name">
<description>
The name of the action to activate.

</description>
</property>

<signal name="GtkNativeDialog::response">
<description>
Emitted when the user responds to the dialog.

When this is called the dialog has been hidden.

If you call [method@Gtk.NativeDialog.hide] before the user
responds to the dialog this signal will not be emitted.

</description>
<parameters>
<parameter name="self">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="response_id">
<parameter_description> the response ID
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkNativeDialog:modal">
<description>
Whether the window should be modal with respect to its transient parent.

</description>
</property>

<property name="GtkNativeDialog:title">
<description>
The title of the dialog window

</description>
</property>

<property name="GtkNativeDialog:transient-for">
<description>
The transient parent of the dialog, or %NULL for none.

</description>
</property>

<property name="GtkNativeDialog:visible">
<description>
Whether the window is currently visible.

</description>
</property>

<enum name="GtkNaturalWrapMode">
<description>
Options for selecting a different wrap mode for natural size
requests.

See for example the [property@Gtk.Label:natural-wrap-mode] property.

Since: 4.6

</description>
<parameters>
<parameter name="GTK_NATURAL_WRAP_INHERIT">
<parameter_description> Inherit the minimum size request.
In particular, this should be used with %PANGO_WRAP_CHAR.
</parameter_description>
</parameter>
<parameter name="GTK_NATURAL_WRAP_NONE">
<parameter_description> Try not to wrap the text. This mode is the
closest to GTK3's behavior but can lead to a wide label leaving
lots of empty space below the text.
</parameter_description>
</parameter>
<parameter name="GTK_NATURAL_WRAP_WORD">
<parameter_description> Attempt to wrap at word boundaries. This
is useful in particular when using %PANGO_WRAP_WORD_CHAR as the
wrap mode.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkNoSelection:item-type">
<description>
The type of items. See [method@Gio.ListModel.get_item_type].

Since: 4.8

</description>
</property>

<property name="GtkNoSelection:model">
<description>
The model being managed.

</description>
</property>

<property name="GtkNoSelection:n-items">
<description>
The number of items. See [method@Gio.ListModel.get_n_items].

Since: 4.8

</description>
</property>

<signal name="GtkNotebook::create-window">
<description>
The ::create-window signal is emitted when a detachable
tab is dropped on the root window.

A handler for this signal can create a window containing
a notebook where the tab will be attached. It is also
responsible for moving/resizing the window and adding the
necessary properties to the notebook (e.g. the
`GtkNotebook`:group-name ).


</description>
<parameters>
<parameter name="notebook">
<parameter_description> the `GtkNotebook` emitting the signal
</parameter_description>
</parameter>
<parameter name="page">
<parameter_description> the tab of @notebook that is being detached
</parameter_description>
</parameter>
</parameters>
<return> a `GtkNotebook` that
@page should be added to
</return>
</signal>

<signal name="GtkNotebook::page-added">
<description>
the ::page-added signal is emitted in the notebook
right after a page is added to the notebook.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> the `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child `GtkWidget` affected
</parameter_description>
</parameter>
<parameter name="page_num">
<parameter_description> the new page number for @child
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkNotebook::page-removed">
<description>
the ::page-removed signal is emitted in the notebook
right after a page is removed from the notebook.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> the `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child `GtkWidget` affected
</parameter_description>
</parameter>
<parameter name="page_num">
<parameter_description> the @child page number
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkNotebook::page-reordered">
<description>
the ::page-reordered signal is emitted in the notebook
right after a page has been reordered.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> the `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child `GtkWidget` affected
</parameter_description>
</parameter>
<parameter name="page_num">
<parameter_description> the new page number for @child
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkNotebook::switch-page">
<description>
Emitted when the user or a function changes the current page.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
<parameter name="page">
<parameter_description> the new current page
</parameter_description>
</parameter>
<parameter name="page_num">
<parameter_description> the index of the page
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkNotebook:enable-popup">
<description>
If %TRUE, pressing the right mouse button on the notebook shows a page switching menu.

</description>
</property>

<property name="GtkNotebook:group-name">
<description>
Group name for tab drag and drop.

</description>
</property>

<property name="GtkNotebook:page">
<description>
The index of the current page.

</description>
</property>

<property name="GtkNotebook:pages">
<description>
A selection model with the pages.

</description>
</property>

<property name="GtkNotebook:scrollable">
<description>
If %TRUE, scroll arrows are added if there are too many pages to fit.

</description>
</property>

<property name="GtkNotebook:show-border">
<description>
Whether the border should be shown.

</description>
</property>

<property name="GtkNotebook:show-tabs">
<description>
Whether tabs should be shown.

</description>
</property>

<property name="GtkNotebook:tab-pos">
<description>
Which side of the notebook holds the tabs.

</description>
</property>

<property name="GtkNotebookPage:child">
<description>
The child for this page.

</description>
</property>

<property name="GtkNotebookPage:detachable">
<description>
Whether the tab is detachable.

</description>
</property>

<property name="GtkNotebookPage:menu">
<description>
The label widget displayed in the child's menu entry.

</description>
</property>

<property name="GtkNotebookPage:menu-label">
<description>
The text of the menu widget.

</description>
</property>

<property name="GtkNotebookPage:position">
<description>
The index of the child in the parent.

</description>
</property>

<property name="GtkNotebookPage:reorderable">
<description>
Whether the tab is reorderable by user action.

</description>
</property>

<property name="GtkNotebookPage:tab">
<description>
The tab widget for this page.

</description>
</property>

<property name="GtkNotebookPage:tab-expand">
<description>
Whether to expand the child's tab.

</description>
</property>

<property name="GtkNotebookPage:tab-fill">
<description>
Whether the child's tab should fill the allocated area.

</description>
</property>

<property name="GtkNotebookPage:tab-label">
<description>
The text of the tab widget.

</description>
</property>

<enum name="GtkNotebookTab">
<description>
The parameter used in the action signals of `GtkNotebook`.

</description>
<parameters>
<parameter name="GTK_NOTEBOOK_TAB_FIRST">
<parameter_description> the first tab in the notebook
</parameter_description>
</parameter>
<parameter name="GTK_NOTEBOOK_TAB_LAST">
<parameter_description> the last tab in the notebook
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkNumberUpLayout">
<description>
Used to determine the layout of pages on a sheet when printing
multiple pages per sheet.

</description>
<parameters>
<parameter name="GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM">
<parameter_description> ![](layout-lrtb.png)
</parameter_description>
</parameter>
<parameter name="GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP">
<parameter_description> ![](layout-lrbt.png)
</parameter_description>
</parameter>
<parameter name="GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM">
<parameter_description> ![](layout-rltb.png)
</parameter_description>
</parameter>
<parameter name="GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP">
<parameter_description> ![](layout-rlbt.png)
</parameter_description>
</parameter>
<parameter name="GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT">
<parameter_description> ![](layout-tblr.png)
</parameter_description>
</parameter>
<parameter name="GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT">
<parameter_description> ![](layout-tbrl.png)
</parameter_description>
</parameter>
<parameter name="GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT">
<parameter_description> ![](layout-btlr.png)
</parameter_description>
</parameter>
<parameter name="GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT">
<parameter_description> ![](layout-btrl.png)
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkNumericSorter:expression">
<description>
The expression to evaluate on items to get a number to compare with.

</description>
</property>

<property name="GtkNumericSorter:sort-order">
<description>
Whether the sorter will sort smaller numbers first.

</description>
</property>

<enum name="GtkOrdering">
<description>
Describes the way two values can be compared.

These values can be used with a [callback@GLib.CompareFunc]. However,
a `GCompareFunc` is allowed to return any integer values.
For converting such a value to a `GtkOrdering` value, use
[func@Gtk.Ordering.from_cmpfunc].

</description>
<parameters>
<parameter name="GTK_ORDERING_SMALLER">
<parameter_description> the first value is smaller than the second
</parameter_description>
</parameter>
<parameter name="GTK_ORDERING_EQUAL">
<parameter_description> the two values are equal
</parameter_description>
</parameter>
<parameter name="GTK_ORDERING_LARGER">
<parameter_description> the first value is larger than the second
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkOrientable:orientation">
<description>
The orientation of the orientable.

</description>
</property>

<enum name="GtkOrientation">
<description>
Represents the orientation of widgets and other objects.

Typical examples are [class@Box] or [class@GesturePan].

</description>
<parameters>
<parameter name="GTK_ORIENTATION_HORIZONTAL">
<parameter_description> The element is in horizontal orientation.
</parameter_description>
</parameter>
<parameter name="GTK_ORIENTATION_VERTICAL">
<parameter_description> The element is in vertical orientation.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkOverflow">
<description>
Defines how content overflowing a given area should be handled.

This is used in [method@Gtk.Widget.set_overflow]. The
[property@Gtk.Widget:overflow] property is modeled after the
CSS overflow property, but implements it only partially.

</description>
<parameters>
<parameter name="GTK_OVERFLOW_VISIBLE">
<parameter_description> No change is applied. Content is drawn at the specified
position.
</parameter_description>
</parameter>
<parameter name="GTK_OVERFLOW_HIDDEN">
<parameter_description> Content is clipped to the bounds of the area. Content
outside the area is not drawn and cannot be interacted with.
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkOverlay::get-child-position">
<description>
Emitted to determine the position and size of any overlay
child widgets.

A handler for this signal should fill @allocation with
the desired position and size for @widget, relative to
the 'main' child of @overlay.

The default handler for this signal uses the @widget's
halign and valign properties to determine the position
and gives the widget its natural size (except that an
alignment of %GTK_ALIGN_FILL will cause the overlay to
be full-width/height). If the main child is a
`GtkScrolledWindow`, the overlays are placed relative
to its contents.


</description>
<parameters>
<parameter name="overlay">
<parameter_description> the `GtkOverlay`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the child widget to position
</parameter_description>
</parameter>
<parameter name="allocation">
<parameter_description> return
location for the allocation
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the @allocation has been filled
</return>
</signal>

<property name="GtkOverlay:child">
<description>
The main child widget.

</description>
</property>

<property name="GtkOverlayLayoutChild:clip-overlay">
<description>
Whether the child should be clipped to fit the parent's size.

</description>
</property>

<property name="GtkOverlayLayoutChild:measure">
<description>
Whether the child size should contribute to the `GtkOverlayLayout`'s
measurement.

</description>
</property>

<enum name="GtkPackType">
<description>
Represents the packing location of a children in its parent.

See [class@WindowControls] for example.

</description>
<parameters>
<parameter name="GTK_PACK_START">
<parameter_description> The child is packed into the start of the widget
</parameter_description>
</parameter>
<parameter name="GTK_PACK_END">
<parameter_description> The child is packed into the end of the widget
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkPadActionType">
<description>
The type of a pad action.

</description>
<parameters>
<parameter name="GTK_PAD_ACTION_BUTTON">
<parameter_description> Action is triggered by a pad button
</parameter_description>
</parameter>
<parameter name="GTK_PAD_ACTION_RING">
<parameter_description> Action is triggered by a pad ring
</parameter_description>
</parameter>
<parameter name="GTK_PAD_ACTION_STRIP">
<parameter_description> Action is triggered by a pad strip
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkPageOrientation">
<description>
See also gtk_print_settings_set_orientation().

</description>
<parameters>
<parameter name="GTK_PAGE_ORIENTATION_PORTRAIT">
<parameter_description> Portrait mode.
</parameter_description>
</parameter>
<parameter name="GTK_PAGE_ORIENTATION_LANDSCAPE">
<parameter_description> Landscape mode.
</parameter_description>
</parameter>
<parameter name="GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT">
<parameter_description> Reverse portrait mode.
</parameter_description>
</parameter>
<parameter name="GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE">
<parameter_description> Reverse landscape mode.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkPageSet">
<description>
See also gtk_print_job_set_page_set().

</description>
<parameters>
<parameter name="GTK_PAGE_SET_ALL">
<parameter_description> All pages.
</parameter_description>
</parameter>
<parameter name="GTK_PAGE_SET_EVEN">
<parameter_description> Even pages.
</parameter_description>
</parameter>
<parameter name="GTK_PAGE_SET_ODD">
<parameter_description> Odd pages.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkPanDirection">
<description>
Describes the panning direction of a [class@GesturePan].

</description>
<parameters>
<parameter name="GTK_PAN_DIRECTION_LEFT">
<parameter_description> panned towards the left
</parameter_description>
</parameter>
<parameter name="GTK_PAN_DIRECTION_RIGHT">
<parameter_description> panned towards the right
</parameter_description>
</parameter>
<parameter name="GTK_PAN_DIRECTION_UP">
<parameter_description> panned upwards
</parameter_description>
</parameter>
<parameter name="GTK_PAN_DIRECTION_DOWN">
<parameter_description> panned downwards
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkPaned::accept-position">
<description>
Emitted to accept the current position of the handle when
moving it using key bindings.

This is a [keybinding signal](class.SignalAction.html).

The default binding for this signal is &lt;kbd&gt;Return&lt;/kbd&gt; or
&lt;kbd&gt;Space&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object that received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkPaned::cancel-position">
<description>
Emitted to cancel moving the position of the handle using key
bindings.

The position of the handle will be reset to the value prior to
moving it.

This is a [keybinding signal](class.SignalAction.html).

The default binding for this signal is &lt;kbd&gt;Escape&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object that received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkPaned::cycle-child-focus">
<description>
Emitted to cycle the focus between the children of the paned.

This is a [keybinding signal](class.SignalAction.html).

The default binding is &lt;kbd&gt;F6&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object that received the signal
</parameter_description>
</parameter>
<parameter name="reversed">
<parameter_description> whether cycling backward or forward
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkPaned::cycle-handle-focus">
<description>
Emitted to cycle whether the paned should grab focus to allow
the user to change position of the handle by using key bindings.

This is a [keybinding signal](class.SignalAction.html).

The default binding for this signal is &lt;kbd&gt;F8&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object that received the signal
</parameter_description>
</parameter>
<parameter name="reversed">
<parameter_description> whether cycling backward or forward
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkPaned::move-handle">
<description>
Emitted to move the handle with key bindings.

This is a [keybinding signal](class.SignalAction.html).

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object that received the signal
</parameter_description>
</parameter>
<parameter name="scroll_type">
<parameter_description> a `GtkScrollType`
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkPaned::toggle-handle-focus">
<description>
Emitted to accept the current position of the handle and then
move focus to the next widget in the focus chain.

This is a [keybinding signal](class.SignalAction.html).

The default binding is &lt;kbd&gt;Tab&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object that received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkPaned:end-child">
<description>
The second child.

</description>
</property>

<property name="GtkPaned:max-position">
<description>
The largest possible value for the [property@Gtk.Paned:position]
property.

This property is derived from the size and shrinkability
of the widget's children.

</description>
</property>

<property name="GtkPaned:min-position">
<description>
The smallest possible value for the [property@Gtk.Paned:position]
property.

This property is derived from the size and shrinkability
of the widget's children.

</description>
</property>

<property name="GtkPaned:position">
<description>
Position of the separator in pixels, from the left/top.

</description>
</property>

<property name="GtkPaned:position-set">
<description>
Whether the [property@Gtk.Paned:position] property has been set.

</description>
</property>

<property name="GtkPaned:resize-end-child">
<description>
Determines whether the second child expands and shrinks
along with the paned widget.

</description>
</property>

<property name="GtkPaned:resize-start-child">
<description>
Determines whether the first child expands and shrinks
along with the paned widget.

</description>
</property>

<property name="GtkPaned:shrink-end-child">
<description>
Determines whether the second child can be made smaller
than its requisition.

</description>
</property>

<property name="GtkPaned:shrink-start-child">
<description>
Determines whether the first child can be made smaller
than its requisition.

</description>
</property>

<property name="GtkPaned:start-child">
<description>
The first child.

</description>
</property>

<property name="GtkPaned:wide-handle">
<description>
Whether the `GtkPaned` should provide a stronger visual separation.

For example, this could be set when a paned contains two
[class@Gtk.Notebook]s, whose tab rows would otherwise merge visually.

</description>
</property>

<signal name="GtkPasswordEntry::activate">
<description>
Emitted when the entry is activated.

The keybindings for this signal are all forms of the Enter key.

</description>
<parameters>
<parameter name="self">
<parameter_description> The widget on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkPasswordEntry:activates-default">
<description>
Whether to activate the default widget when Enter is pressed.

</description>
</property>

<property name="GtkPasswordEntry:extra-menu">
<description>
A menu model whose contents will be appended to
the context menu.

</description>
</property>

<property name="GtkPasswordEntry:placeholder-text">
<description>
The text that will be displayed in the `GtkPasswordEntry`
when it is empty and unfocused.

</description>
</property>

<property name="GtkPasswordEntry:show-peek-icon">
<description>
Whether to show an icon for revealing the content.

</description>
</property>

<enum name="GtkPickFlags">
<description>
Flags that influence the behavior of [method@Widget.pick].

</description>
<parameters>
<parameter name="GTK_PICK_DEFAULT">
<parameter_description> The default behavior, include widgets that are receiving events
</parameter_description>
</parameter>
<parameter name="GTK_PICK_INSENSITIVE">
<parameter_description> Include widgets that are insensitive
</parameter_description>
</parameter>
<parameter name="GTK_PICK_NON_TARGETABLE">
<parameter_description> Include widgets that are marked as non-targetable. See [property@Widget:can-target]
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkPicture:alternative-text">
<description>
The alternative textual description for the picture.

</description>
</property>

<property name="GtkPicture:can-shrink">
<description>
If the `GtkPicture` can be made smaller than the natural size of its contents.

</description>
</property>

<property name="GtkPicture:content-fit">
<description>
How the content should be resized to fit inside the `GtkPicture`.

Since: 4.8

</description>
</property>

<property name="GtkPicture:file">
<description>
The `GFile` that is displayed or %NULL if none.

</description>
</property>

<property name="GtkPicture:keep-aspect-ratio">
<description>
Whether the GtkPicture will render its contents trying to preserve the aspect
ratio.

Deprecated: 4.8: Use [property@Gtk.Picture:content-fit] instead.

</description>
</property>

<property name="GtkPicture:paintable">
<description>
The `GdkPaintable` to be displayed by this `GtkPicture`.

</description>
</property>

<enum name="GtkPolicyType">
<description>
Determines how the size should be computed to achieve the one of the
visibility mode for the scrollbars.

</description>
<parameters>
<parameter name="GTK_POLICY_ALWAYS">
<parameter_description> The scrollbar is always visible. The view size is
independent of the content.
</parameter_description>
</parameter>
<parameter name="GTK_POLICY_AUTOMATIC">
<parameter_description> The scrollbar will appear and disappear as necessary.
For example, when all of a `GtkTreeView` can not be seen.
</parameter_description>
</parameter>
<parameter name="GTK_POLICY_NEVER">
<parameter_description> The scrollbar should never appear. In this mode the
content determines the size.
</parameter_description>
</parameter>
<parameter name="GTK_POLICY_EXTERNAL">
<parameter_description> Don't show a scrollbar, but don't force the
size to follow the content. This can be used e.g. to make multiple
scrolled windows share a scrollbar.
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkPopover::activate-default">
<description>
Emitted whend the user activates the default widget.

This is a [keybinding signal](class.SignalAction.html).

</description>
<parameters>
<parameter name="self">
<parameter_description> the `GtkPopover` which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkPopover::closed">
<description>
Emitted when the popover is closed.

</description>
<parameters>
<parameter name="self">
<parameter_description> the `GtkPopover` which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkPopover:autohide">
<description>
Whether to dismiss the popover on outside clicks.

</description>
</property>

<property name="GtkPopover:cascade-popdown">
<description>
Whether the popover pops down after a child popover.

This is used to implement the expected behavior of submenus.

</description>
</property>

<property name="GtkPopover:child">
<description>
The child widget.

</description>
</property>

<property name="GtkPopover:default-widget">
<description>
The default widget inside the popover.

</description>
</property>

<property name="GtkPopover:has-arrow">
<description>
Whether to draw an arrow.

</description>
</property>

<property name="GtkPopover:mnemonics-visible">
<description>
Whether mnemonics are currently visible in this popover.

</description>
</property>

<property name="GtkPopover:pointing-to">
<description>
Rectangle in the parent widget that the popover points to.

</description>
</property>

<property name="GtkPopover:position">
<description>
How to place the popover, relative to its parent.

</description>
</property>

<property name="GtkPopoverMenu:flags">
<description>
The flags that @popover uses to create/display a menu from its model.

If a model is set and the flags change, contents are rebuilt, so if setting
properties individually, set flags before model to avoid a redundant rebuild.

Since: 4.14

</description>
</property>

<property name="GtkPopoverMenu:menu-model">
<description>
The model from which the menu is made.

</description>
</property>

<property name="GtkPopoverMenu:visible-submenu">
<description>
The name of the visible submenu.

</description>
</property>

<property name="GtkPopoverMenuBar:menu-model">
<description>
The `GMenuModel` from which the menu bar is created.

The model should only contain submenus as toplevel elements.

</description>
</property>

<enum name="GtkPopoverMenuFlags">
<description>
Flags that affect how [class@Gtk.PopoverMenu] widgets built from
a [class@Gio.MenuModel] are created and displayed.

</description>
<parameters>
<parameter name="GTK_POPOVER_MENU_NESTED">
<parameter_description> Create submenus as nested
popovers. Without this flag, submenus are created as
sliding pages that replace the main menu.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkPositionType">
<description>
Describes which edge of a widget a certain feature is positioned at.

For examples, see the tabs of a [class@Notebook], or the label
of a [class@Scale].

</description>
<parameters>
<parameter name="GTK_POS_LEFT">
<parameter_description> The feature is at the left edge.
</parameter_description>
</parameter>
<parameter name="GTK_POS_RIGHT">
<parameter_description> The feature is at the right edge.
</parameter_description>
</parameter>
<parameter name="GTK_POS_TOP">
<parameter_description> The feature is at the top edge.
</parameter_description>
</parameter>
<parameter name="GTK_POS_BOTTOM">
<parameter_description> The feature is at the bottom edge.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkPrintCapabilities">
<description>
Specifies which features the print dialog should offer.

If neither %GTK_PRINT_CAPABILITY_GENERATE_PDF nor
%GTK_PRINT_CAPABILITY_GENERATE_PS is specified, GTK assumes that all
formats are supported.

</description>
<parameters>
<parameter name="GTK_PRINT_CAPABILITY_PAGE_SET">
<parameter_description> Print dialog will offer printing even/odd pages.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_CAPABILITY_COPIES">
<parameter_description> Print dialog will allow to print multiple copies.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_CAPABILITY_COLLATE">
<parameter_description> Print dialog will allow to collate multiple copies.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_CAPABILITY_REVERSE">
<parameter_description> Print dialog will allow to print pages in reverse order.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_CAPABILITY_SCALE">
<parameter_description> Print dialog will allow to scale the output.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_CAPABILITY_GENERATE_PDF">
<parameter_description> The program will send the document to
the printer in PDF format
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_CAPABILITY_GENERATE_PS">
<parameter_description> The program will send the document to
the printer in Postscript format
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_CAPABILITY_PREVIEW">
<parameter_description> Print dialog will offer a preview
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_CAPABILITY_NUMBER_UP">
<parameter_description> Print dialog will offer printing multiple
pages per sheet
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_CAPABILITY_NUMBER_UP_LAYOUT">
<parameter_description> Print dialog will allow to rearrange
pages when printing multiple pages per sheet
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkPrintDialog:accept-label">
<description>
A label that may be shown on the accept button of a print dialog
that is presented by [method@Gtk.PrintDialog.setup].

Since: 4.14

</description>
</property>

<property name="GtkPrintDialog:modal">
<description>
Whether the print dialog is modal.

Since: 4.14

</description>
</property>

<property name="GtkPrintDialog:page-setup">
<description>
The page setup to use.

Since: 4.14

</description>
</property>

<property name="GtkPrintDialog:print-settings">
<description>
The print settings to use.

Since: 4.14

</description>
</property>

<property name="GtkPrintDialog:title">
<description>
A title that may be shown on the print dialog that is
presented by [method@Gtk.PrintDialog.setup].

Since: 4.14

</description>
</property>

<enum name="GtkPrintDuplex">
<description>
See also gtk_print_settings_set_duplex().

</description>
<parameters>
<parameter name="GTK_PRINT_DUPLEX_SIMPLEX">
<parameter_description> No duplex.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_DUPLEX_HORIZONTAL">
<parameter_description> Horizontal duplex.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_DUPLEX_VERTICAL">
<parameter_description> Vertical duplex.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkPrintError">
<description>
Error codes that identify various errors that can occur while
using the GTK printing support.

</description>
<parameters>
<parameter name="GTK_PRINT_ERROR_GENERAL">
<parameter_description> An unspecified error occurred.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_ERROR_INTERNAL_ERROR">
<parameter_description> An internal error occurred.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_ERROR_NOMEM">
<parameter_description> A memory allocation failed.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_ERROR_INVALID_FILE">
<parameter_description> An error occurred while loading a page setup
or paper size from a key file.
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkPrintJob::status-changed">
<description>
Emitted when the status of a job changes.

The signal handler can use [method@Gtk.PrintJob.get_status]
to obtain the new status.

</description>
<parameters>
<parameter name="job">
<parameter_description> the `GtkPrintJob` object on which the signal was emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkPrintJob:page-setup">
<description>
Page setup.

</description>
</property>

<property name="GtkPrintJob:printer">
<description>
The printer to send the job to.

</description>
</property>

<property name="GtkPrintJob:settings">
<description>
Printer settings.

</description>
</property>

<property name="GtkPrintJob:title">
<description>
The title of the print job.

</description>
</property>

<property name="GtkPrintJob:track-print-status">
<description>
%TRUE if the print job will continue to emit status-changed
signals after the print data has been setn to the printer.

</description>
</property>

<signal name="GtkPrintOperation::begin-print">
<description>
Emitted after the user has finished changing print settings
in the dialog, before the actual rendering starts.

A typical use for ::begin-print is to use the parameters from the
[class@Gtk.PrintContext] and paginate the document accordingly,
and then set the number of pages with
[method@Gtk.PrintOperation.set_n_pages].

</description>
<parameters>
<parameter name="operation">
<parameter_description> the `GtkPrintOperation` on which the signal was emitted
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkPrintContext` for the current operation
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkPrintOperation::create-custom-widget">
<description>
Emitted when displaying the print dialog.

If you return a widget in a handler for this signal it will be
added to a custom tab in the print dialog. You typically return a
container widget with multiple widgets in it.

The print dialog owns the returned widget, and its lifetime is not
controlled by the application. However, the widget is guaranteed
to stay around until the [signal@Gtk.PrintOperation::custom-widget-apply]
signal is emitted on the operation. Then you can read out any
information you need from the widgets.


</description>
<parameters>
<parameter name="operation">
<parameter_description> the `GtkPrintOperation` on which the signal was emitted
</parameter_description>
</parameter>
</parameters>
<return> A custom widget that gets embedded in
the print dialog
</return>
</signal>

<signal name="GtkPrintOperation::custom-widget-apply">
<description>
Emitted right before ::begin-print if you added
a custom widget in the ::create-custom-widget handler.

When you get this signal you should read the information from the
custom widgets, as the widgets are not guaranteed to be around at a
later time.

</description>
<parameters>
<parameter name="operation">
<parameter_description> the `GtkPrintOperation` on which the signal was emitted
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the custom widget added in ::create-custom-widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkPrintOperation::done">
<description>
Emitted when the print operation run has finished doing
everything required for printing.

@result gives you information about what happened during the run.
If @result is %GTK_PRINT_OPERATION_RESULT_ERROR then you can call
[method@Gtk.PrintOperation.get_error] for more information.

If you enabled print status tracking then
[method@Gtk.PrintOperation.is_finished] may still return %FALSE
after the ::done signal was emitted.

</description>
<parameters>
<parameter name="operation">
<parameter_description> the `GtkPrintOperation` on which the signal was emitted
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> the result of the print operation
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkPrintOperation::draw-page">
<description>
Emitted for every page that is printed.

The signal handler must render the @page_nr's page onto the cairo
context obtained from @context using
[method@Gtk.PrintContext.get_cairo_context].

```c
static void
draw_page (GtkPrintOperation *operation,
GtkPrintContext   *context,
int                page_nr,
gpointer           user_data)
{
cairo_t *cr;
PangoLayout *layout;
double width, text_height;
int layout_height;
PangoFontDescription *desc;

cr = gtk_print_context_get_cairo_context (context);
width = gtk_print_context_get_width (context);

cairo_rectangle (cr, 0, 0, width, HEADER_HEIGHT);

cairo_set_source_rgb (cr, 0.8, 0.8, 0.8);
cairo_fill (cr);

layout = gtk_print_context_create_pango_layout (context);

desc = pango_font_description_from_string (&quot;sans 14&quot;);
pango_layout_set_font_description (layout, desc);
pango_font_description_free (desc);

pango_layout_set_text (layout, &quot;some text&quot;, -1);
pango_layout_set_width (layout, width * PANGO_SCALE);
pango_layout_set_alignment (layout, PANGO_ALIGN_CENTER);

pango_layout_get_size (layout, NULL, &amp;layout_height);
text_height = (double)layout_height / PANGO_SCALE;

cairo_move_to (cr, width / 2,  (HEADER_HEIGHT - text_height) / 2);
pango_cairo_show_layout (cr, layout);

g_object_unref (layout);
}
```

Use [method@Gtk.PrintOperation.set_use_full_page] and
[method@Gtk.PrintOperation.set_unit] before starting the print
operation to set up the transformation of the cairo context
according to your needs.

</description>
<parameters>
<parameter name="operation">
<parameter_description> the `GtkPrintOperation` on which the signal was emitted
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkPrintContext` for the current operation
</parameter_description>
</parameter>
<parameter name="page_nr">
<parameter_description> the number of the currently printed page (0-based)
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkPrintOperation::end-print">
<description>
Emitted after all pages have been rendered.

A handler for this signal can clean up any resources that have
been allocated in the [signal@Gtk.PrintOperation::begin-print] handler.

</description>
<parameters>
<parameter name="operation">
<parameter_description> the `GtkPrintOperation` on which the signal was emitted
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkPrintContext` for the current operation
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkPrintOperation::paginate">
<description>
Emitted after the ::begin-print signal, but before the actual rendering
starts.

It keeps getting emitted until a connected signal handler returns %TRUE.

The ::paginate signal is intended to be used for paginating a document
in small chunks, to avoid blocking the user interface for a long
time. The signal handler should update the number of pages using
[method@Gtk.PrintOperation.set_n_pages], and return %TRUE if the document
has been completely paginated.

If you don't need to do pagination in chunks, you can simply do
it all in the ::begin-print handler, and set the number of pages
from there.


</description>
<parameters>
<parameter name="operation">
<parameter_description> the `GtkPrintOperation` on which the signal was emitted
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkPrintContext` for the current operation
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if pagination is complete
</return>
</signal>

<signal name="GtkPrintOperation::preview">
<description>
Gets emitted when a preview is requested from the native dialog.

The default handler for this signal uses an external viewer
application to preview.

To implement a custom print preview, an application must return
%TRUE from its handler for this signal. In order to use the
provided @context for the preview implementation, it must be
given a suitable cairo context with
[method@Gtk.PrintContext.set_cairo_context].

The custom preview implementation can use
[method@Gtk.PrintOperationPreview.is_selected] and
[method@Gtk.PrintOperationPreview.render_page] to find pages which
are selected for print and render them. The preview must be
finished by calling [method@Gtk.PrintOperationPreview.end_preview]
(typically in response to the user clicking a close button).


</description>
<parameters>
<parameter name="operation">
<parameter_description> the `GtkPrintOperation` on which the signal was emitted
</parameter_description>
</parameter>
<parameter name="preview">
<parameter_description> the `GtkPrintOperationPreview` for the current operation
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkPrintContext` that will be used
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the `GtkWindow` to use as window parent
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the listener wants to take over control of the preview
</return>
</signal>

<signal name="GtkPrintOperation::request-page-setup">
<description>
Emitted once for every page that is printed.

This gives the application a chance to modify the page setup.
Any changes done to @setup will be in force only for printing
this page.

</description>
<parameters>
<parameter name="operation">
<parameter_description> the `GtkPrintOperation` on which the signal was emitted
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkPrintContext` for the current operation
</parameter_description>
</parameter>
<parameter name="page_nr">
<parameter_description> the number of the currently printed page (0-based)
</parameter_description>
</parameter>
<parameter name="setup">
<parameter_description> the `GtkPageSetup`
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkPrintOperation::status-changed">
<description>
Emitted at between the various phases of the print operation.

See [enum@Gtk.PrintStatus] for the phases that are being discriminated.
Use [method@Gtk.PrintOperation.get_status] to find out the current
status.

</description>
<parameters>
<parameter name="operation">
<parameter_description> the `GtkPrintOperation` on which the signal was emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkPrintOperation::update-custom-widget">
<description>
Emitted after change of selected printer.

The actual page setup and print settings are passed to the custom
widget, which can actualize itself according to this change.

</description>
<parameters>
<parameter name="operation">
<parameter_description> the `GtkPrintOperation` on which the signal was emitted
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the custom widget added in ::create-custom-widget
</parameter_description>
</parameter>
<parameter name="setup">
<parameter_description> actual page setup
</parameter_description>
</parameter>
<parameter name="settings">
<parameter_description> actual print settings
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkPrintOperation:allow-async">
<description>
Determines whether the print operation may run asynchronously or not.

Some systems don't support asynchronous printing, but those that do
will return %GTK_PRINT_OPERATION_RESULT_IN_PROGRESS as the status, and
emit the [signal@Gtk.PrintOperation::done] signal when the operation
is actually done.

The Windows port does not support asynchronous operation at all (this
is unlikely to change). On other platforms, all actions except for
%GTK_PRINT_OPERATION_ACTION_EXPORT support asynchronous operation.

</description>
</property>

<property name="GtkPrintOperation:current-page">
<description>
The current page in the document.

If this is set before [method@Gtk.PrintOperation.run],
the user will be able to select to print only the current page.

Note that this only makes sense for pre-paginated documents.

</description>
</property>

<property name="GtkPrintOperation:custom-tab-label">
<description>
Used as the label of the tab containing custom widgets.

Note that this property may be ignored on some platforms.

If this is %NULL, GTK uses a default label.

</description>
</property>

<property name="GtkPrintOperation:default-page-setup">
<description>
The `GtkPageSetup` used by default.

This page setup will be used by [method@Gtk.PrintOperation.run],
but it can be overridden on a per-page basis by connecting
to the [signal@Gtk.PrintOperation::request-page-setup] signal.

</description>
</property>

<property name="GtkPrintOperation:embed-page-setup">
<description>
If %TRUE, page size combo box and orientation combo box
are embedded into page setup page.

</description>
</property>

<property name="GtkPrintOperation:export-filename">
<description>
The name of a file to generate instead of showing the print dialog.

Currently, PDF is the only supported format.

The intended use of this property is for implementing
“Export to PDF” actions.

“Print to PDF” support is independent of this and is done
by letting the user pick the “Print to PDF” item from the
list of printers in the print dialog.

</description>
</property>

<property name="GtkPrintOperation:has-selection">
<description>
Determines whether there is a selection in your application.

This can allow your application to print the selection.
This is typically used to make a &quot;Selection&quot; button sensitive.

</description>
</property>

<property name="GtkPrintOperation:job-name">
<description>
A string used to identify the job (e.g. in monitoring
applications like eggcups).

If you don't set a job name, GTK picks a default one
by numbering successive print jobs.

</description>
</property>

<property name="GtkPrintOperation:n-pages">
<description>
The number of pages in the document.

This must be set to a positive number before the rendering
starts. It may be set in a [signal@Gtk.PrintOperation::begin-print]
signal handler.

Note that the page numbers passed to the
[signal@Gtk.PrintOperation::request-page-setup] and
[signal@Gtk.PrintOperation::draw-page] signals are 0-based, i.e.
if the user chooses to print all pages, the last ::draw-page signal
will be for page @n_pages - 1.

</description>
</property>

<property name="GtkPrintOperation:n-pages-to-print">
<description>
The number of pages that will be printed.

Note that this value is set during print preparation phase
(%GTK_PRINT_STATUS_PREPARING), so this value should never be
get before the data generation phase (%GTK_PRINT_STATUS_GENERATING_DATA).
You can connect to the [signal@Gtk.PrintOperation::status-changed] signal
and call [method@Gtk.PrintOperation.get_n_pages_to_print] when
print status is %GTK_PRINT_STATUS_GENERATING_DATA.

This is typically used to track the progress of print operation.

</description>
</property>

<property name="GtkPrintOperation:print-settings">
<description>
The `GtkPrintSettings` used for initializing the dialog.

Setting this property is typically used to re-establish
print settings from a previous print operation, see
[method@Gtk.PrintOperation.run].

</description>
</property>

<property name="GtkPrintOperation:show-progress">
<description>
Determines whether to show a progress dialog during the
print operation.

</description>
</property>

<property name="GtkPrintOperation:status">
<description>
The status of the print operation.

</description>
</property>

<property name="GtkPrintOperation:status-string">
<description>
A string representation of the status of the print operation.

The string is translated and suitable for displaying the print
status e.g. in a `GtkStatusbar`.

See the [property@Gtk.PrintOperation:status] property for a status
value that is suitable for programmatic use.

</description>
</property>

<property name="GtkPrintOperation:support-selection">
<description>
If %TRUE, the print operation will support print of selection.

This allows the print dialog to show a &quot;Selection&quot; button.

</description>
</property>

<property name="GtkPrintOperation:track-print-status">
<description>
If %TRUE, the print operation will try to continue report on
the status of the print job in the printer queues and printer.

This can allow your application to show things like “out of paper”
issues, and when the print job actually reaches the printer.
However, this is often implemented using polling, and should
not be enabled unless needed.

</description>
</property>

<property name="GtkPrintOperation:unit">
<description>
The transformation for the cairo context obtained from
`GtkPrintContext` is set up in such a way that distances
are measured in units of @unit.

</description>
</property>

<property name="GtkPrintOperation:use-full-page">
<description>
If %TRUE, the transformation for the cairo context obtained
from `GtkPrintContext` puts the origin at the top left corner
of the page.

This may not be the top left corner of the sheet, depending on
page orientation and the number of pages per sheet. Otherwise,
the origin is at the top left corner of the imageable area (i.e.
inside the margins).

</description>
</property>

<enum name="GtkPrintOperationAction">
<description>
Determines what action the print operation should perform.

A parameter of this typs is passed to [method@Gtk.PrintOperation.run].

</description>
<parameters>
<parameter name="GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG">
<parameter_description> Show the print dialog.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_OPERATION_ACTION_PRINT">
<parameter_description> Start to print without showing
the print dialog, based on the current print settings.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_OPERATION_ACTION_PREVIEW">
<parameter_description> Show the print preview.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_OPERATION_ACTION_EXPORT">
<parameter_description> Export to a file. This requires
the export-filename property to be set.
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkPrintOperationPreview::got-page-size">
<description>
Emitted once for each page that gets rendered to the preview.

A handler for this signal should update the @context
according to @page_setup and set up a suitable cairo
context, using [method@Gtk.PrintContext.set_cairo_context].

</description>
<parameters>
<parameter name="preview">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the current `GtkPrintContext`
</parameter_description>
</parameter>
<parameter name="page_setup">
<parameter_description> the `GtkPageSetup` for the current page
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkPrintOperationPreview::ready">
<description>
The ::ready signal gets emitted once per preview operation,
before the first page is rendered.

A handler for this signal can be used for setup tasks.

</description>
<parameters>
<parameter name="preview">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the current `GtkPrintContext`
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GtkPrintOperationResult">
<description>
The result of a print operation.

A value of this type is returned by [method@Gtk.PrintOperation.run].

</description>
<parameters>
<parameter name="GTK_PRINT_OPERATION_RESULT_ERROR">
<parameter_description> An error has occurred.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_OPERATION_RESULT_APPLY">
<parameter_description> The print settings should be stored.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_OPERATION_RESULT_CANCEL">
<parameter_description> The print operation has been canceled,
the print settings should not be stored.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_OPERATION_RESULT_IN_PROGRESS">
<parameter_description> The print operation is not complete
yet. This value will only be returned when running asynchronously.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkPrintPages">
<description>
See also gtk_print_job_set_pages()

</description>
<parameters>
<parameter name="GTK_PRINT_PAGES_ALL">
<parameter_description> All pages.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_PAGES_CURRENT">
<parameter_description> Current page.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_PAGES_RANGES">
<parameter_description> Range of pages.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_PAGES_SELECTION">
<parameter_description> Selected pages.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkPrintQuality">
<description>
See also gtk_print_settings_set_quality().

</description>
<parameters>
<parameter name="GTK_PRINT_QUALITY_LOW">
<parameter_description> Low quality.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_QUALITY_NORMAL">
<parameter_description> Normal quality.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_QUALITY_HIGH">
<parameter_description> High quality.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_QUALITY_DRAFT">
<parameter_description> Draft quality.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkPrintStatus">
<description>
The status gives a rough indication of the completion of a running
print operation.

</description>
<parameters>
<parameter name="GTK_PRINT_STATUS_INITIAL">
<parameter_description> The printing has not started yet; this
status is set initially, and while the print dialog is shown.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_STATUS_PREPARING">
<parameter_description> This status is set while the begin-print
signal is emitted and during pagination.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_STATUS_GENERATING_DATA">
<parameter_description> This status is set while the
pages are being rendered.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_STATUS_SENDING_DATA">
<parameter_description> The print job is being sent off to the
printer.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_STATUS_PENDING">
<parameter_description> The print job has been sent to the printer,
but is not printed for some reason, e.g. the printer may be stopped.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_STATUS_PENDING_ISSUE">
<parameter_description> Some problem has occurred during
printing, e.g. a paper jam.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_STATUS_PRINTING">
<parameter_description> The printer is processing the print job.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_STATUS_FINISHED">
<parameter_description> The printing has been completed successfully.
</parameter_description>
</parameter>
<parameter name="GTK_PRINT_STATUS_FINISHED_ABORTED">
<parameter_description> The printing has been aborted.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkPrintUnixDialog:current-page">
<description>
The current page in the document.

</description>
</property>

<property name="GtkPrintUnixDialog:embed-page-setup">
<description>
%TRUE if the page setup controls are embedded.

</description>
</property>

<property name="GtkPrintUnixDialog:has-selection">
<description>
Whether the application has a selection.

</description>
</property>

<property name="GtkPrintUnixDialog:manual-capabilities">
<description>
Capabilities the application can handle.

</description>
</property>

<property name="GtkPrintUnixDialog:page-setup">
<description>
The `GtkPageSetup` object to use.

</description>
</property>

<property name="GtkPrintUnixDialog:print-settings">
<description>
The `GtkPrintSettings` object used for this dialog.

</description>
</property>

<property name="GtkPrintUnixDialog:selected-printer">
<description>
The `GtkPrinter` which is selected.

</description>
</property>

<property name="GtkPrintUnixDialog:support-selection">
<description>
Whether the dialog supports selection.

</description>
</property>

<signal name="GtkPrinter::details-acquired">
<description>
Emitted in response to a request for detailed information
about a printer from the print backend.

The @success parameter indicates if the information was
actually obtained.

</description>
<parameters>
<parameter name="printer">
<parameter_description> the `GtkPrinter` on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="success">
<parameter_description> %TRUE if the details were successfully acquired
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkPrinter:accepting-jobs">
<description>
%TRUE if the printer is accepting jobs.

</description>
</property>

<property name="GtkPrinter:accepts-pdf">
<description>
%TRUE if this printer can accept PDF.

</description>
</property>

<property name="GtkPrinter:accepts-ps">
<description>
%TRUE if this printer can accept PostScript.

</description>
</property>

<property name="GtkPrinter:backend">
<description>
The backend for the printer.

</description>
</property>

<property name="GtkPrinter:icon-name">
<description>
Icon name to use for the printer.

</description>
</property>

<property name="GtkPrinter:is-virtual">
<description>
%FALSE if this represents a real hardware device.

</description>
</property>

<property name="GtkPrinter:job-count">
<description>
Number of jobs queued in the printer.

</description>
</property>

<property name="GtkPrinter:location">
<description>
Information about the location of the printer.

</description>
</property>

<property name="GtkPrinter:name">
<description>
The name of the printer.

</description>
</property>

<property name="GtkPrinter:paused">
<description>
%TRUE if this printer is paused.

A paused printer still accepts jobs, but it does
not print them.

</description>
</property>

<property name="GtkPrinter:state-message">
<description>
String giving the current status of the printer.

</description>
</property>

<property name="GtkProgressBar:ellipsize">
<description>
The preferred place to ellipsize the string.

The text will be ellipsized if the progress bar does not have enough room
to display the entire string, specified as a `PangoEllipsizeMode`.

Note that setting this property to a value other than
%PANGO_ELLIPSIZE_NONE has the side-effect that the progress bar requests
only enough space to display the ellipsis (&quot;...&quot;). Another means to set a
progress bar's width is [method@Gtk.Widget.set_size_request].

</description>
</property>

<property name="GtkProgressBar:fraction">
<description>
The fraction of total work that has been completed.

</description>
</property>

<property name="GtkProgressBar:inverted">
<description>
Invert the direction in which the progress bar grows.

</description>
</property>

<property name="GtkProgressBar:pulse-step">
<description>
The fraction of total progress to move the bounding block when pulsed.

</description>
</property>

<property name="GtkProgressBar:show-text">
<description>
Sets whether the progress bar will show a text in addition
to the bar itself.

The shown text is either the value of the [property@Gtk.ProgressBar:text]
property or, if that is %NULL, the [property@Gtk.ProgressBar:fraction]
value, as a percentage.

To make a progress bar that is styled and sized suitably for showing text
(even if the actual text is blank), set [property@Gtk.ProgressBar:show-text]
to %TRUE and [property@Gtk.ProgressBar:text] to the empty string (not %NULL).

</description>
</property>

<property name="GtkProgressBar:text">
<description>
Text to be displayed in the progress bar.

</description>
</property>

<enum name="GtkPropagationLimit">
<description>
Describes limits of a [class@EventController] for handling events
targeting other widgets.

</description>
<parameters>
<parameter name="GTK_LIMIT_NONE">
<parameter_description> Events are handled regardless of what their
target is.
</parameter_description>
</parameter>
<parameter name="GTK_LIMIT_SAME_NATIVE">
<parameter_description> Events are only handled if their target
is in the same [iface@Native] as the event controllers widget. Note
that some event types have two targets (origin and destination).
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkPropagationPhase">
<description>
Describes the stage at which events are fed into a [class@EventController].

</description>
<parameters>
<parameter name="GTK_PHASE_NONE">
<parameter_description> Events are not delivered.
</parameter_description>
</parameter>
<parameter name="GTK_PHASE_CAPTURE">
<parameter_description> Events are delivered in the capture phase. The
capture phase happens before the bubble phase, runs from the toplevel down
to the event widget. This option should only be used on containers that
might possibly handle events before their children do.
</parameter_description>
</parameter>
<parameter name="GTK_PHASE_BUBBLE">
<parameter_description> Events are delivered in the bubble phase. The bubble
phase happens after the capture phase, and before the default handlers
are run. This phase runs from the event widget, up to the toplevel.
</parameter_description>
</parameter>
<parameter name="GTK_PHASE_TARGET">
<parameter_description> Events are delivered in the default widget event handlers,
note that widget implementations must chain up on button, motion, touch and
grab broken handlers for controllers in this phase to be run.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkPropertyLookupListModel:item-type">
<description>
The `GType` for elements of this object. See [method@Gio.ListModel.get_item_type].

</description>
</property>

<property name="GtkPropertyLookupListModel:n-items">
<description>
The number of items. See [method@Gio.ListModel.get_n_items].

Since: 4.8

</description>
</property>

<property name="GtkPropertyLookupListModel:object">
<description>
The root object

</description>
</property>

<property name="GtkPropertyLookupListModel:property">
<description>
Name of the property used for lookups

</description>
</property>

<signal name="GtkRange::adjust-bounds">
<description>
Emitted before clamping a value, to give the application a
chance to adjust the bounds.

</description>
<parameters>
<parameter name="range">
<parameter_description> the `GtkRange` that received the signal
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value before we clamp
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkRange::change-value">
<description>
Emitted when a scroll action is performed on a range.

It allows an application to determine the type of scroll event
that occurred and the resultant new value. The application can
handle the event itself and return %TRUE to prevent further
processing. Or, by returning %FALSE, it can pass the event to
other handlers until the default GTK handler is reached.

The value parameter is unrounded. An application that overrides
the ::change-value signal is responsible for clamping the value
to the desired number of decimal digits; the default GTK
handler clamps the value based on [property@Gtk.Range:round-digits].


</description>
<parameters>
<parameter name="range">
<parameter_description> the `GtkRange` that received the signal
</parameter_description>
</parameter>
<parameter name="scroll">
<parameter_description> the type of scroll action that was performed
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the new value resulting from the scroll action
</parameter_description>
</parameter>
</parameters>
<return> %TRUE to prevent other handlers from being invoked for
the signal, %FALSE to propagate the signal further
</return>
</signal>

<signal name="GtkRange::move-slider">
<description>
Virtual function that moves the slider.

Used for keybindings.

</description>
<parameters>
<parameter name="range">
<parameter_description> the `GtkRange` that received the signal
</parameter_description>
</parameter>
<parameter name="step">
<parameter_description> how to move the slider
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkRange::value-changed">
<description>
Emitted when the range value changes.

</description>
<parameters>
<parameter name="range">
<parameter_description> the `GtkRange` that received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkRange:adjustment">
<description>
The adjustment that is controlled by the range.

</description>
</property>

<property name="GtkRange:fill-level">
<description>
The fill level (e.g. prebuffering of a network stream).

</description>
</property>

<property name="GtkRange:inverted">
<description>
If %TRUE, the direction in which the slider moves is inverted.

</description>
</property>

<property name="GtkRange:restrict-to-fill-level">
<description>
Controls whether slider movement is restricted to an
upper boundary set by the fill level.

</description>
</property>

<property name="GtkRange:round-digits">
<description>
The number of digits to round the value to when
it changes.

See [signal@Gtk.Range::change-value].

</description>
</property>

<property name="GtkRange:show-fill-level">
<description>
Controls whether fill level indicator graphics are displayed
on the trough.

</description>
</property>

<signal name="GtkRecentManager::changed">
<description>
Emitted when the current recently used resources manager changes
its contents.

This can happen either by calling [method@Gtk.RecentManager.add_item]
or by another application.

</description>
<parameters>
<parameter name="recent_manager">
<parameter_description> the recent manager
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkRecentManager:filename">
<description>
The full path to the file to be used to store and read the
recently used resources list

</description>
</property>

<property name="GtkRecentManager:size">
<description>
The size of the recently used resources list.

</description>
</property>

<enum name="GtkRecentManagerError">
<description>
Error codes for `GtkRecentManager` operations

</description>
<parameters>
<parameter name="GTK_RECENT_MANAGER_ERROR_NOT_FOUND">
<parameter_description> the URI specified does not exists in
the recently used resources list.
</parameter_description>
</parameter>
<parameter name="GTK_RECENT_MANAGER_ERROR_INVALID_URI">
<parameter_description> the URI specified is not valid.
</parameter_description>
</parameter>
<parameter name="GTK_RECENT_MANAGER_ERROR_INVALID_ENCODING">
<parameter_description> the supplied string is not
UTF-8 encoded.
</parameter_description>
</parameter>
<parameter name="GTK_RECENT_MANAGER_ERROR_NOT_REGISTERED">
<parameter_description> no application has registered
the specified item.
</parameter_description>
</parameter>
<parameter name="GTK_RECENT_MANAGER_ERROR_READ">
<parameter_description> failure while reading the recently used
resources file.
</parameter_description>
</parameter>
<parameter name="GTK_RECENT_MANAGER_ERROR_WRITE">
<parameter_description> failure while writing the recently used
resources file.
</parameter_description>
</parameter>
<parameter name="GTK_RECENT_MANAGER_ERROR_UNKNOWN">
<parameter_description> unspecified error.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkResponseType">
<description>
Predefined values for use as response ids in gtk_dialog_add_button().

All predefined values are negative; GTK leaves values of 0 or greater for
application-defined response ids.

</description>
<parameters>
<parameter name="GTK_RESPONSE_NONE">
<parameter_description> Returned if an action widget has no response id,
or if the dialog gets programmatically hidden or destroyed
</parameter_description>
</parameter>
<parameter name="GTK_RESPONSE_REJECT">
<parameter_description> Generic response id, not used by GTK dialogs
</parameter_description>
</parameter>
<parameter name="GTK_RESPONSE_ACCEPT">
<parameter_description> Generic response id, not used by GTK dialogs
</parameter_description>
</parameter>
<parameter name="GTK_RESPONSE_DELETE_EVENT">
<parameter_description> Returned if the dialog is deleted
</parameter_description>
</parameter>
<parameter name="GTK_RESPONSE_OK">
<parameter_description> Returned by OK buttons in GTK dialogs
</parameter_description>
</parameter>
<parameter name="GTK_RESPONSE_CANCEL">
<parameter_description> Returned by Cancel buttons in GTK dialogs
</parameter_description>
</parameter>
<parameter name="GTK_RESPONSE_CLOSE">
<parameter_description> Returned by Close buttons in GTK dialogs
</parameter_description>
</parameter>
<parameter name="GTK_RESPONSE_YES">
<parameter_description> Returned by Yes buttons in GTK dialogs
</parameter_description>
</parameter>
<parameter name="GTK_RESPONSE_NO">
<parameter_description> Returned by No buttons in GTK dialogs
</parameter_description>
</parameter>
<parameter name="GTK_RESPONSE_APPLY">
<parameter_description> Returned by Apply buttons in GTK dialogs
</parameter_description>
</parameter>
<parameter name="GTK_RESPONSE_HELP">
<parameter_description> Returned by Help buttons in GTK dialogs
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkRevealer:child">
<description>
The child widget.

</description>
</property>

<property name="GtkRevealer:child-revealed">
<description>
Whether the child is revealed and the animation target reached.

</description>
</property>

<property name="GtkRevealer:reveal-child">
<description>
Whether the revealer should reveal the child.

</description>
</property>

<property name="GtkRevealer:transition-duration">
<description>
The animation duration, in milliseconds.

</description>
</property>

<property name="GtkRevealer:transition-type">
<description>
The type of animation used to transition.

</description>
</property>

<enum name="GtkRevealerTransitionType">
<description>
These enumeration values describe the possible transitions
when the child of a `GtkRevealer` widget is shown or hidden.

</description>
<parameters>
<parameter name="GTK_REVEALER_TRANSITION_TYPE_NONE">
<parameter_description> No transition
</parameter_description>
</parameter>
<parameter name="GTK_REVEALER_TRANSITION_TYPE_CROSSFADE">
<parameter_description> Fade in
</parameter_description>
</parameter>
<parameter name="GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT">
<parameter_description> Slide in from the left
</parameter_description>
</parameter>
<parameter name="GTK_REVEALER_TRANSITION_TYPE_SLIDE_LEFT">
<parameter_description> Slide in from the right
</parameter_description>
</parameter>
<parameter name="GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP">
<parameter_description> Slide in from the bottom
</parameter_description>
</parameter>
<parameter name="GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN">
<parameter_description> Slide in from the top
</parameter_description>
</parameter>
<parameter name="GTK_REVEALER_TRANSITION_TYPE_SWING_RIGHT">
<parameter_description> Floop in from the left
</parameter_description>
</parameter>
<parameter name="GTK_REVEALER_TRANSITION_TYPE_SWING_LEFT">
<parameter_description> Floop in from the right
</parameter_description>
</parameter>
<parameter name="GTK_REVEALER_TRANSITION_TYPE_SWING_UP">
<parameter_description> Floop in from the bottom
</parameter_description>
</parameter>
<parameter name="GTK_REVEALER_TRANSITION_TYPE_SWING_DOWN">
<parameter_description> Floop in from the top
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkScale:digits">
<description>
The number of decimal places that are displayed in the value.

</description>
</property>

<property name="GtkScale:draw-value">
<description>
Whether the current value is displayed as a string next to the slider.

</description>
</property>

<property name="GtkScale:has-origin">
<description>
Whether the scale has an origin.

</description>
</property>

<property name="GtkScale:value-pos">
<description>
The position in which the current value is displayed.

</description>
</property>

<signal name="GtkScaleButton::popdown">
<description>
Emitted to dismiss the popup.

This is a [keybinding signal](class.SignalAction.html).

The default binding for this signal is &lt;kbd&gt;Escape&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="button">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkScaleButton::popup">
<description>
Emitted to popup the scale widget.

This is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal are &lt;kbd&gt;Space&lt;/kbd&gt;,
&lt;kbd&gt;Enter&lt;/kbd&gt; and &lt;kbd&gt;Return&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="button">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkScaleButton::value-changed">
<description>
Emitted when the value field has changed.

</description>
<parameters>
<parameter name="button">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkScaleButton:active">
<description>
If the scale button should be pressed in.

Since: 4.10

</description>
</property>

<property name="GtkScaleButton:adjustment">
<description>
The `GtkAdjustment` that is used as the model.

</description>
</property>

<property name="GtkScaleButton:icons">
<description>
The names of the icons to be used by the scale button.

The first item in the array will be used in the button
when the current value is the lowest value, the second
item for the highest value. All the subsequent icons will
be used for all the other values, spread evenly over the
range of values.

If there's only one icon name in the @icons array, it will
be used for all the values. If only two icon names are in
the @icons array, the first one will be used for the bottom
50% of the scale, and the second one for the top 50%.

It is recommended to use at least 3 icons so that the
`GtkScaleButton` reflects the current value of the scale
better for the users.

</description>
</property>

<property name="GtkScaleButton:value">
<description>
The value of the scale.

</description>
</property>

<enum name="GtkScrollStep">
<description>
Passed as argument to various keybinding signals.

</description>
<parameters>
<parameter name="GTK_SCROLL_STEPS">
<parameter_description> Scroll in steps.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_PAGES">
<parameter_description> Scroll by pages.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_ENDS">
<parameter_description> Scroll to ends.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_HORIZONTAL_STEPS">
<parameter_description> Scroll in horizontal steps.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_HORIZONTAL_PAGES">
<parameter_description> Scroll by horizontal pages.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_HORIZONTAL_ENDS">
<parameter_description> Scroll to the horizontal ends.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkScrollType">
<description>
Scrolling types.

</description>
<parameters>
<parameter name="GTK_SCROLL_NONE">
<parameter_description> No scrolling.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_JUMP">
<parameter_description> Jump to new location.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_STEP_BACKWARD">
<parameter_description> Step backward.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_STEP_FORWARD">
<parameter_description> Step forward.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_PAGE_BACKWARD">
<parameter_description> Page backward.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_PAGE_FORWARD">
<parameter_description> Page forward.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_STEP_UP">
<parameter_description> Step up.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_STEP_DOWN">
<parameter_description> Step down.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_PAGE_UP">
<parameter_description> Page up.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_PAGE_DOWN">
<parameter_description> Page down.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_STEP_LEFT">
<parameter_description> Step to the left.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_STEP_RIGHT">
<parameter_description> Step to the right.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_PAGE_LEFT">
<parameter_description> Page to the left.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_PAGE_RIGHT">
<parameter_description> Page to the right.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_START">
<parameter_description> Scroll to start.
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_END">
<parameter_description> Scroll to end.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkScrollable:hadjustment">
<description>
Horizontal `GtkAdjustment` of the scrollable widget.

This adjustment is shared between the scrollable widget and its parent.

</description>
</property>

<property name="GtkScrollable:hscroll-policy">
<description>
Determines when horizontal scrolling should start.

</description>
</property>

<property name="GtkScrollable:vadjustment">
<description>
Vertical `GtkAdjustment` of the scrollable widget.

This adjustment is shared between the scrollable widget and its parent.

</description>
</property>

<property name="GtkScrollable:vscroll-policy">
<description>
Determines when vertical scrolling should start.

</description>
</property>

<enum name="GtkScrollablePolicy">
<description>
Defines the policy to be used in a scrollable widget when updating
the scrolled window adjustments in a given orientation.

</description>
<parameters>
<parameter name="GTK_SCROLL_MINIMUM">
<parameter_description> Scrollable adjustments are based on the minimum size
</parameter_description>
</parameter>
<parameter name="GTK_SCROLL_NATURAL">
<parameter_description> Scrollable adjustments are based on the natural size
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkScrollbar:adjustment">
<description>
The `GtkAdjustment` controlled by this scrollbar.

</description>
</property>

<property name="GtkScrolleWindow:hadjustment">
<description>
The `GtkAdjustment` for the horizontal position.

</description>
</property>

<property name="GtkScrolleWindow:vadjustment">
<description>
The `GtkAdjustment` for the vertical position.

</description>
</property>

<signal name="GtkScrolledWindow::edge-overshot">
<description>
Emitted whenever user initiated scrolling makes the scrolled
window firmly surpass the limits defined by the adjustment
in that orientation.

A similar behavior without edge resistance is provided by the
[signal@Gtk.ScrolledWindow::edge-reached] signal.

Note: The @pos argument is LTR/RTL aware, so callers should be
aware too if intending to provide behavior on horizontal edges.

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> edge side that was hit
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkScrolledWindow::edge-reached">
<description>
Emitted whenever user-initiated scrolling makes the scrolled
window exactly reach the lower or upper limits defined by the
adjustment in that orientation.

A similar behavior with edge resistance is provided by the
[signal@Gtk.ScrolledWindow::edge-overshot] signal.

Note: The @pos argument is LTR/RTL aware, so callers should be
aware too if intending to provide behavior on horizontal edges.

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> edge side that was reached
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkScrolledWindow::move-focus-out">
<description>
Emitted when focus is moved away from the scrolled window by a
keybinding.

This is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal are
`Ctrl + Tab` to move forward and `Ctrl + Shift + Tab` to
move backward.

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="direction_type">
<parameter_description> either %GTK_DIR_TAB_FORWARD or
%GTK_DIR_TAB_BACKWARD
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkScrolledWindow::scroll-child">
<description>
Emitted when a keybinding that scrolls is pressed.

This is a [keybinding signal](class.SignalAction.html).

The horizontal or vertical adjustment is updated which triggers a
signal that the scrolled window’s child may listen to and scroll itself.

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="scroll">
<parameter_description> a `GtkScrollType` describing how much to scroll
</parameter_description>
</parameter>
<parameter name="horizontal">
<parameter_description> whether the keybinding scrolls the child
horizontally or not
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkScrolledWindow:child">
<description>
The child widget.

</description>
</property>

<property name="GtkScrolledWindow:has-frame">
<description>
Whether to draw a frame around the contents.

</description>
</property>

<property name="GtkScrolledWindow:hscrollbar-policy">
<description>
When the horizontal scrollbar is displayed.

Use [method@Gtk.ScrolledWindow.set_policy] to set
this property.

</description>
</property>

<property name="GtkScrolledWindow:kinetic-scrolling">
<description>
Whether kinetic scrolling is enabled or not.

Kinetic scrolling only applies to devices with source %GDK_SOURCE_TOUCHSCREEN.

</description>
</property>

<property name="GtkScrolledWindow:max-content-height">
<description>
The maximum content height of @scrolled_window.

</description>
</property>

<property name="GtkScrolledWindow:max-content-width">
<description>
The maximum content width of @scrolled_window.

</description>
</property>

<property name="GtkScrolledWindow:min-content-height">
<description>
The minimum content height of @scrolled_window.

</description>
</property>

<property name="GtkScrolledWindow:min-content-width">
<description>
The minimum content width of @scrolled_window.

</description>
</property>

<property name="GtkScrolledWindow:overlay-scrolling">
<description>
Whether overlay scrolling is enabled or not.

If it is, the scrollbars are only added as traditional widgets
when a mouse is present. Otherwise, they are overlaid on top of
the content, as narrow indicators.

Note that overlay scrolling can also be globally disabled, with
the [property@Gtk.Settings:gtk-overlay-scrolling] setting.

</description>
</property>

<property name="GtkScrolledWindow:propagate-natural-height">
<description>
Whether the natural height of the child should be calculated and propagated
through the scrolled window’s requested natural height.

This is useful in cases where an attempt should be made to allocate exactly
enough space for the natural size of the child.

</description>
</property>

<property name="GtkScrolledWindow:propagate-natural-width">
<description>
Whether the natural width of the child should be calculated and propagated
through the scrolled window’s requested natural width.

This is useful in cases where an attempt should be made to allocate exactly
enough space for the natural size of the child.

</description>
</property>

<property name="GtkScrolledWindow:vscrollbar-policy">
<description>
When the vertical scrollbar is displayed.

Use [method@Gtk.ScrolledWindow.set_policy] to set
this property.

</description>
</property>

<property name="GtkScrolledWindow:window-placement">
<description>
Where the contents are located with respect to the scrollbars.

</description>
</property>

<property name="GtkSearchBar:child">
<description>
The child widget.

</description>
</property>

<property name="GtkSearchBar:key-capture-widget">
<description>
The key capture widget.

</description>
</property>

<property name="GtkSearchBar:search-mode-enabled">
<description>
Whether the search mode is on and the search bar shown.

</description>
</property>

<property name="GtkSearchBar:show-close-button">
<description>
Whether to show the close button in the search bar.

</description>
</property>

<signal name="GtkSearchEntry::activate">
<description>
Emitted when the entry is activated.

The keybindings for this signal are all forms of the Enter key.

</description>
<parameters>
<parameter name="self">
<parameter_description> The widget on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkSearchEntry::next-match">
<description>
Emitted when the user initiates a move to the next match
for the current search string.

This is a [keybinding signal](class.SignalAction.html).

Applications should connect to it, to implement moving
between matches.

The default bindings for this signal is Ctrl-g.

</description>
<parameters>
<parameter name="entry">
<parameter_description> the entry on which the signal was emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkSearchEntry::previous-match">
<description>
Emitted when the user initiates a move to the previous match
for the current search string.

This is a [keybinding signal](class.SignalAction.html).

Applications should connect to it, to implement moving
between matches.

The default bindings for this signal is Ctrl-Shift-g.

</description>
<parameters>
<parameter name="entry">
<parameter_description> the entry on which the signal was emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkSearchEntry::search-changed">
<description>
Emitted with a delay. The length of the delay can be
changed with the [property@Gtk.SearchEntry:search-delay]
property.

</description>
<parameters>
<parameter name="entry">
<parameter_description> the entry on which the signal was emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkSearchEntry::search-started">
<description>
Emitted when the user initiated a search on the entry.

</description>
<parameters>
<parameter name="entry">
<parameter_description> the entry on which the signal was emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkSearchEntry::stop-search">
<description>
Emitted when the user stops a search via keyboard input.

This is a [keybinding signal](class.SignalAction.html).

Applications should connect to it, to implement hiding
the search entry in this case.

The default bindings for this signal is Escape.

</description>
<parameters>
<parameter name="entry">
<parameter_description> the entry on which the signal was emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkSearchEntry:activates-default">
<description>
Whether to activate the default widget when Enter is pressed.

</description>
</property>

<property name="GtkSearchEntry:placeholder-text">
<description>
The text that will be displayed in the `GtkSearchEntry`
when it is empty and unfocused.

</description>
</property>

<property name="GtkSearchEntry:search-delay">
<description>
The delay in milliseconds from last keypress to the search
changed signal.

Since: 4.8

</description>
</property>

<signal name="GtkSectionModel::sections-changed">
<description>
Emitted when the start-of-section state of some of the items in @model changes.

Note that this signal does not specify the new section state of the
items, they need to be queried manually. It is also not necessary for
a model to change the section state of any of the items in the section
model, though it would be rather useless to emit such a signal.

The [signal@Gio.ListModel::items-changed] implies the effect of the
[signal@Gtk.SectionModel::sections-changed] signal for all the items
it covers.

Since: 4.12

</description>
<parameters>
<parameter name="model">
<parameter_description> a `GtkSectionModel`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> The first item that may have changed
</parameter_description>
</parameter>
<parameter name="n_items">
<parameter_description> number of items with changes
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkSelectionFilterModel:item-type">
<description>
The type of items. See [method@Gio.ListModel.get_item_type].

Since: 4.8

</description>
</property>

<property name="GtkSelectionFilterModel:model">
<description>
The model being filtered.

</description>
</property>

<property name="GtkSelectionFilterModel:n-items">
<description>
The number of items. See [method@Gio.ListModel.get_n_items].

Since: 4.8

</description>
</property>

<enum name="GtkSelectionMode">
<description>
Used to control what selections users are allowed to make.

</description>
<parameters>
<parameter name="GTK_SELECTION_NONE">
<parameter_description> No selection is possible.
</parameter_description>
</parameter>
<parameter name="GTK_SELECTION_SINGLE">
<parameter_description> Zero or one element may be selected.
</parameter_description>
</parameter>
<parameter name="GTK_SELECTION_BROWSE">
<parameter_description> Exactly one element is selected.
In some circumstances, such as initially or during a search
operation, it’s possible for no element to be selected with
%GTK_SELECTION_BROWSE. What is really enforced is that the user
can’t deselect a currently selected element except by selecting
another element.
</parameter_description>
</parameter>
<parameter name="GTK_SELECTION_MULTIPLE">
<parameter_description> Any number of elements may be selected.
The Ctrl key may be used to enlarge the selection, and Shift
key to select between the focus and the child pointed to.
Some widgets may also allow Click-drag to select a range of elements.
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkSelectionModel::selection-changed">
<description>
Emitted when the selection state of some of the items in @model changes.

Note that this signal does not specify the new selection state of the
items, they need to be queried manually. It is also not necessary for
a model to change the selection state of any of the items in the selection
model, though it would be rather useless to emit such a signal.

</description>
<parameters>
<parameter name="model">
<parameter_description> a `GtkSelectionModel`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> The first item that may have changed
</parameter_description>
</parameter>
<parameter name="n_items">
<parameter_description> number of items with changes
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GtkSensitivityType">
<description>
Determines how GTK handles the sensitivity of various controls,
such as combo box buttons.

</description>
<parameters>
<parameter name="GTK_SENSITIVITY_AUTO">
<parameter_description> The control is made insensitive if no
action can be triggered
</parameter_description>
</parameter>
<parameter name="GTK_SENSITIVITY_ON">
<parameter_description> The control is always sensitive
</parameter_description>
</parameter>
<parameter name="GTK_SENSITIVITY_OFF">
<parameter_description> The control is always insensitive
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkSettings:gtk-alternative-button-order">
<description>
Whether buttons in dialogs should use the alternative button order.

</description>
</property>

<property name="GtkSettings:gtk-alternative-sort-arrows">
<description>
Controls the direction of the sort indicators in sorted list and tree
views.

By default an arrow pointing down means the column is sorted
in ascending order. When set to %TRUE, this order will be inverted.

</description>
</property>

<property name="GtkSettings:gtk-application-prefer-dark-theme">
<description>
Whether the application prefers to use a dark theme.

If a GTK theme includes a dark variant, it will be used
instead of the configured theme.

Some applications benefit from minimizing the amount of light
pollution that interferes with the content. Good candidates for
dark themes are photo and video editors that make the actual
content get all the attention and minimize the distraction of
the chrome.

Dark themes should not be used for documents, where large spaces
are white/light and the dark chrome creates too much contrast
(web browser, text editor...).

</description>
</property>

<property name="GtkSettings:gtk-cursor-aspect-ratio">
<description>
The aspect ratio of the text caret.

</description>
</property>

<property name="GtkSettings:gtk-cursor-blink">
<description>
Whether the cursor should blink.

Also see the [property@Gtk.Settings:gtk-cursor-blink-timeout] setting,
which allows more flexible control over cursor blinking.

</description>
</property>

<property name="GtkSettings:gtk-cursor-blink-time">
<description>
Length of the cursor blink cycle, in milliseconds.

</description>
</property>

<property name="GtkSettings:gtk-cursor-blink-timeout">
<description>
Time after which the cursor stops blinking, in seconds.

The timer is reset after each user interaction.

Setting this to zero has the same effect as setting
[property@Gtk.Settings:gtk-cursor-blink] to %FALSE.

</description>
</property>

<property name="GtkSettings:gtk-cursor-theme-name">
<description>
Name of the cursor theme to use.

Use %NULL to use the default theme.

</description>
</property>

<property name="GtkSettings:gtk-cursor-theme-size">
<description>
The size to use for cursors.

0 means to use the default size.

</description>
</property>

<property name="GtkSettings:gtk-decoration-layout">
<description>
Determines which buttons should be put in the
titlebar of client-side decorated windows, and whether they
should be placed on the left or right.

The format of the string is button names, separated by commas.
A colon separates the buttons that should appear on the left
from those on the right. Recognized button names are minimize,
maximize, close, icon (the window icon) and menu (a menu button
for the fallback app menu).

For example, &quot;menu:minimize,maximize,close&quot; specifies a menu
on the left, and minimize, maximize and close buttons on the right.

Note that buttons will only be shown when they are meaningful.
E.g. a menu button only appears when the desktop shell does not
show the app menu, and a close button only appears on a window
that can be closed.

Also note that the setting can be overridden with the
[property@Gtk.HeaderBar:decoration-layout] property.

</description>
</property>

<property name="GtkSettings:gtk-dialogs-use-header">
<description>
Whether builtin GTK dialogs such as the file chooser, the
color chooser or the font chooser will use a header bar at
the top to show action widgets, or an action area at the bottom.

This setting does not affect custom dialogs using `GtkDialog`
directly, or message dialogs.

</description>
</property>

<property name="GtkSettings:gtk-dnd-drag-threshold">
<description>
The number of pixels the cursor can move before dragging.

</description>
</property>

<property name="GtkSettings:gtk-double-click-distance">
<description>
The maximum distance allowed between two clicks for them to be considered
a double click, in pixels.

</description>
</property>

<property name="GtkSettings:gtk-double-click-time">
<description>
The maximum time to allow between two clicks for them to be considered
a double click, in milliseconds.

</description>
</property>

<property name="GtkSettings:gtk-enable-accels">
<description>
Whether menu items should have visible accelerators which can be
activated.

</description>
</property>

<property name="GtkSettings:gtk-enable-animations">
<description>
Whether to enable toolkit-wide animations.

</description>
</property>

<property name="GtkSettings:gtk-enable-event-sounds">
<description>
Whether to play any event sounds at all.

See the [Sound Theme Specifications](http://www.freedesktop.org/wiki/Specifications/sound-theme-spec)
for more information on event sounds and sound themes.

GTK itself does not support event sounds, you have to use a loadable
module like the one that comes with libcanberra.

</description>
</property>

<property name="GtkSettings:gtk-enable-input-feedback-sounds">
<description>
Whether to play event sounds as feedback to user input.

See the [Sound Theme Specifications](http://www.freedesktop.org/wiki/Specifications/sound-theme-spec)
for more information on event sounds and sound themes.

GTK itself does not support event sounds, you have to use a loadable
module like the one that comes with libcanberra.

</description>
</property>

<property name="GtkSettings:gtk-enable-primary-paste">
<description>
Whether a middle click on a mouse should paste the
'PRIMARY' clipboard content at the cursor location.

</description>
</property>

<property name="GtkSettings:gtk-entry-password-hint-timeout">
<description>
How long to show the last input character in hidden
entries.

This value is in milliseconds. 0 disables showing the
last char. 600 is a good value for enabling it.

</description>
</property>

<property name="GtkSettings:gtk-entry-select-on-focus">
<description>
Whether to select the contents of an entry when it is focused.

</description>
</property>

<property name="GtkSettings:gtk-error-bell">
<description>
When %TRUE, keyboard navigation and other input-related errors
will cause a beep.

Since the error bell is implemented using gdk_surface_beep(), the
windowing system may offer ways to configure the error bell in many
ways, such as flashing the window or similar visual effects.

</description>
</property>

<property name="GtkSettings:gtk-font-name">
<description>
The default font to use.

GTK uses the family name and size from this string.

</description>
</property>

<property name="GtkSettings:gtk-fontconfig-timestamp">
<description>
Timestamp of the current fontconfig configuration.

</description>
</property>

<property name="GtkSettings:gtk-hint-font-metrics">
<description>
Whether hinting should be applied to font metrics.

Note that this also turns off subpixel positioning of glyphs,
since it conflicts with metrics hinting.

Since: 4.6

</description>
</property>

<property name="GtkSettings:gtk-icon-theme-name">
<description>
Name of the icon theme to use.

See [class@Gtk.IconTheme] for details about how
GTK handles icon themes.

</description>
</property>

<property name="GtkSettings:gtk-im-module">
<description>
Which IM (input method) module should be used by default.

This is the input method that will be used if the user has not
explicitly chosen another input method from the IM context menu.
This also can be a colon-separated list of input methods, which GTK
will try in turn until it finds one available on the system.

See [class@Gtk.IMContext].

</description>
</property>

<property name="GtkSettings:gtk-keynav-use-caret">
<description>
Whether GTK should make sure that text can be navigated with
a caret, even if it is not editable.

This is useful when using a screen reader.

</description>
</property>

<property name="GtkSettings:gtk-label-select-on-focus">
<description>
Whether to select the contents of a selectable
label when it is focused.

</description>
</property>

<property name="GtkSettings:gtk-long-press-time">
<description>
The time for a button or touch press to be considered a “long press”.

See [class@Gtk.GestureLongPress].

</description>
</property>

<property name="GtkSettings:gtk-overlay-scrolling">
<description>
Whether scrolled windows may use overlaid scrolling indicators.

If this is set to %FALSE, scrolled windows will have permanent
scrollbars.

</description>
</property>

<property name="GtkSettings:gtk-primary-button-warps-slider">
<description>
If the value of this setting is %TRUE, clicking the primary button in a
`GtkRange` trough will move the slider, and hence set the range’s value, to
the point that you clicked.

If it is %FALSE, a primary click will cause the slider/value to move
by the range’s page-size towards the point clicked.

Whichever action you choose for the primary button, the other action will
be available by holding Shift and primary-clicking, or clicking the middle
mouse button.

</description>
</property>

<property name="GtkSettings:gtk-print-backends">
<description>
A comma-separated list of print backends to use in the print
dialog.

Available print backends depend on the GTK installation,
and may include &quot;file&quot;, &quot;cups&quot;, &quot;lpr&quot; or &quot;papi&quot;.

</description>
</property>

<property name="GtkSettings:gtk-print-preview-command">
<description>
A command to run for displaying the print preview.

The command should contain a `%f` placeholder, which will get
replaced by the path to the pdf file. The command may also
contain a `%s` placeholder, which will get replaced by the
path to a file containing the print settings in the format
produced by [method@Gtk.PrintSettings.to_file].

The preview application is responsible for removing the pdf
file and the print settings file when it is done.

</description>
</property>

<property name="GtkSettings:gtk-recent-files-enabled">
<description>
Whether GTK should keep track of items inside the recently used
resources list.

If set to %FALSE, the list will always be empty.

</description>
</property>

<property name="GtkSettings:gtk-recent-files-max-age">
<description>
The maximum age, in days, of the items inside the recently used
resources list.

Items older than this setting will be excised from the list.
If set to 0, the list will always be empty; if set to -1, no
item will be removed.

</description>
</property>

<property name="GtkSettings:gtk-shell-shows-app-menu">
<description>
Set to %TRUE if the desktop environment is displaying
the app menu, %FALSE if the app should display it itself.

</description>
</property>

<property name="GtkSettings:gtk-shell-shows-desktop">
<description>
Set to %TRUE if the desktop environment is displaying
the desktop folder, %FALSE if not.

</description>
</property>

<property name="GtkSettings:gtk-shell-shows-menubar">
<description>
Set to %TRUE if the desktop environment is displaying
the menubar, %FALSE if the app should display it itself.

</description>
</property>

<property name="GtkSettings:gtk-sound-theme-name">
<description>
The XDG sound theme to use for event sounds.

See the [Sound Theme Specifications](http://www.freedesktop.org/wiki/Specifications/sound-theme-spec)
for more information on event sounds and sound themes.

GTK itself does not support event sounds, you have to use
a loadable module like the one that comes with libcanberra.

</description>
</property>

<property name="GtkSettings:gtk-split-cursor">
<description>
Whether two cursors should be displayed for mixed left-to-right and
right-to-left text.

</description>
</property>

<property name="GtkSettings:gtk-theme-name">
<description>
Name of the theme to load.

See [class@Gtk.CssProvider] for details about how
GTK finds the CSS stylesheet for a theme.

</description>
</property>

<property name="GtkSettings:gtk-titlebar-double-click">
<description>
Determines the action to take when a double-click
occurs on the titlebar of client-side decorated windows.

Recognized actions are minimize, toggle-maximize, menu, lower
or none.

</description>
</property>

<property name="GtkSettings:gtk-titlebar-middle-click">
<description>
Determines the action to take when a middle-click
occurs on the titlebar of client-side decorated windows.

Recognized actions are minimize, toggle-maximize, menu, lower
or none.

</description>
</property>

<property name="GtkSettings:gtk-titlebar-right-click">
<description>
Determines the action to take when a right-click
occurs on the titlebar of client-side decorated windows.

Recognized actions are minimize, toggle-maximize, menu, lower
or none.

</description>
</property>

<property name="GtkSettings:gtk-xft-antialias">
<description>
Whether to antialias fonts.

The values are 0 for no, 1 for yes, or -1 for the system default.

</description>
</property>

<property name="GtkSettings:gtk-xft-dpi">
<description>
The font resolution, in 1024 * dots/inch.

-1 to use the default value.

</description>
</property>

<property name="GtkSettings:gtk-xft-hinting">
<description>
Whether to enable font hinting.

The values are 0 for no, 1 for yes, or -1 for the system default.

</description>
</property>

<property name="GtkSettings:gtk-xft-hintstyle">
<description>
What degree of font hinting to use.

The possible vaues are hintnone, hintslight,
hintmedium, hintfull.

</description>
</property>

<property name="GtkSettings:gtk-xft-rgba">
<description>
The type of subpixel antialiasing to use.

The possible values are none, rgb, bgr, vrgb, vbgr.

</description>
</property>

<property name="GtkShortcut:action">
<description>
The action that gets activated by this shortcut.

</description>
</property>

<property name="GtkShortcut:arguments">
<description>
Arguments passed to activation.

</description>
</property>

<property name="GtkShortcut:trigger">
<description>
The trigger that triggers this shortcut.

</description>
</property>

<enum name="GtkShortcutActionFlags">
<description>
List of flags that can be passed to action activation.

More flags may be added in the future.

</description>
<parameters>
<parameter name="GTK_SHORTCUT_ACTION_EXCLUSIVE">
<parameter_description> The action is the only
action that can be activated. If this flag is not set,
a future activation may select a different action.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkShortcutController:item-type">
<description>
The type of items. See [method@Gio.ListModel.get_item_type].

Since: 4.8

</description>
</property>

<property name="GtkShortcutController:mnemonic-modifiers">
<description>
The modifiers that need to be pressed to allow mnemonics activation.

</description>
</property>

<property name="GtkShortcutController:model">
<description>
A list model to take shortcuts from.

</description>
</property>

<property name="GtkShortcutController:n-items">
<description>
The number of items. See [method@Gio.ListModel.get_n_items].

Since: 4.8

</description>
</property>

<property name="GtkShortcutController:scope">
<description>
What scope the shortcuts will be handled in.

</description>
</property>

<property name="GtkShortcutLabel:accelerator">
<description>
The accelerator that @self displays.

See [property@Gtk.ShortcutsShortcut:accelerator]
for the accepted syntax.

</description>
</property>

<property name="GtkShortcutLabel:disabled-text">
<description>
The text that is displayed when no accelerator is set.

</description>
</property>

<enum name="GtkShortcutScope">
<description>
Describes where [class@Shortcut]s added to a
[class@ShortcutController] get handled.

</description>
<parameters>
<parameter name="GTK_SHORTCUT_SCOPE_LOCAL">
<parameter_description> Shortcuts are handled inside
the widget the controller belongs to.
</parameter_description>
</parameter>
<parameter name="GTK_SHORTCUT_SCOPE_MANAGED">
<parameter_description> Shortcuts are handled by
the first ancestor that is a [iface@ShortcutManager]
</parameter_description>
</parameter>
<parameter name="GTK_SHORTCUT_SCOPE_GLOBAL">
<parameter_description> Shortcuts are handled by
the root widget.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkShortcutType">
<description>
GtkShortcutType specifies the kind of shortcut that is being described.

More values may be added to this enumeration over time.

</description>
<parameters>
<parameter name="GTK_SHORTCUT_ACCELERATOR">
<parameter_description>
The shortcut is a keyboard accelerator. The GtkShortcutsShortcut:accelerator
property will be used.
</parameter_description>
</parameter>
<parameter name="GTK_SHORTCUT_GESTURE_PINCH">
<parameter_description>
The shortcut is a pinch gesture. GTK provides an icon and subtitle.
</parameter_description>
</parameter>
<parameter name="GTK_SHORTCUT_GESTURE_STRETCH">
<parameter_description>
The shortcut is a stretch gesture. GTK provides an icon and subtitle.
</parameter_description>
</parameter>
<parameter name="GTK_SHORTCUT_GESTURE_ROTATE_CLOCKWISE">
<parameter_description>
The shortcut is a clockwise rotation gesture. GTK provides an icon and subtitle.
</parameter_description>
</parameter>
<parameter name="GTK_SHORTCUT_GESTURE_ROTATE_COUNTERCLOCKWISE">
<parameter_description>
The shortcut is a counterclockwise rotation gesture. GTK provides an icon and subtitle.
</parameter_description>
</parameter>
<parameter name="GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_LEFT">
<parameter_description>
The shortcut is a two-finger swipe gesture. GTK provides an icon and subtitle.
</parameter_description>
</parameter>
<parameter name="GTK_SHORTCUT_GESTURE_TWO_FINGER_SWIPE_RIGHT">
<parameter_description>
The shortcut is a two-finger swipe gesture. GTK provides an icon and subtitle.
</parameter_description>
</parameter>
<parameter name="GTK_SHORTCUT_GESTURE">
<parameter_description>
The shortcut is a gesture. The GtkShortcutsShortcut:icon property will be
used.
</parameter_description>
</parameter>
<parameter name="GTK_SHORTCUT_GESTURE_SWIPE_LEFT">
<parameter_description>
The shortcut is a swipe gesture. GTK provides an icon and subtitle.
</parameter_description>
</parameter>
<parameter name="GTK_SHORTCUT_GESTURE_SWIPE_RIGHT">
<parameter_description>
The shortcut is a swipe gesture. GTK provides an icon and subtitle.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkShortcutsGroup:accel-size-group">
<description>
The size group for the accelerator portion of shortcuts in this group.

This is used internally by GTK, and must not be modified by applications.

</description>
</property>

<property name="GtkShortcutsGroup:height">
<description>
A rough measure for the number of lines in this group.

This is used internally by GTK, and is not useful for applications.

</description>
</property>

<property name="GtkShortcutsGroup:title">
<description>
The title for this group of shortcuts.

</description>
</property>

<property name="GtkShortcutsGroup:title-size-group">
<description>
The size group for the textual portion of shortcuts in this group.

This is used internally by GTK, and must not be modified by applications.

</description>
</property>

<property name="GtkShortcutsGroup:view">
<description>
An optional view that the shortcuts in this group are relevant for.

The group will be hidden if the [property@Gtk.ShortcutsWindow:view-name]
property does not match the view of this group.

Set this to %NULL to make the group always visible.

</description>
</property>

<property name="GtkShortcutsSection:max-height">
<description>
The maximum number of lines to allow per column.

This property can be used to influence how the groups in this
section are distributed across pages and columns. The default
value of 15 should work in most cases.

</description>
</property>

<property name="GtkShortcutsSection:section-name">
<description>
A unique name to identify this section among the sections
added to the `GtkShortcutsWindow`.

Setting the [property@Gtk.ShortcutsWindow:section-name] property
to this string will make this section shown in the `GtkShortcutsWindow`.

</description>
</property>

<property name="GtkShortcutsSection:title">
<description>
The string to show in the section selector of the `GtkShortcutsWindow`
for this section.

If there is only one section, you don't need to set a title,
since the section selector will not be shown in this case.

</description>
</property>

<property name="GtkShortcutsSection:view-name">
<description>
A view name to filter the groups in this section by.

See [property@Gtk.ShortcutsGroup:view].

Applications are expected to use the
[property@Gtk.ShortcutsWindow:view-name] property
for this purpose.

</description>
</property>

<property name="GtkShortcutsShortcut:accel-size-group">
<description>
The size group for the accelerator portion of this shortcut.

This is used internally by GTK, and must not be modified by applications.

</description>
</property>

<property name="GtkShortcutsShortcut:accelerator">
<description>
The accelerator(s) represented by this object.

This property is used if [property@Gtk.ShortcutsShortcut:shortcut-type]
is set to %GTK_SHORTCUT_ACCELERATOR.

The syntax of this property is (an extension of) the syntax understood
by [func@Gtk.accelerator_parse]. Multiple accelerators can be specified
by separating them with a space, but keep in mind that the available width
is limited.

It is also possible to specify ranges of shortcuts, using `...` between
the keys. Sequences of keys can be specified using a `+` or `&amp;` between
the keys.

Examples:

- A single shortcut: `&lt;ctl&gt;&lt;alt&gt;delete`
- Two alternative shortcuts: `&lt;shift&gt;a Home`
- A range of shortcuts: `&lt;alt&gt;1...&lt;alt&gt;9`
- Several keys pressed together: `Control_L&amp;Control_R`
- A sequence of shortcuts or keys: `&lt;ctl&gt;c+&lt;ctl&gt;x`

Use &quot;+&quot; instead of &quot;&amp;&quot; when the keys may (or have to be) pressed
sequentially (e.g use &quot;t+t&quot; for 'press the t key twice').

Note that `&lt;`, `&gt;` and `&amp;` need to be escaped as `&lt;`, `&amp;gt`; and `&amp;amp`; when used
in .ui files.

</description>
</property>

<property name="GtkShortcutsShortcut:action-name">
<description>
A detailed action name.

If this is set for a shortcut of type %GTK_SHORTCUT_ACCELERATOR,
then GTK will use the accelerators that are associated with the
action via [method@Gtk.Application.set_accels_for_action], and
setting [property@Gtk.ShortcutsShortcut:accelerator] is not necessary.

</description>
</property>

<property name="GtkShortcutsShortcut:direction">
<description>
The text direction for which this shortcut is active.

If the shortcut is used regardless of the text direction,
set this property to %GTK_TEXT_DIR_NONE.

</description>
</property>

<property name="GtkShortcutsShortcut:icon">
<description>
An icon to represent the shortcut or gesture.

This property is used if [property@Gtk.ShortcutsShortcut:shortcut-type]
is set to %GTK_SHORTCUT_GESTURE.

For the other predefined gesture types, GTK provides an icon on its own.

</description>
</property>

<property name="GtkShortcutsShortcut:icon-set">
<description>
%TRUE if an icon has been set.

</description>
</property>

<property name="GtkShortcutsShortcut:shortcut-type">
<description>
The type of shortcut that is represented.

</description>
</property>

<property name="GtkShortcutsShortcut:subtitle">
<description>
The subtitle for the shortcut or gesture.

This is typically used for gestures and should be a short, one-line
text that describes the gesture itself. For the predefined gesture
types, GTK provides a subtitle on its own.

</description>
</property>

<property name="GtkShortcutsShortcut:subtitle-set">
<description>
%TRUE if a subtitle has been set.

</description>
</property>

<property name="GtkShortcutsShortcut:title">
<description>
The textual description for the shortcut or gesture represented by
this object.

This should be a short string that can fit in a single line.

</description>
</property>

<property name="GtkShortcutsShortcut:title-size-group">
<description>
The size group for the textual portion of this shortcut.

This is used internally by GTK, and must not be modified by applications.

</description>
</property>

<signal name="GtkShortcutsWindow::close">
<description>
Emitted when the user uses a keybinding to close the window.

This is a [keybinding signal](class.SignalAction.html).

The default binding for this signal is the Escape key.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<signal name="GtkShortcutsWindow::search">
<description>
Emitted when the user uses a keybinding to start a search.

This is a [keybinding signal](class.SignalAction.html).

The default binding for this signal is Control-F.

</description>
<parameters>
</parameters>
<return></return>
</signal>

<property name="GtkShortcutsWindow:section-name">
<description>
The name of the section to show.

This should be the section-name of one of the `GtkShortcutsSection`
objects that are in this shortcuts window.

</description>
</property>

<property name="GtkShortcutsWindow:view-name">
<description>
The view name by which to filter the contents.

This should correspond to the [property@Gtk.ShortcutsGroup:view]
property of some of the [class@Gtk.ShortcutsGroup] objects that
are inside this shortcuts window.

Set this to %NULL to show all groups.

</description>
</property>

<property name="GtkSignalAction:signal-name">
<description>
The name of the signal to emit.

</description>
</property>

<signal name="GtkSignalListItemFactory::bind">
<description>
Emitted when an object has been bound, for example when a
new [property@Gtk.ListItem:item] has been set on a
listitem and should be bound for use.

After this signal was emitted, the object might be shown in
a [class@Gtk.ListView] or other widget.

The [signal@Gtk.SignalListItemFactory::unbind] signal is the
opposite of this signal and can be used to undo everything done
in this signal.

</description>
<parameters>
<parameter name="self">
<parameter_description> The `GtkSignalListItemFactory`
</parameter_description>
</parameter>
<parameter name="object">
<parameter_description> The `GObject` to bind
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkSignalListItemFactory::setup">
<description>
Emitted when a new listitem has been created and needs to be setup for use.

It is the first signal emitted for every listitem.

The [signal@Gtk.SignalListItemFactory::teardown] signal is the opposite
of this signal and can be used to undo everything done in this signal.

</description>
<parameters>
<parameter name="self">
<parameter_description> The `GtkSignalListItemFactory`
</parameter_description>
</parameter>
<parameter name="object">
<parameter_description> The `GObject` to set up
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkSignalListItemFactory::teardown">
<description>
Emitted when an object is about to be destroyed.

It is the last signal ever emitted for this @object.

This signal is the opposite of the [signal@Gtk.SignalListItemFactory::setup]
signal and should be used to undo everything done in that signal.

</description>
<parameters>
<parameter name="self">
<parameter_description> The `GtkSignalListItemFactory`
</parameter_description>
</parameter>
<parameter name="object">
<parameter_description> The `GObject` to tear down
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkSignalListItemFactory::unbind">
<description>
Emitted when an object has been unbound from its item, for example when
a listitem was removed from use in a list widget
and its [property@Gtk.ListItem:item] is about to be unset.

This signal is the opposite of the [signal@Gtk.SignalListItemFactory::bind]
signal and should be used to undo everything done in that signal.

</description>
<parameters>
<parameter name="self">
<parameter_description> The `GtkSignalListItemFactory`
</parameter_description>
</parameter>
<parameter name="object">
<parameter_description> The `GObject` to unbind
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkSingleSelection:autoselect">
<description>
If the selection will always select an item.

</description>
</property>

<property name="GtkSingleSelection:can-unselect">
<description>
If unselecting the selected item is allowed.

</description>
</property>

<property name="GtkSingleSelection:item-type">
<description>
The type of items. See [method@Gio.ListModel.get_item_type].

Since: 4.8

</description>
</property>

<property name="GtkSingleSelection:model">
<description>
The model being managed.

</description>
</property>

<property name="GtkSingleSelection:n-items">
<description>
The number of items. See [method@Gio.ListModel.get_n_items].

Since: 4.8

</description>
</property>

<property name="GtkSingleSelection:selected">
<description>
Position of the selected item.

</description>
</property>

<property name="GtkSingleSelection:selected-item">
<description>
The selected item.

</description>
</property>

<property name="GtkSizeGroup:mode">
<description>
The direction in which the size group affects requested sizes.

</description>
</property>

<enum name="GtkSizeGroupMode">
<description>
The mode of the size group determines the directions in which the size
group affects the requested sizes of its component widgets.

</description>
<parameters>
<parameter name="GTK_SIZE_GROUP_NONE">
<parameter_description> group has no effect
</parameter_description>
</parameter>
<parameter name="GTK_SIZE_GROUP_HORIZONTAL">
<parameter_description> group affects horizontal requisition
</parameter_description>
</parameter>
<parameter name="GTK_SIZE_GROUP_VERTICAL">
<parameter_description> group affects vertical requisition
</parameter_description>
</parameter>
<parameter name="GTK_SIZE_GROUP_BOTH">
<parameter_description> group affects both horizontal and vertical requisition
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkSizeRequestMode">
<description>
Specifies a preference for height-for-width or
width-for-height geometry management.

</description>
<parameters>
<parameter name="GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH">
<parameter_description> Prefer height-for-width geometry management
</parameter_description>
</parameter>
<parameter name="GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT">
<parameter_description> Prefer width-for-height geometry management
</parameter_description>
</parameter>
<parameter name="GTK_SIZE_REQUEST_CONSTANT_SIZE">
<parameter_description> Don’t trade height-for-width or width-for-height
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkSliceListModel:item-type">
<description>
The type of items. See [method@Gio.ListModel.get_item_type].

Since: 4.8

</description>
</property>

<property name="GtkSliceListModel:model">
<description>
Child model to take slice from.

</description>
</property>

<property name="GtkSliceListModel:n-items">
<description>
The number of items. See [method@Gio.ListModel.get_n_items].

Since: 4.8

</description>
</property>

<property name="GtkSliceListModel:offset">
<description>
Offset of slice.

</description>
</property>

<property name="GtkSliceListModel:size">
<description>
Maximum size of slice.

</description>
</property>

<property name="GtkSortListModel:incremental">
<description>
If the model should sort items incrementally.

</description>
</property>

<property name="GtkSortListModel:item-type">
<description>
The type of items. See [method@Gio.ListModel.get_item_type].

Since: 4.8

</description>
</property>

<property name="GtkSortListModel:model">
<description>
The model being sorted.

</description>
</property>

<property name="GtkSortListModel:n-items">
<description>
The number of items. See [method@Gio.ListModel.get_n_items].

Since: 4.8

</description>
</property>

<property name="GtkSortListModel:pending">
<description>
Estimate of unsorted items remaining.

</description>
</property>

<property name="GtkSortListModel:section-sorter">
<description>
The section sorter for this model, if one is set.

Since: 4.12

</description>
</property>

<property name="GtkSortListModel:sorter">
<description>
The sorter for this model.

</description>
</property>

<enum name="GtkSortType">
<description>
Determines the direction of a sort.

</description>
<parameters>
<parameter name="GTK_SORT_ASCENDING">
<parameter_description> Sorting is in ascending order.
</parameter_description>
</parameter>
<parameter name="GTK_SORT_DESCENDING">
<parameter_description> Sorting is in descending order.
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkSorter::changed">
<description>
Emitted whenever the sorter changed.

Users of the sorter should then update the sort order
again via gtk_sorter_compare().

[class@Gtk.SortListModel] handles this signal automatically.

Depending on the @change parameter, it may be possible to update
the sort order without a full resorting. Refer to the
[enum@Gtk.SorterChange] documentation for details.

</description>
<parameters>
<parameter name="self">
<parameter_description> The `GtkSorter`
</parameter_description>
</parameter>
<parameter name="change">
<parameter_description> how the sorter changed
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GtkSorterChange">
<description>
Describes changes in a sorter in more detail and allows users
to optimize resorting.

</description>
<parameters>
<parameter name="GTK_SORTER_CHANGE_DIFFERENT">
<parameter_description> The sorter change cannot be described
by any of the other enumeration values
</parameter_description>
</parameter>
<parameter name="GTK_SORTER_CHANGE_INVERTED">
<parameter_description> The sort order was inverted. Comparisons
that returned %GTK_ORDERING_SMALLER now return %GTK_ORDERING_LARGER
and vice versa. Other comparisons return the same values as before.
</parameter_description>
</parameter>
<parameter name="GTK_SORTER_CHANGE_LESS_STRICT">
<parameter_description> The sorter is less strict: Comparisons
may now return %GTK_ORDERING_EQUAL that did not do so before.
</parameter_description>
</parameter>
<parameter name="GTK_SORTER_CHANGE_MORE_STRICT">
<parameter_description> The sorter is more strict: Comparisons
that did return %GTK_ORDERING_EQUAL may not do so anymore.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkSorterOrder">
<description>
Describes the type of order that a `GtkSorter` may produce.

</description>
<parameters>
<parameter name="GTK_SORTER_ORDER_PARTIAL">
<parameter_description> A partial order. Any `GtkOrdering` is possible.
</parameter_description>
</parameter>
<parameter name="GTK_SORTER_ORDER_NONE">
<parameter_description> No order, all elements are considered equal.
gtk_sorter_compare() will only return %GTK_ORDERING_EQUAL.
</parameter_description>
</parameter>
<parameter name="GTK_SORTER_ORDER_TOTAL">
<parameter_description> A total order. gtk_sorter_compare() will only
return %GTK_ORDERING_EQUAL if an item is compared with itself. Two
different items will never cause this value to be returned.
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkSpinButton::change-value">
<description>
Emitted when the user initiates a value change.

This is a [keybinding signal](class.SignalAction.html).

Applications should not connect to it, but may emit it with
g_signal_emit_by_name() if they need to control the cursor
programmatically.

The default bindings for this signal are Up/Down and PageUp/PageDown.

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> the object on which the signal was emitted
</parameter_description>
</parameter>
<parameter name="scroll">
<parameter_description> a `GtkScrollType` to specify the speed and amount of change
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkSpinButton::input">
<description>
Emitted to convert the users input into a double value.

The signal handler is expected to use [method@Gtk.Editable.get_text]
to retrieve the text of the spinbutton and set @new_value to the
new value.

The default conversion uses g_strtod().


</description>
<parameters>
<parameter name="spin_button">
<parameter_description> the object on which the signal was emitted
</parameter_description>
</parameter>
<parameter name="new_value">
<parameter_description> return location for the new value
</parameter_description>
</parameter>
</parameters>
<return> %TRUE for a successful conversion, %FALSE if the input
was not handled, and %GTK_INPUT_ERROR if the conversion failed.
</return>
</signal>

<signal name="GtkSpinButton::output">
<description>
Emitted to tweak the formatting of the value for display.

```c
// show leading zeros
static gboolean
on_output (GtkSpinButton *spin,
gpointer       data)
{
GtkAdjustment *adjustment;
char *text;
int value;

adjustment = gtk_spin_button_get_adjustment (spin);
value = (int)gtk_adjustment_get_value (adjustment);
text = g_strdup_printf (&quot;%02d&quot;, value);
gtk_editable_set_text (GTK_EDITABLE (spin), text):
g_free (text);

return TRUE;
}
```


</description>
<parameters>
<parameter name="spin_button">
<parameter_description> the object on which the signal was emitted
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value has been displayed
</return>
</signal>

<signal name="GtkSpinButton::value-changed">
<description>
Emitted when the value is changed.

Also see the [signal@Gtk.SpinButton::output] signal.

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> the object on which the signal was emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkSpinButton::wrapped">
<description>
Emitted right after the spinbutton wraps from its maximum
to its minimum value or vice-versa.

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> the object on which the signal was emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkSpinButton:adjustment">
<description>
The adjustment that holds the value of the spin button.

</description>
</property>

<property name="GtkSpinButton:climb-rate">
<description>
The acceleration rate when you hold down a button or key.

</description>
</property>

<property name="GtkSpinButton:digits">
<description>
The number of decimal places to display.

</description>
</property>

<property name="GtkSpinButton:numeric">
<description>
Whether non-numeric characters should be ignored.

</description>
</property>

<property name="GtkSpinButton:snap-to-ticks">
<description>
Whether erroneous values are automatically changed to the spin buttons
nearest step increment.

</description>
</property>

<property name="GtkSpinButton:update-policy">
<description>
Whether the spin button should update always, or only when the value
is acceptable.

</description>
</property>

<property name="GtkSpinButton:value">
<description>
The current value.

</description>
</property>

<property name="GtkSpinButton:wrap">
<description>
Whether a spin button should wrap upon reaching its limits.

</description>
</property>

<enum name="GtkSpinButtonUpdatePolicy">
<description>
Determines whether the spin button displays values outside the adjustment
bounds.

See [method@Gtk.SpinButton.set_update_policy].

</description>
<parameters>
<parameter name="GTK_UPDATE_ALWAYS">
<parameter_description> When refreshing your `GtkSpinButton`, the value is
always displayed
</parameter_description>
</parameter>
<parameter name="GTK_UPDATE_IF_VALID">
<parameter_description> When refreshing your `GtkSpinButton`, the value is
only displayed if it is valid within the bounds of the spin button's
adjustment
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkSpinType">
<description>
The values of the GtkSpinType enumeration are used to specify the
change to make in gtk_spin_button_spin().

</description>
<parameters>
<parameter name="GTK_SPIN_STEP_FORWARD">
<parameter_description> Increment by the adjustments step increment.
</parameter_description>
</parameter>
<parameter name="GTK_SPIN_STEP_BACKWARD">
<parameter_description> Decrement by the adjustments step increment.
</parameter_description>
</parameter>
<parameter name="GTK_SPIN_PAGE_FORWARD">
<parameter_description> Increment by the adjustments page increment.
</parameter_description>
</parameter>
<parameter name="GTK_SPIN_PAGE_BACKWARD">
<parameter_description> Decrement by the adjustments page increment.
</parameter_description>
</parameter>
<parameter name="GTK_SPIN_HOME">
<parameter_description> Go to the adjustments lower bound.
</parameter_description>
</parameter>
<parameter name="GTK_SPIN_END">
<parameter_description> Go to the adjustments upper bound.
</parameter_description>
</parameter>
<parameter name="GTK_SPIN_USER_DEFINED">
<parameter_description> Change by a specified amount.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkSpinner:spinning">
<description>
Whether the spinner is spinning

</description>
</property>

<property name="GtkStack:hhomogeneous">
<description>
%TRUE if the stack allocates the same width for all children.

</description>
</property>

<property name="GtkStack:interpolate-size">
<description>
Whether or not the size should smoothly change during the transition.

</description>
</property>

<property name="GtkStack:pages">
<description>
A selection model with the stack pages.

</description>
</property>

<property name="GtkStack:transition-duration">
<description>
The animation duration, in milliseconds.

</description>
</property>

<property name="GtkStack:transition-running">
<description>
Whether or not the transition is currently running.

</description>
</property>

<property name="GtkStack:transition-type">
<description>
The type of animation used to transition.

</description>
</property>

<property name="GtkStack:vhomogeneous">
<description>
%TRUE if the stack allocates the same height for all children.

</description>
</property>

<property name="GtkStack:visible-child">
<description>
The widget currently visible in the stack.

</description>
</property>

<property name="GtkStack:visible-child-name">
<description>
The name of the widget currently visible in the stack.

</description>
</property>

<property name="GtkStackPage:child">
<description>
The child that this page is for.

</description>
</property>

<property name="GtkStackPage:icon-name">
<description>
The icon name of the child page.

</description>
</property>

<property name="GtkStackPage:name">
<description>
The name of the child page.

</description>
</property>

<property name="GtkStackPage:needs-attention">
<description>
Whether the page requires the user attention.

This is used by the [class@Gtk.StackSwitcher] to change the
appearance of the corresponding button when a page needs
attention and it is not the current one.

</description>
</property>

<property name="GtkStackPage:title">
<description>
The title of the child page.

</description>
</property>

<property name="GtkStackPage:use-underline">
<description>
If set, an underline in the title indicates a mnemonic.

</description>
</property>

<property name="GtkStackPage:visible">
<description>
Whether this page is visible.

</description>
</property>

<property name="GtkStackSidebar:stack">
<description>
The stack.

</description>
</property>

<property name="GtkStackSwitcher:stack">
<description>
The stack.

</description>
</property>

<enum name="GtkStackTransitionType">
<description>
Possible transitions between pages in a `GtkStack` widget.

New values may be added to this enumeration over time.

</description>
<parameters>
<parameter name="GTK_STACK_TRANSITION_TYPE_NONE">
<parameter_description> No transition
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_CROSSFADE">
<parameter_description> A cross-fade
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT">
<parameter_description> Slide from left to right
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT">
<parameter_description> Slide from right to left
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_SLIDE_UP">
<parameter_description> Slide from bottom up
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_SLIDE_DOWN">
<parameter_description> Slide from top down
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT">
<parameter_description> Slide from left or right according to the children order
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN">
<parameter_description> Slide from top down or bottom up according to the order
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_OVER_UP">
<parameter_description> Cover the old page by sliding up
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_OVER_DOWN">
<parameter_description> Cover the old page by sliding down
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_OVER_LEFT">
<parameter_description> Cover the old page by sliding to the left
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_OVER_RIGHT">
<parameter_description> Cover the old page by sliding to the right
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_UNDER_UP">
<parameter_description> Uncover the new page by sliding up
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_UNDER_DOWN">
<parameter_description> Uncover the new page by sliding down
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_UNDER_LEFT">
<parameter_description> Uncover the new page by sliding to the left
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_UNDER_RIGHT">
<parameter_description> Uncover the new page by sliding to the right
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_OVER_UP_DOWN">
<parameter_description> Cover the old page sliding up or uncover the new page sliding down, according to order
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_OVER_DOWN_UP">
<parameter_description> Cover the old page sliding down or uncover the new page sliding up, according to order
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_OVER_LEFT_RIGHT">
<parameter_description> Cover the old page sliding left or uncover the new page sliding right, according to order
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_OVER_RIGHT_LEFT">
<parameter_description> Cover the old page sliding right or uncover the new page sliding left, according to order
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_ROTATE_LEFT">
<parameter_description> Pretend the pages are sides of a cube and rotate that cube to the left
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_ROTATE_RIGHT">
<parameter_description> Pretend the pages are sides of a cube and rotate that cube to the right
</parameter_description>
</parameter>
<parameter name="GTK_STACK_TRANSITION_TYPE_ROTATE_LEFT_RIGHT">
<parameter_description> Pretend the pages are sides of a cube and rotate that cube to the left or right according to the children order
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkStateFlags">
<description>
Describes a widget state.

Widget states are used to match the widget against CSS pseudo-classes.
Note that GTK extends the regular CSS classes and sometimes uses
different names.

</description>
<parameters>
<parameter name="GTK_STATE_FLAG_NORMAL">
<parameter_description> State during normal operation
</parameter_description>
</parameter>
<parameter name="GTK_STATE_FLAG_ACTIVE">
<parameter_description> Widget is active
</parameter_description>
</parameter>
<parameter name="GTK_STATE_FLAG_PRELIGHT">
<parameter_description> Widget has a mouse pointer over it
</parameter_description>
</parameter>
<parameter name="GTK_STATE_FLAG_SELECTED">
<parameter_description> Widget is selected
</parameter_description>
</parameter>
<parameter name="GTK_STATE_FLAG_INSENSITIVE">
<parameter_description> Widget is insensitive
</parameter_description>
</parameter>
<parameter name="GTK_STATE_FLAG_INCONSISTENT">
<parameter_description> Widget is inconsistent
</parameter_description>
</parameter>
<parameter name="GTK_STATE_FLAG_FOCUSED">
<parameter_description> Widget has the keyboard focus
</parameter_description>
</parameter>
<parameter name="GTK_STATE_FLAG_BACKDROP">
<parameter_description> Widget is in a background toplevel window
</parameter_description>
</parameter>
<parameter name="GTK_STATE_FLAG_DIR_LTR">
<parameter_description> Widget is in left-to-right text direction
</parameter_description>
</parameter>
<parameter name="GTK_STATE_FLAG_DIR_RTL">
<parameter_description> Widget is in right-to-left text direction
</parameter_description>
</parameter>
<parameter name="GTK_STATE_FLAG_LINK">
<parameter_description> Widget is a link
</parameter_description>
</parameter>
<parameter name="GTK_STATE_FLAG_VISITED">
<parameter_description> The location the widget points to has already been visited
</parameter_description>
</parameter>
<parameter name="GTK_STATE_FLAG_CHECKED">
<parameter_description> Widget is checked
</parameter_description>
</parameter>
<parameter name="GTK_STATE_FLAG_DROP_ACTIVE">
<parameter_description> Widget is highlighted as a drop target for DND
</parameter_description>
</parameter>
<parameter name="GTK_STATE_FLAG_FOCUS_VISIBLE">
<parameter_description> Widget has the visible focus
</parameter_description>
</parameter>
<parameter name="GTK_STATE_FLAG_FOCUS_WITHIN">
<parameter_description> Widget contains the keyboard focus
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkStatusbar::text-popped">
<description>
Emitted whenever a new message is popped off a statusbar's stack.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="statusbar">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="context_id">
<parameter_description> the context id of the relevant message/statusbar
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> the message that was just popped
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkStatusbar::text-pushed">
<description>
Emitted whenever a new message gets pushed onto a statusbar's stack.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="statusbar">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="context_id">
<parameter_description> the context id of the relevant message/statusbar
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> the message that was pushed
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkStringFilter:expression">
<description>
The expression to evaluate on item to get a string to compare with.

</description>
</property>

<property name="GtkStringFilter:ignore-case">
<description>
If matching is case sensitive.

</description>
</property>

<property name="GtkStringFilter:match-mode">
<description>
If exact matches are necessary or if substrings are allowed.

</description>
</property>

<property name="GtkStringFilter:search">
<description>
The search term.

</description>
</property>

<enum name="GtkStringFilterMatchMode">
<description>
Specifies how search strings are matched inside text.

</description>
<parameters>
<parameter name="GTK_STRING_FILTER_MATCH_MODE_EXACT">
<parameter_description> The search string and
text must match exactly.
</parameter_description>
</parameter>
<parameter name="GTK_STRING_FILTER_MATCH_MODE_SUBSTRING">
<parameter_description> The search string
must be contained as a substring inside the text.
</parameter_description>
</parameter>
<parameter name="GTK_STRING_FILTER_MATCH_MODE_PREFIX">
<parameter_description> The text must begin
with the search string.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkStringList:strings">
<description>
Since: 4.10

</description>
</property>

<property name="GtkStringObject:string">
<description>
The string.

</description>
</property>

<property name="GtkStringSorter:collation">
<description>
The collation method to use for sorting.

The `GTK_COLLATION_NONE` value is useful when the expression already
returns collation keys, or strings that need to be compared byte-by-byte.

The default value, `GTK_COLLATION_UNICODE`, compares strings according
to the [Unicode collation algorithm](https://www.unicode.org/reports/tr10/).

Since: 4.10

</description>
</property>

<property name="GtkStringSorter:expression">
<description>
The expression to evaluate on item to get a string to compare with.

</description>
</property>

<property name="GtkStringSorter:ignore-case">
<description>
If sorting is case sensitive.

</description>
</property>

<enum name="GtkStyleContextPrintFlags">
<description>
Flags that modify the behavior of gtk_style_context_to_string().

New values may be added to this enumeration.

</description>
<parameters>
<parameter name="GTK_STYLE_CONTEXT_PRINT_NONE">
<parameter_description> Default value.
</parameter_description>
</parameter>
<parameter name="GTK_STYLE_CONTEXT_PRINT_RECURSE">
<parameter_description> Print the entire tree of
CSS nodes starting at the style context's node
</parameter_description>
</parameter>
<parameter name="GTK_STYLE_CONTEXT_PRINT_SHOW_STYLE">
<parameter_description> Show the values of the
CSS properties for each node
</parameter_description>
</parameter>
<parameter name="GTK_STYLE_CONTEXT_PRINT_SHOW_CHANGE">
<parameter_description> Show information about
what changes affect the styles
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkSwitch::activate">
<description>
Emitted to animate the switch.

Applications should never connect to this signal,
but use the [property@Gtk.Switch:active] property.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkSwitch::state-set">
<description>
Emitted to change the underlying state.

The ::state-set signal is emitted when the user changes the switch
position. The default handler keeps the state in sync with the
[property@Gtk.Switch:active] property.

To implement delayed state change, applications can connect to this
signal, initiate the change of the underlying state, and call
[method@Gtk.Switch.set_state] when the underlying state change is
complete. The signal handler should return %TRUE to prevent the
default handler from running.

Visually, the underlying state is represented by the trough color of
the switch, while the [property@Gtk.Switch:active] property is
represented by the position of the switch.


</description>
<parameters>
<parameter name="widget">
<parameter_description> the object on which the signal was emitted
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> the new state of the switch
</parameter_description>
</parameter>
</parameters>
<return> %TRUE to stop the signal emission
</return>
</signal>

<property name="GtkSwitch:active">
<description>
Whether the `GtkSwitch` widget is in its on or off state.

</description>
</property>

<property name="GtkSwitch:state">
<description>
The backend state that is controlled by the switch.

See [signal@Gtk.Switch::state-set] for details.

</description>
</property>

<enum name="GtkSymbolicColor">
<description>
The indexes of colors passed to symbolic color rendering, such as
[vfunc@Gtk.SymbolicPaintable.snapshot_symbolic].

More values may be added over time.

Since: 4.6

</description>
<parameters>
<parameter name="GTK_SYMBOLIC_COLOR_FOREGROUND">
<parameter_description> The default foreground color
</parameter_description>
</parameter>
<parameter name="GTK_SYMBOLIC_COLOR_ERROR">
<parameter_description> Indication color for errors
</parameter_description>
</parameter>
<parameter name="GTK_SYMBOLIC_COLOR_WARNING">
<parameter_description> Indication color for warnings
</parameter_description>
</parameter>
<parameter name="GTK_SYMBOLIC_COLOR_SUCCESS">
<parameter_description> Indication color for success
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkSystemSetting">
<description>
Values that can be passed to the [vfunc@Gtk.Widget.system_setting_changed]
vfunc.

The values indicate which system setting has changed.
Widgets may need to drop caches, or react otherwise.

Most of the values correspond to [class@Settings] properties.

More values may be added over time.

</description>
<parameters>
<parameter name="GTK_SYSTEM_SETTING_DPI">
<parameter_description> the [property@Gtk.Settings:gtk-xft-dpi] setting has changed
</parameter_description>
</parameter>
<parameter name="GTK_SYSTEM_SETTING_FONT_NAME">
<parameter_description> The [property@Gtk.Settings:gtk-font-name] setting has changed
</parameter_description>
</parameter>
<parameter name="GTK_SYSTEM_SETTING_FONT_CONFIG">
<parameter_description> The font configuration has changed in a way that
requires text to be redrawn. This can be any of the
[property@Gtk.Settings:gtk-xft-antialias],
[property@Gtk.Settings:gtk-xft-hinting],
[property@Gtk.Settings:gtk-xft-hintstyle],
[property@Gtk.Settings:gtk-xft-rgba] or
[property@Gtk.Settings:gtk-fontconfig-timestamp] settings
</parameter_description>
</parameter>
<parameter name="GTK_SYSTEM_SETTING_DISPLAY">
<parameter_description> The display has changed
</parameter_description>
</parameter>
<parameter name="GTK_SYSTEM_SETTING_ICON_THEME">
<parameter_description> The icon theme has changed in a way that requires
icons to be looked up again
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkText::activate">
<description>
Emitted when the user hits the &lt;kbd&gt;Enter&lt;/kbd&gt; key.

The default bindings for this signal are all forms
of the &lt;kbd&gt;Enter&lt;/kbd&gt; key.

</description>
<parameters>
<parameter name="self">
<parameter_description> The widget on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkText::backspace">
<description>
Emitted when the user asks for it.

This is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal are
&lt;kbd&gt;Backspace&lt;/kbd&gt; and &lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;Backspace&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkText::copy-clipboard">
<description>
Emitted to copy the selection to the clipboard.

This is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal are
&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;c&lt;/kbd&gt; and
&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Insert&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkText::cut-clipboard">
<description>
Emitted to cut the selection to the clipboard.

This is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal are
&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;x&lt;/kbd&gt; and
&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;Delete&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkText::delete-from-cursor">
<description>
Emitted when the user initiates a text deletion.

This is a [keybinding signal](class.SignalAction.html).

If the @type is %GTK_DELETE_CHARS, GTK deletes the selection
if there is one, otherwise it deletes the requested number
of characters.

The default bindings for this signal are &lt;kbd&gt;Delete&lt;/kbd&gt;
for deleting a character and &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Delete&lt;/kbd&gt;
for deleting a word.

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the granularity of the deletion, as a `GtkDeleteType`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> the number of @type units to delete
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkText::insert-at-cursor">
<description>
Emitted when the user initiates the insertion of a
fixed string at the cursor.

This is a [keybinding signal](class.SignalAction.html).

This signal has no default bindings.

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> the string to insert
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkText::insert-emoji">
<description>
Emitted to present the Emoji chooser for the widget.

This is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal are
&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;.&lt;/kbd&gt; and
&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;;&lt;/kbd&gt;

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkText::move-cursor">
<description>
Emitted when the user initiates a cursor movement.

If the cursor is not visible in @self, this signal causes
the viewport to be moved instead.

This is a [keybinding signal](class.SignalAction.html).

Applications should not connect to it, but may emit it with
g_signal_emit_by_name() if they need to control the cursor
programmatically.

The default bindings for this signal come in two variants,
the variant with the &lt;kbd&gt;Shift&lt;/kbd&gt; modifier extends the
selection, the variant without it does not.
There are too many key combinations to list them all here.

- &lt;kbd&gt;←&lt;/kbd&gt;, &lt;kbd&gt;→&lt;/kbd&gt;, &lt;kbd&gt;↑&lt;/kbd&gt;, &lt;kbd&gt;↓&lt;/kbd&gt;
move by individual characters/lines
- &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;←&lt;/kbd&gt;, etc. move by words/paragraphs
- &lt;kbd&gt;Home&lt;/kbd&gt; and &lt;kbd&gt;End&lt;/kbd&gt; move to the ends of the buffer

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="step">
<parameter_description> the granularity of the move, as a `GtkMovementStep`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> the number of @step units to move
</parameter_description>
</parameter>
<parameter name="extend">
<parameter_description> %TRUE if the move should extend the selection
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkText::paste-clipboard">
<description>
Emitted to paste the contents of the clipboard.

This is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal are
&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;v&lt;/kbd&gt; and &lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;Insert&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkText::preedit-changed">
<description>
Emitted when the preedit text changes.

If an input method is used, the typed text will not immediately
be committed to the buffer. So if you are interested in the text,
connect to this signal.

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="preedit">
<parameter_description> the current preedit string
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkText::toggle-overwrite">
<description>
Emitted to toggle the overwrite mode of the `GtkText`.

This is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal is &lt;kbd&gt;Insert&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="self">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkText:activates-default">
<description>
Whether to activate the default widget when Enter is pressed.

</description>
</property>

<property name="GtkText:attributes">
<description>
A list of Pango attributes to apply to the text of the `GtkText`.

This is mainly useful to change the size or weight of the text.

The `PangoAttribute`'s @start_index and @end_index must refer to the
`GtkEntryBuffer` text, i.e. without the preedit string.

</description>
</property>

<property name="GtkText:buffer">
<description>
The `GtkEntryBuffer` object which stores the text.

</description>
</property>

<property name="GtkText:enable-emoji-completion">
<description>
Whether to suggest Emoji replacements.

</description>
</property>

<property name="GtkText:extra-menu">
<description>
A menu model whose contents will be appended to
the context menu.

</description>
</property>

<property name="GtkText:im-module">
<description>
Which IM (input method) module should be used for this self.

See [class@Gtk.IMMulticontext].

Setting this to a non-%NULL value overrides the system-wide
IM module setting. See the [property@Gtk.Settings:gtk-im-module]
property.

</description>
</property>

<property name="GtkText:input-hints">
<description>
Additional hints that allow input methods to fine-tune
their behaviour.

</description>
</property>

<property name="GtkText:input-purpose">
<description>
The purpose of this text field.

This property can be used by on-screen keyboards and other input
methods to adjust their behaviour.

Note that setting the purpose to %GTK_INPUT_PURPOSE_PASSWORD or
%GTK_INPUT_PURPOSE_PIN is independent from setting
[property@Gtk.Text:visibility].

</description>
</property>

<property name="GtkText:invisible-char">
<description>
The character to used when masking contents (in “password mode”).

</description>
</property>

<property name="GtkText:invisible-char-set">
<description>
Whether the invisible char has been set for the `GtkText`.

</description>
</property>

<property name="GtkText:max-length">
<description>
Maximum number of characters that are allowed.

Zero indicates no limit.

</description>
</property>

<property name="GtkText:overwrite-mode">
<description>
If text is overwritten when typing in the `GtkText`.

</description>
</property>

<property name="GtkText:placeholder-text">
<description>
The text that will be displayed in the `GtkText` when it is empty
and unfocused.

</description>
</property>

<property name="GtkText:propagate-text-width">
<description>
Whether the widget should grow and shrink with the content.

</description>
</property>

<property name="GtkText:scroll-offset">
<description>
Number of pixels scrolled of the screen to the left.

</description>
</property>

<property name="GtkText:tabs">
<description>
A list of tabstops to apply to the text of the `GtkText`.

</description>
</property>

<property name="GtkText:truncate-multiline">
<description>
When %TRUE, pasted multi-line text is truncated to the first line.

</description>
</property>

<property name="GtkText:visibility">
<description>
If %FALSE, the text is masked with the “invisible char”.

</description>
</property>

<signal name="GtkTextBuffer::apply-tag">
<description>
Emitted to apply a tag to a range of text in a `GtkTextBuffer`.

Applying actually occurs in the default handler.

Note that if your handler runs before the default handler
it must not invalidate the @start and @end iters (or has to
revalidate them).

See also:
[method@Gtk.TextBuffer.apply_tag],
[method@Gtk.TextBuffer.insert_with_tags],
[method@Gtk.TextBuffer.insert_range].

</description>
<parameters>
<parameter name="textbuffer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> the applied tag
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start of the range the tag is applied to
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> the end of the range the tag is applied to
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextBuffer::begin-user-action">
<description>
Emitted at the beginning of a single user-visible
operation on a `GtkTextBuffer`.

See also:
[method@Gtk.TextBuffer.begin_user_action],
[method@Gtk.TextBuffer.insert_interactive],
[method@Gtk.TextBuffer.insert_range_interactive],
[method@Gtk.TextBuffer.delete_interactive],
[method@Gtk.TextBuffer.backspace],
[method@Gtk.TextBuffer.delete_selection].

</description>
<parameters>
<parameter name="textbuffer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextBuffer::changed">
<description>
Emitted when the content of a `GtkTextBuffer` has changed.

</description>
<parameters>
<parameter name="textbuffer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextBuffer::delete-range">
<description>
Emitted to delete a range from a `GtkTextBuffer`.

Note that if your handler runs before the default handler
it must not invalidate the @start and @end iters (or has
to revalidate them). The default signal handler revalidates
the @start and @end iters to both point to the location
where text was deleted. Handlers which run after the default
handler (see g_signal_connect_after()) do not have access to
the deleted text.

See also: [method@Gtk.TextBuffer.delete].

</description>
<parameters>
<parameter name="textbuffer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start of the range to be deleted
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> the end of the range to be deleted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextBuffer::end-user-action">
<description>
Emitted at the end of a single user-visible
operation on the `GtkTextBuffer`.

See also:
[method@Gtk.TextBuffer.end_user_action],
[method@Gtk.TextBuffer.insert_interactive],
[method@Gtk.TextBuffer.insert_range_interactive],
[method@Gtk.TextBuffer.delete_interactive],
[method@Gtk.TextBuffer.backspace],
[method@Gtk.TextBuffer.delete_selection],
[method@Gtk.TextBuffer.backspace].

</description>
<parameters>
<parameter name="textbuffer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextBuffer::insert-child-anchor">
<description>
Emitted to insert a `GtkTextChildAnchor` in a `GtkTextBuffer`.

Insertion actually occurs in the default handler.

Note that if your handler runs before the default handler
it must not invalidate the @location iter (or has to
revalidate it). The default signal handler revalidates
it to be placed after the inserted @anchor.

See also: [method@Gtk.TextBuffer.insert_child_anchor].

</description>
<parameters>
<parameter name="textbuffer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="location">
<parameter_description> position to insert @anchor in @textbuffer
</parameter_description>
</parameter>
<parameter name="anchor">
<parameter_description> the `GtkTextChildAnchor` to be inserted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextBuffer::insert-paintable">
<description>
Emitted to insert a `GdkPaintable` in a `GtkTextBuffer`.

Insertion actually occurs in the default handler.

Note that if your handler runs before the default handler
it must not invalidate the @location iter (or has to
revalidate it). The default signal handler revalidates
it to be placed after the inserted @paintable.

See also: [method@Gtk.TextBuffer.insert_paintable].

</description>
<parameters>
<parameter name="textbuffer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="location">
<parameter_description> position to insert @paintable in @textbuffer
</parameter_description>
</parameter>
<parameter name="paintable">
<parameter_description> the `GdkPaintable` to be inserted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextBuffer::insert-text">
<description>
Emitted to insert text in a `GtkTextBuffer`.

Insertion actually occurs in the default handler.

Note that if your handler runs before the default handler
it must not invalidate the @location iter (or has to
revalidate it). The default signal handler revalidates
it to point to the end of the inserted text.

See also: [method@Gtk.TextBuffer.insert],
[method@Gtk.TextBuffer.insert_range].

</description>
<parameters>
<parameter name="textbuffer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="location">
<parameter_description> position to insert @text in @textbuffer
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> the UTF-8 text to be inserted
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> length of the inserted text in bytes
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextBuffer::mark-deleted">
<description>
Emitted as notification after a `GtkTextMark` is deleted.

See also: [method@Gtk.TextBuffer.delete_mark].

</description>
<parameters>
<parameter name="textbuffer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="mark">
<parameter_description> The mark that was deleted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextBuffer::mark-set">
<description>
Emitted as notification after a `GtkTextMark` is set.

See also:
[method@Gtk.TextBuffer.create_mark],
[method@Gtk.TextBuffer.move_mark].

</description>
<parameters>
<parameter name="textbuffer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="location">
<parameter_description> The location of @mark in @textbuffer
</parameter_description>
</parameter>
<parameter name="mark">
<parameter_description> The mark that is set
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextBuffer::modified-changed">
<description>
Emitted when the modified bit of a `GtkTextBuffer` flips.

See also: [method@Gtk.TextBuffer.set_modified].

</description>
<parameters>
<parameter name="textbuffer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextBuffer::paste-done">
<description>
Emitted after paste operation has been completed.

This is useful to properly scroll the view to the end
of the pasted text. See [method@Gtk.TextBuffer.paste_clipboard]
for more details.

</description>
<parameters>
<parameter name="textbuffer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="clipboard">
<parameter_description> the `GdkClipboard` pasted from
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextBuffer::redo">
<description>
Emitted when a request has been made to redo the
previously undone operation.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextBuffer::remove-tag">
<description>
Emitted to remove all occurrences of @tag from a range
of text in a `GtkTextBuffer`.

Removal actually occurs in the default handler.

Note that if your handler runs before the default handler
it must not invalidate the @start and @end iters (or has
to revalidate them).

See also: [method@Gtk.TextBuffer.remove_tag].

</description>
<parameters>
<parameter name="textbuffer">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> the tag to be removed
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start of the range the tag is removed from
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> the end of the range the tag is removed from
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextBuffer::undo">
<description>
Emitted when a request has been made to undo the
previous operation or set of operations that have
been grouped together.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkTextBuffer:can-redo">
<description>
Denotes that the buffer can reapply the last undone action.

</description>
</property>

<property name="GtkTextBuffer:can-undo">
<description>
Denotes that the buffer can undo the last applied action.

</description>
</property>

<property name="GtkTextBuffer:cursor-position">
<description>
The position of the insert mark.

This is an offset from the beginning of the buffer.
It is useful for getting notified when the cursor moves.

</description>
</property>

<property name="GtkTextBuffer:enable-undo">
<description>
Denotes if support for undoing and redoing changes to the buffer is allowed.

</description>
</property>

<property name="GtkTextBuffer:has-selection">
<description>
Whether the buffer has some text currently selected.

</description>
</property>

<property name="GtkTextBuffer:tag-table">
<description>
The GtkTextTagTable for the buffer.

</description>
</property>

<property name="GtkTextBuffer:text">
<description>
The text content of the buffer.

Without child widgets and images,
see [method@Gtk.TextBuffer.get_text] for more information.

</description>
</property>

<enum name="GtkTextDirection">
<description>
Reading directions for text.

</description>
<parameters>
<parameter name="GTK_TEXT_DIR_NONE">
<parameter_description> No direction.
</parameter_description>
</parameter>
<parameter name="GTK_TEXT_DIR_LTR">
<parameter_description> Left to right text direction.
</parameter_description>
</parameter>
<parameter name="GTK_TEXT_DIR_RTL">
<parameter_description> Right to left text direction.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkTextExtendSelection">
<description>
Granularity types that extend the text selection. Use the
`GtkTextView::extend-selection` signal to customize the selection.

</description>
<parameters>
<parameter name="GTK_TEXT_EXTEND_SELECTION_WORD">
<parameter_description> Selects the current word. It is triggered by
a double-click for example.
</parameter_description>
</parameter>
<parameter name="GTK_TEXT_EXTEND_SELECTION_LINE">
<parameter_description> Selects the current line. It is triggered by
a triple-click for example.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkTextMark:left-gravity">
<description>
Whether the mark has left gravity.

When text is inserted at the mark’s current location, if the mark
has left gravity it will be moved to the left of the newly-inserted
text, otherwise to the right.

</description>
</property>

<property name="GtkTextMark:name">
<description>
The name of the mark or %NULL if the mark is anonymous.

</description>
</property>

<enum name="GtkTextSearchFlags">
<description>
Flags affecting how a search is done.

If neither %GTK_TEXT_SEARCH_VISIBLE_ONLY nor %GTK_TEXT_SEARCH_TEXT_ONLY are
enabled, the match must be exact; the special 0xFFFC character will match
embedded paintables or child widgets.

</description>
<parameters>
<parameter name="GTK_TEXT_SEARCH_VISIBLE_ONLY">
<parameter_description> Search only visible data. A search match may
have invisible text interspersed.
</parameter_description>
</parameter>
<parameter name="GTK_TEXT_SEARCH_TEXT_ONLY">
<parameter_description> Search only text. A match may have paintables or
child widgets mixed inside the matched range.
</parameter_description>
</parameter>
<parameter name="GTK_TEXT_SEARCH_CASE_INSENSITIVE">
<parameter_description> The text will be matched regardless of
what case it is in.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkTextTag:accumulative-margin">
<description>
Whether the margins accumulate or override each other.

When set to %TRUE the margins of this tag are added to the margins
of any other non-accumulative margins present. When set to %FALSE
the margins override one another (the default).

</description>
</property>

<property name="GtkTextTag:allow-breaks">
<description>
Whether breaks are allowed.

</description>
</property>

<property name="GtkTextTag:background">
<description>
Background color as a string.

</description>
</property>

<property name="GtkTextTag:background-full-height">
<description>
Whether the background color fills the entire line height
or only the height of the tagged characters.

</description>
</property>

<property name="GtkTextTag:background-rgba">
<description>
Background color as a `GdkRGBA`.

</description>
</property>

<property name="GtkTextTag:direction">
<description>
Text direction, e.g. right-to-left or left-to-right.

</description>
</property>

<property name="GtkTextTag:editable">
<description>
Whether the text can be modified by the user.

</description>
</property>

<property name="GtkTextTag:fallback">
<description>
Whether font fallback is enabled.

When set to %TRUE, other fonts will be substituted
where the current font is missing glyphs.

</description>
</property>

<property name="GtkTextTag:family">
<description>
Name of the font family, e.g. Sans, Helvetica, Times, Monospace.

</description>
</property>

<property name="GtkTextTag:font">
<description>
Font description as string, e.g. \&quot;Sans Italic 12\&quot;.

Note that the initial value of this property depends on
the internals of `PangoFontDescription`.

</description>
</property>

<property name="GtkTextTag:font-desc">
<description>
Font description as a `PangoFontDescription`.

</description>
</property>

<property name="GtkTextTag:font-features">
<description>
OpenType font features, as a string.

</description>
</property>

<property name="GtkTextTag:foreground">
<description>
Foreground color as a string.

</description>
</property>

<property name="GtkTextTag:foreground-rgba">
<description>
Foreground color as a `GdkRGBA`.

</description>
</property>

<property name="GtkTextTag:indent">
<description>
Amount to indent the paragraph, in pixels. 

A negative value of indent will produce a hanging indentation.
That is, the first line will have the full width, and subsequent
lines will be indented by the absolute value of indent.


</description>
</property>

<property name="GtkTextTag:insert-hyphens">
<description>
Whether to insert hyphens at breaks.

</description>
</property>

<property name="GtkTextTag:invisible">
<description>
Whether this text is hidden.

Note that there may still be problems with the support for invisible
text, in particular when navigating programmatically inside a buffer
containing invisible segments.

</description>
</property>

<property name="GtkTextTag:justification">
<description>
Left, right, or center justification.

</description>
</property>

<property name="GtkTextTag:language">
<description>
The language this text is in, as an ISO code.

Pango can use this as a hint when rendering the text.
If not set, an appropriate default will be used.

Note that the initial value of this property depends
on the current locale, see also [func@Gtk.get_default_language].

</description>
</property>

<property name="GtkTextTag:left-margin">
<description>
Width of the left margin in pixels.

</description>
</property>

<property name="GtkTextTag:letter-spacing">
<description>
Extra spacing between graphemes, in Pango units.

</description>
</property>

<property name="GtkTextTag:line-height">
<description>
Factor to scale line height by.

Since: 4.6

</description>
</property>

<property name="GtkTextTag:name">
<description>
The name used to refer to the tag.

%NULL for anonymous tags.

</description>
</property>

<property name="GtkTextTag:overline">
<description>
Style of overline for this text.

</description>
</property>

<property name="GtkTextTag:overline-rgba">
<description>
This property modifies the color of overlines.

If not set, overlines will use the foreground color.

</description>
</property>

<property name="GtkTextTag:paragraph-background">
<description>
The paragraph background color as a string.

</description>
</property>

<property name="GtkTextTag:paragraph-background-rgba">
<description>
The paragraph background color as a `GdkRGBA`.

</description>
</property>

<property name="GtkTextTag:pixels-above-lines">
<description>
Pixels of blank space above paragraphs.

</description>
</property>

<property name="GtkTextTag:pixels-below-lines">
<description>
Pixels of blank space below paragraphs.

</description>
</property>

<property name="GtkTextTag:pixels-inside-wrap">
<description>
Pixels of blank space between wrapped lines in a paragraph.

</description>
</property>

<property name="GtkTextTag:right-margin">
<description>
Width of the right margin, in pixels.

</description>
</property>

<property name="GtkTextTag:rise">
<description>
Offset of text above the baseline, in Pango units.

Negative values go below the baseline.

</description>
</property>

<property name="GtkTextTag:scale">
<description>
Font size as a scale factor relative to the default font size.

This properly adapts to theme changes, etc. so is recommended.
Pango predefines some scales such as %PANGO_SCALE_X_LARGE.

</description>
</property>

<property name="GtkTextTag:sentence">
<description>
Whether this tag represents a single sentence.

This affects cursor movement.

Since: 4.6

</description>
</property>

<property name="GtkTextTag:show-spaces">
<description>
How to render invisible characters.

</description>
</property>

<property name="GtkTextTag:size">
<description>
Font size in Pango units.

</description>
</property>

<property name="GtkTextTag:size-points">
<description>
Font size in points.

</description>
</property>

<property name="GtkTextTag:stretch">
<description>
Font stretch as a `PangoStretch`, e.g. %PANGO_STRETCH_CONDENSED.

</description>
</property>

<property name="GtkTextTag:strikethrough">
<description>
Whether to strike through the text.

</description>
</property>

<property name="GtkTextTag:strikethrough-rgba">
<description>
This property modifies the color of strikeouts.

If not set, strikeouts will use the foreground color.

</description>
</property>

<property name="GtkTextTag:strikethrough-rgba-set">
<description>
If the `strikethrough-rgba` property has been set.

</description>
</property>

<property name="GtkTextTag:style">
<description>
Font style as a `PangoStyle`, e.g. %PANGO_STYLE_ITALIC.

</description>
</property>

<property name="GtkTextTag:tabs">
<description>
Custom tabs for this text.

</description>
</property>

<property name="GtkTextTag:text-transform">
<description>
How to transform the text for display.

Since: 4.6

</description>
</property>

<property name="GtkTextTag:underline">
<description>
Style of underline for this text.

</description>
</property>

<property name="GtkTextTag:underline-rgba">
<description>
This property modifies the color of underlines.

If not set, underlines will use the foreground color.

If [property@Gtk.TextTag:underline] is set to %PANGO_UNDERLINE_ERROR,
an alternate color may be applied instead of the foreground. Setting
this property will always override those defaults.

</description>
</property>

<property name="GtkTextTag:underline-rgba-set">
<description>
If the `underline-rgba` property has been set.

</description>
</property>

<property name="GtkTextTag:variant">
<description>
Font variant as a `PangoVariant`, e.g. %PANGO_VARIANT_SMALL_CAPS.

</description>
</property>

<property name="GtkTextTag:weight">
<description>
Font weight as an integer.

</description>
</property>

<property name="GtkTextTag:word">
<description>
Whether this tag represents a single word.

This affects line breaks and cursor movement.

Since: 4.6

</description>
</property>

<property name="GtkTextTag:wrap-mode">
<description>
Whether to wrap lines never, at word boundaries, or
at character boundaries.

</description>
</property>

<signal name="GtkTextTagTable::tag-added">
<description>
Emitted every time a new tag is added in the `GtkTextTagTable`.

</description>
<parameters>
<parameter name="texttagtable">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> the added tag.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextTagTable::tag-changed">
<description>
Emitted every time a tag in the `GtkTextTagTable` changes.

</description>
<parameters>
<parameter name="texttagtable">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> the changed tag.
</parameter_description>
</parameter>
<parameter name="size_changed">
<parameter_description> whether the change affects the `GtkTextView` layout.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextTagTable::tag-removed">
<description>
Emitted every time a tag is removed from the `GtkTextTagTable`.

The @tag is still valid by the time the signal is emitted, but
it is not associated with a tag table any more.

</description>
<parameters>
<parameter name="texttagtable">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> the removed tag.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextView::backspace">
<description>
Gets emitted when the user asks for it.

The ::backspace signal is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal are
&lt;kbd&gt;Backspace&lt;/kbd&gt; and &lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;Backspace&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextView::copy-clipboard">
<description>
Gets emitted to copy the selection to the clipboard.

The ::copy-clipboard signal is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal are
&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;c&lt;/kbd&gt; and
&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Insert&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextView::cut-clipboard">
<description>
Gets emitted to cut the selection to the clipboard.

The ::cut-clipboard signal is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal are
&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;x&lt;/kbd&gt; and
&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;Delete&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextView::delete-from-cursor">
<description>
Gets emitted when the user initiates a text deletion.

The ::delete-from-cursor signal is a [keybinding signal](class.SignalAction.html).

If the @type is %GTK_DELETE_CHARS, GTK deletes the selection
if there is one, otherwise it deletes the requested number
of characters.

The default bindings for this signal are &lt;kbd&gt;Delete&lt;/kbd&gt; for
deleting a character, &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Delete&lt;/kbd&gt; for
deleting a word and &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Backspace&lt;/kbd&gt; for
deleting a word backwards.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the granularity of the deletion, as a `GtkDeleteType`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> the number of @type units to delete
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextView::extend-selection">
<description>
Emitted when the selection needs to be extended at @location.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="granularity">
<parameter_description> the granularity type
</parameter_description>
</parameter>
<parameter name="location">
<parameter_description> the location where to extend the selection
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> where the selection should start
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> where the selection should end
</parameter_description>
</parameter>
</parameters>
<return> %GDK_EVENT_STOP to stop other handlers from being invoked for the
event. %GDK_EVENT_PROPAGATE to propagate the event further.
</return>
</signal>

<signal name="GtkTextView::insert-at-cursor">
<description>
Gets emitted when the user initiates the insertion of a
fixed string at the cursor.

The ::insert-at-cursor signal is a [keybinding signal](class.SignalAction.html).

This signal has no default bindings.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> the string to insert
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextView::insert-emoji">
<description>
Gets emitted to present the Emoji chooser for the @text_view.

The ::insert-emoji signal is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal are
&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;.&lt;/kbd&gt; and
&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;;&lt;/kbd&gt;

</description>
<parameters>
<parameter name="text_view">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextView::move-cursor">
<description>
Gets emitted when the user initiates a cursor movement.

The ::move-cursor signal is a [keybinding signal](class.SignalAction.html).
If the cursor is not visible in @text_view, this signal causes
the viewport to be moved instead.

Applications should not connect to it, but may emit it with
g_signal_emit_by_name() if they need to control the cursor
programmatically.


The default bindings for this signal come in two variants,
the variant with the &lt;kbd&gt;Shift&lt;/kbd&gt; modifier extends the
selection, the variant without it does not.
There are too many key combinations to list them all here.

- &lt;kbd&gt;←&lt;/kbd&gt;, &lt;kbd&gt;→&lt;/kbd&gt;, &lt;kbd&gt;↑&lt;/kbd&gt;, &lt;kbd&gt;↓&lt;/kbd&gt;
move by individual characters/lines
- &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;←&lt;/kbd&gt;, etc. move by words/paragraphs
- &lt;kbd&gt;Home&lt;/kbd&gt; and &lt;kbd&gt;End&lt;/kbd&gt; move to the ends of the buffer
- &lt;kbd&gt;PgUp&lt;/kbd&gt; and &lt;kbd&gt;PgDn&lt;/kbd&gt; move vertically by pages
- &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;PgUp&lt;/kbd&gt; and &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;PgDn&lt;/kbd&gt;
move horizontally by pages

</description>
<parameters>
<parameter name="text_view">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="step">
<parameter_description> the granularity of the move, as a `GtkMovementStep`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> the number of @step units to move
</parameter_description>
</parameter>
<parameter name="extend_selection">
<parameter_description> %TRUE if the move should extend the selection
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextView::move-viewport">
<description>
Gets emitted to move the viewport.

The ::move-viewport signal is a [keybinding signal](class.SignalAction.html),
which can be bound to key combinations to allow the user to move the viewport,
i.e. change what part of the text view is visible in a containing scrolled
window.

There are no default bindings for this signal.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="step">
<parameter_description> the granularity of the movement, as a `GtkScrollStep`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> the number of @step units to move
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextView::paste-clipboard">
<description>
Gets emitted to paste the contents of the clipboard
into the text view.

The ::paste-clipboard signal is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal are
&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;v&lt;/kbd&gt; and
&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;Insert&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextView::preedit-changed">
<description>
Emitted when preedit text of the active IM changes.

If an input method is used, the typed text will not immediately
be committed to the buffer. So if you are interested in the text,
connect to this signal.

This signal is only emitted if the text at the given position
is actually editable.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="preedit">
<parameter_description> the current preedit string
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextView::select-all">
<description>
Gets emitted to select or unselect the complete contents of the text view.

The ::select-all signal is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal are
&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;a&lt;/kbd&gt; and
&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;/&lt;/kbd&gt; for selecting and
&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;a&lt;/kbd&gt; and
&lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;\&lt;/kbd&gt; for unselecting.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="select">
<parameter_description> %TRUE to select, %FALSE to unselect
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextView::set-anchor">
<description>
Gets emitted when the user initiates settings the &quot;anchor&quot; mark.

The ::set-anchor signal is a [keybinding signal](class.SignalAction.html)
which gets emitted when the user initiates setting the &quot;anchor&quot;
mark. The &quot;anchor&quot; mark gets placed at the same position as the
&quot;insert&quot; mark.

This signal has no default bindings.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextView::toggle-cursor-visible">
<description>
Gets emitted to toggle the `cursor-visible` property.

The ::toggle-cursor-visible signal is a
[keybinding signal](class.SignalAction.html).

The default binding for this signal is &lt;kbd&gt;F7&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTextView::toggle-overwrite">
<description>
Gets emitted to toggle the overwrite mode of the text view.

The ::toggle-overwrite signal is a [keybinding signal](class.SignalAction.html).

The default binding for this signal is &lt;kbd&gt;Insert&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkTextView:accepts-tab">
<description>
Whether Tab will result in a tab character being entered.

</description>
</property>

<property name="GtkTextView:bottom-margin">
<description>
The bottom margin for text in the text view.

Note that this property is confusingly named. In CSS terms,
the value set here is padding, and it is applied in addition
to the padding from the theme.

Don't confuse this property with [property@Gtk.Widget:margin-bottom].

</description>
</property>

<property name="GtkTextView:buffer">
<description>
The buffer which is displayed.

</description>
</property>

<property name="GtkTextView:cursor-visible">
<description>
If the insertion cursor is shown.

</description>
</property>

<property name="GtkTextView:extra-menu">
<description>
A menu model whose contents will be appended to the context menu.

</description>
</property>

<property name="GtkTextView:im-module">
<description>
Which IM (input method) module should be used for this text_view.

See [class@Gtk.IMMulticontext].

Setting this to a non-%NULL value overrides the system-wide IM module
setting. See the GtkSettings [property@Gtk.Settings:gtk-im-module] property.

</description>
</property>

<property name="GtkTextView:indent">
<description>
Amount to indent the paragraph, in pixels.

A negative value of indent will produce a hanging indentation.
That is, the first line will have the full width, and subsequent
lines will be indented by the absolute value of indent.


</description>
</property>

<property name="GtkTextView:input-hints">
<description>
Additional hints (beyond [property@Gtk.TextView:input-purpose])
that allow input methods to fine-tune their behaviour.

</description>
</property>

<property name="GtkTextView:input-purpose">
<description>
The purpose of this text field.

This property can be used by on-screen keyboards and other input
methods to adjust their behaviour.

</description>
</property>

<property name="GtkTextView:left-margin">
<description>
The default left margin for text in the text view.

Tags in the buffer may override the default.

Note that this property is confusingly named. In CSS terms,
the value set here is padding, and it is applied in addition
to the padding from the theme.

</description>
</property>

<property name="GtkTextView:monospace">
<description>
Whether text should be displayed in a monospace font.

If %TRUE, set the .monospace style class on the
text view to indicate that a monospace font is desired.

</description>
</property>

<property name="GtkTextView:overwrite">
<description>
Whether entered text overwrites existing contents.

</description>
</property>

<property name="GtkTextView:right-margin">
<description>
The default right margin for text in the text view.

Tags in the buffer may override the default.

Note that this property is confusingly named. In CSS terms,
the value set here is padding, and it is applied in addition
to the padding from the theme.

</description>
</property>

<property name="GtkTextView:top-margin">
<description>
The top margin for text in the text view.

Note that this property is confusingly named. In CSS terms,
the value set here is padding, and it is applied in addition
to the padding from the theme.

Don't confuse this property with [property@Gtk.Widget:margin-top].

</description>
</property>

<property name="GtkTextViewChild:window-type">
<description>
The &quot;window-type&quot; property is the `GtkTextWindowType` of the
`GtkTextView` that the child is attached.

</description>
</property>

<enum name="GtkTextViewLayer">
<description>
Used to reference the layers of `GtkTextView` for the purpose of customized
drawing with the ::snapshot_layer vfunc.

</description>
<parameters>
<parameter name="GTK_TEXT_VIEW_LAYER_BELOW_TEXT">
<parameter_description> The layer rendered below the text (but above the background).
</parameter_description>
</parameter>
<parameter name="GTK_TEXT_VIEW_LAYER_ABOVE_TEXT">
<parameter_description> The layer rendered above the text.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkTextWindowType">
<description>
Used to reference the parts of `GtkTextView`.

</description>
<parameters>
<parameter name="GTK_TEXT_WINDOW_WIDGET">
<parameter_description> Window that floats over scrolling areas.
</parameter_description>
</parameter>
<parameter name="GTK_TEXT_WINDOW_TEXT">
<parameter_description> Scrollable text window.
</parameter_description>
</parameter>
<parameter name="GTK_TEXT_WINDOW_LEFT">
<parameter_description> Left side border window.
</parameter_description>
</parameter>
<parameter name="GTK_TEXT_WINDOW_RIGHT">
<parameter_description> Right side border window.
</parameter_description>
</parameter>
<parameter name="GTK_TEXT_WINDOW_TOP">
<parameter_description> Top border window.
</parameter_description>
</parameter>
<parameter name="GTK_TEXT_WINDOW_BOTTOM">
<parameter_description> Bottom border window.
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkTextview:editable">
<description>
Whether the text can be modified by the user.

</description>
</property>

<property name="GtkTextview:justification">
<description>
Left, right, or center justification.

</description>
</property>

<property name="GtkTextview:pixels-above-lines">
<description>
Pixels of blank space above paragraphs.

</description>
</property>

<property name="GtkTextview:pixels-below-lines">
<description>
Pixels of blank space below paragraphs.

</description>
</property>

<property name="GtkTextview:pixels-inside-wrap">
<description>
Pixels of blank space between wrapped lines in a paragraph.

</description>
</property>

<property name="GtkTextview:tabs">
<description>
Custom tabs for this text.

</description>
</property>

<property name="GtkTextview:wrap-mode">
<description>
Whether to wrap lines never, at word boundaries, or at character boundaries.

</description>
</property>

<signal name="GtkToggleButton::toggled">
<description>
Emitted whenever the `GtkToggleButton`'s state is changed.

</description>
<parameters>
<parameter name="togglebutton">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkToggleButton:active">
<description>
If the toggle button should be pressed in.

</description>
</property>

<property name="GtkToggleButton:group">
<description>
The toggle button whose group this widget belongs to.

</description>
</property>

<property name="GtkTreeExpander:child">
<description>
The child widget with the actual contents.

</description>
</property>

<property name="GtkTreeExpander:hide-expander">
<description>
Whether the expander icon should be hidden in a GtkTreeListRow.
Note that this property simply hides the icon.  The actions and keybinding
(i.e. collapse and expand) are not affected by this property.

A common use for this property would be to bind to the number of children in a
GtkTreeListRow's model in order to hide the expander when a row has no children.

Since: 4.10

</description>
</property>

<property name="GtkTreeExpander:indent-for-depth">
<description>
TreeExpander indents the child according to its depth.

Since: 4.10

</description>
</property>

<property name="GtkTreeExpander:indent-for-icon">
<description>
TreeExpander indents the child by the width of an expander-icon if it is not expandable.

Since: 4.6

</description>
</property>

<property name="GtkTreeExpander:item">
<description>
The item held by this expander's row.

</description>
</property>

<property name="GtkTreeExpander:list-row">
<description>
The list row to track for expander state.

</description>
</property>

<property name="GtkTreeListModel:autoexpand">
<description>
If all rows should be expanded by default.

</description>
</property>

<property name="GtkTreeListModel:item-type">
<description>
The type of items. See [method@Gio.ListModel.get_item_type].

Since: 4.8

</description>
</property>

<property name="GtkTreeListModel:model">
<description>
The root model displayed.

</description>
</property>

<property name="GtkTreeListModel:n-items">
<description>
The number of items. See [method@Gio.ListModel.get_n_items].

Since: 4.8

</description>
</property>

<property name="GtkTreeListModel:passthrough">
<description>
Gets whether the model is in passthrough mode.

If %FALSE, the `GListModel` functions for this object return custom
[class@Gtk.TreeListRow] objects. If %TRUE, the values of the child
models are pass through unmodified.

</description>
</property>

<property name="GtkTreeListRow:children">
<description>
The model holding the row's children.

</description>
</property>

<property name="GtkTreeListRow:depth">
<description>
The depth in the tree of this row.

</description>
</property>

<property name="GtkTreeListRow:expandable">
<description>
If this row can ever be expanded.

</description>
</property>

<property name="GtkTreeListRow:expanded">
<description>
If this row is currently expanded.

</description>
</property>

<property name="GtkTreeListRow:item">
<description>
The item held in this row.

</description>
</property>

<property name="GtkTreeListRowSorter:sorter">
<description>
The underlying sorter

</description>
</property>

<signal name="GtkTreeModel::row-changed">
<description>
This signal is emitted when a row in the model has changed.

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> the `GtkTreeModel` on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath` identifying the changed row
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a valid `GtkTreeIter` pointing to the changed row
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTreeModel::row-deleted">
<description>
This signal is emitted when a row has been deleted.

Note that no iterator is passed to the signal handler,
since the row is already deleted.

This should be called by models after a row has been removed.
The location pointed to by @path should be the location that
the row previously was at. It may not be a valid location anymore.

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> the `GtkTreeModel` on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath` identifying the row
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTreeModel::row-has-child-toggled">
<description>
This signal is emitted when a row has gotten the first child
row or lost its last child row.

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> the `GtkTreeModel` on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath` identifying the row
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a valid `GtkTreeIter` pointing to the row
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTreeModel::row-inserted">
<description>
This signal is emitted when a new row has been inserted in
the model.

Note that the row may still be empty at this point, since
it is a common pattern to first insert an empty row, and
then fill it with the desired values.

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> the `GtkTreeModel` on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath` identifying the new row
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a valid `GtkTreeIter` pointing to the new row
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTreeModel::rows-reordered">
<description>
This signal is emitted when the children of a node in the
`GtkTreeModel` have been reordered.

Note that this signal is not emitted
when rows are reordered by DND, since this is implemented
by removing and then reinserting the row.

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> the `GtkTreeModel` on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath` identifying the tree node whose children
have been reordered
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a valid `GtkTreeIter` pointing to the node whose children
have been reordered, or %NULL if the depth of @path is 0
</parameter_description>
</parameter>
<parameter name="new_order">
<parameter_description> an array of integers mapping the current position
of each child to its old position before the re-ordering,
i.e. @new_order`[newpos] = oldpos`
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<enum name="GtkTreeModelFlags">
<description>
These flags indicate various properties of a `GtkTreeModel`.

They are returned by [method@Gtk.TreeModel.get_flags], and must be
static for the lifetime of the object. A more complete description
of %GTK_TREE_MODEL_ITERS_PERSIST can be found in the overview of
this section.

Deprecated: 4.10

</description>
<parameters>
<parameter name="GTK_TREE_MODEL_ITERS_PERSIST">
<parameter_description> iterators survive all signals
emitted by the tree
</parameter_description>
</parameter>
<parameter name="GTK_TREE_MODEL_LIST_ONLY">
<parameter_description> the model is a list only, and never
has children
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkTreeSelection::changed">
<description>
Emitted whenever the selection has (possibly) changed. Please note that
this signal is mostly a hint.  It may only be emitted once when a range
of rows are selected, and it may occasionally be emitted when nothing
has happened.

</description>
<parameters>
<parameter name="treeselection">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkTreeSelection:mode">
<description>
Selection mode.
See gtk_tree_selection_set_mode() for more information on this property.

</description>
</property>

<signal name="GtkTreeSortable::sort-column-changed">
<description>
The ::sort-column-changed signal is emitted when the sort column
or sort order of @sortable is changed. The signal is emitted before
the contents of @sortable are resorted.

</description>
<parameters>
<parameter name="sortable">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTreeView::columns-changed">
<description>
The number of columns of the treeview has changed.

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTreeView::cursor-changed">
<description>
The position of the cursor (focused cell) has changed.

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTreeView::move-cursor">
<description>
The `GtkTreeView`::move-cursor signal is a [keybinding
signal][class@Gtk.SignalAction] which gets emitted when the user
presses one of the cursor keys.

Applications should not connect to it, but may emit it with
g_signal_emit_by_name() if they need to control the cursor
programmatically. In contrast to gtk_tree_view_set_cursor() and
gtk_tree_view_set_cursor_on_cell() when moving horizontally
`GtkTreeView`::move-cursor does not reset the current selection.


</description>
<parameters>
<parameter name="tree_view">
<parameter_description> the object on which the signal is emitted.
</parameter_description>
</parameter>
<parameter name="step">
<parameter_description> the granularity of the move, as a `GtkMovementStep`.
%GTK_MOVEMENT_LOGICAL_POSITIONS, %GTK_MOVEMENT_VISUAL_POSITIONS,
%GTK_MOVEMENT_DISPLAY_LINES, %GTK_MOVEMENT_PAGES and
%GTK_MOVEMENT_BUFFER_ENDS are supported.
%GTK_MOVEMENT_LOGICAL_POSITIONS and %GTK_MOVEMENT_VISUAL_POSITIONS
are treated identically.
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> the direction to move: +1 to move forwards; -1 to move
backwards. The resulting movement is undefined for all other values.
</parameter_description>
</parameter>
<parameter name="extend">
<parameter_description> whether to extend the selection
</parameter_description>
</parameter>
<parameter name="modify">
<parameter_description> whether to modify the selection
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @step is supported, %FALSE otherwise.
</return>
</signal>

<signal name="GtkTreeView::row-activated">
<description>
The &quot;row-activated&quot; signal is emitted when the method
[method@Gtk.TreeView.row_activated] is called.

This signal is emitted when the user double-clicks a treeview row with the
[property@Gtk.TreeView:activate-on-single-click] property set to %FALSE,
or when the user single-clicks a row when that property set to %TRUE.

This signal is also emitted when a non-editable row is selected and one
of the keys: &lt;kbd&gt;Space&lt;/kbd&gt;, &lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;Space&lt;/kbd&gt;,
&lt;kbd&gt;Return&lt;/kbd&gt; or &lt;kbd&gt;Enter&lt;/kbd&gt; is pressed.

For selection handling refer to the
[tree widget conceptual overview](section-tree-widget.html)
as well as `GtkTreeSelection`.

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> the `GtkTreePath` for the activated row
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> the `GtkTreeViewColumn` in which the activation occurred
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTreeView::row-collapsed">
<description>
The given row has been collapsed (child nodes are hidden).

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the tree iter of the collapsed row
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a tree path that points to the row
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTreeView::row-expanded">
<description>
The given row has been expanded (child nodes are shown).

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the tree iter of the expanded row
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a tree path that points to the row
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkTreeView::test-collapse-row">
<description>
The given row is about to be collapsed (hide its children nodes). Use this
signal if you need to control the collapsibility of individual rows.


</description>
<parameters>
<parameter name="tree_view">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the tree iter of the row to collapse
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a tree path that points to the row
</parameter_description>
</parameter>
</parameters>
<return> %FALSE to allow collapsing, %TRUE to reject
</return>
</signal>

<signal name="GtkTreeView::test-expand-row">
<description>
The given row is about to be expanded (show its children nodes). Use this
signal if you need to control the expandability of individual rows.


</description>
<parameters>
<parameter name="tree_view">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the tree iter of the row to expand
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a tree path that points to the row
</parameter_description>
</parameter>
</parameters>
<return> %FALSE to allow expansion, %TRUE to reject
</return>
</signal>

<property name="GtkTreeView:activate-on-single-click">
<description>
The activate-on-single-click property specifies whether the &quot;row-activated&quot; signal
will be emitted after a single click.

</description>
</property>

<property name="GtkTreeView:fixed-height-mode">
<description>
Setting the ::fixed-height-mode property to %TRUE speeds up
`GtkTreeView` by assuming that all rows have the same height.
Only enable this option if all rows are the same height.
Please see gtk_tree_view_set_fixed_height_mode() for more
information on this option.

</description>
</property>

<property name="GtkTreeView:hover-expand">
<description>
Enables or disables the hover expansion mode of @tree_view.
Hover expansion makes rows expand or collapse if the pointer moves
over them.

This mode is primarily intended for treeviews in popups, e.g.
in `GtkComboBox` or `GtkEntryCompletion`.

</description>
</property>

<property name="GtkTreeView:hover-selection">
<description>
Enables or disables the hover selection mode of @tree_view.
Hover selection makes the selected row follow the pointer.
Currently, this works only for the selection modes
%GTK_SELECTION_SINGLE and %GTK_SELECTION_BROWSE.

This mode is primarily intended for treeviews in popups, e.g.
in `GtkComboBox` or `GtkEntryCompletion`.

</description>
</property>

<property name="GtkTreeView:level-indentation">
<description>
Extra indentation for each level.

</description>
</property>

<property name="GtkTreeView:show-expanders">
<description>
%TRUE if the view has expanders.

</description>
</property>

<signal name="GtkTreeViewColumn::clicked">
<description>
Emitted when the column's header has been clicked.

</description>
<parameters>
<parameter name="column">
<parameter_description> the `GtkTreeViewColumn` that emitted the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkTreeViewColumn:cell-area">
<description>
The `GtkCellArea` used to layout cell renderers for this column.

If no area is specified when creating the tree view column with gtk_tree_view_column_new_with_area()
a horizontally oriented `GtkCellAreaBox` will be used.

</description>
</property>

<property name="GtkTreeViewColumn:sort-column-id">
<description>
Logical sort column ID this column sorts on when selected for sorting. Setting the sort column ID makes the column header
clickable. Set to -1 to make the column unsortable.

</description>
</property>

<enum name="GtkTreeViewColumnSizing">
<description>
The sizing method the column uses to determine its width.  Please note
that %GTK_TREE_VIEW_COLUMN_AUTOSIZE are inefficient for large views, and
can make columns appear choppy.

</description>
<parameters>
<parameter name="GTK_TREE_VIEW_COLUMN_GROW_ONLY">
<parameter_description> Columns only get bigger in reaction to changes in the model
</parameter_description>
</parameter>
<parameter name="GTK_TREE_VIEW_COLUMN_AUTOSIZE">
<parameter_description> Columns resize to be the optimal size every time the model changes.
</parameter_description>
</parameter>
<parameter name="GTK_TREE_VIEW_COLUMN_FIXED">
<parameter_description> Columns are a fixed numbers of pixels wide.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkTreeViewDropPosition">
<description>
An enum for determining where a dropped row goes.

</description>
<parameters>
<parameter name="GTK_TREE_VIEW_DROP_BEFORE">
<parameter_description> dropped row is inserted before
</parameter_description>
</parameter>
<parameter name="GTK_TREE_VIEW_DROP_AFTER">
<parameter_description> dropped row is inserted after
</parameter_description>
</parameter>
<parameter name="GTK_TREE_VIEW_DROP_INTO_OR_BEFORE">
<parameter_description> dropped row becomes a child or is inserted before
</parameter_description>
</parameter>
<parameter name="GTK_TREE_VIEW_DROP_INTO_OR_AFTER">
<parameter_description> dropped row becomes a child or is inserted after
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkTreeViewGridLines">
<description>
Used to indicate which grid lines to draw in a tree view.

</description>
<parameters>
<parameter name="GTK_TREE_VIEW_GRID_LINES_NONE">
<parameter_description> No grid lines.
</parameter_description>
</parameter>
<parameter name="GTK_TREE_VIEW_GRID_LINES_HORIZONTAL">
<parameter_description> Horizontal grid lines.
</parameter_description>
</parameter>
<parameter name="GTK_TREE_VIEW_GRID_LINES_VERTICAL">
<parameter_description> Vertical grid lines.
</parameter_description>
</parameter>
<parameter name="GTK_TREE_VIEW_GRID_LINES_BOTH">
<parameter_description> Horizontal and vertical grid lines.
</parameter_description>
</parameter>
</parameters>
</enum>

<enum name="GtkUnit">
<description>
See also gtk_print_settings_set_paper_width().

</description>
<parameters>
<parameter name="GTK_UNIT_NONE">
<parameter_description> No units.
</parameter_description>
</parameter>
<parameter name="GTK_UNIT_POINTS">
<parameter_description> Dimensions in points.
</parameter_description>
</parameter>
<parameter name="GTK_UNIT_INCH">
<parameter_description> Dimensions in inches.
</parameter_description>
</parameter>
<parameter name="GTK_UNIT_MM">
<parameter_description> Dimensions in millimeters
</parameter_description>
</parameter>
</parameters>
</enum>

<property name="GtkUriLauncher:uri">
<description>
The uri to launch.

Since: 4.10

</description>
</property>

<property name="GtkVideo:autoplay">
<description>
If the video should automatically begin playing.

</description>
</property>

<property name="GtkVideo:file">
<description>
The file played by this video if the video is playing a file.

</description>
</property>

<property name="GtkVideo:graphics-offload">
<description>
Whether to enable graphics offload.

Since: 4.14

</description>
</property>

<property name="GtkVideo:loop">
<description>
If new media files should be set to loop.

</description>
</property>

<property name="GtkVideo:media-stream">
<description>
The media-stream played

</description>
</property>

<property name="GtkViewport:child">
<description>
The child widget.

</description>
</property>

<property name="GtkViewport:scroll-to-focus">
<description>
Whether to scroll when the focus changes.

Before 4.6.2, this property was mistakenly defaulting to FALSE, so if your
code needs to work with older versions, consider setting it explicitly to
TRUE.

</description>
</property>

<property name="GtkVolumeButton:use-symbolic">
<description>
Whether to use symbolic icons as the icons.

Note that if the symbolic icons are not available in your installed
theme, then the normal (potentially colorful) icons will be used.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
</property>

<signal name="GtkWidget::destroy">
<description>
Signals that all holders of a reference to the widget should release
the reference that they hold.

May result in finalization of the widget if all references are released.

This signal is not suitable for saving widget state.

</description>
<parameters>
<parameter name="object">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkWidget::direction-changed">
<description>
Emitted when the text direction of a widget changes.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="previous_direction">
<parameter_description> the previous text direction of @widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkWidget::hide">
<description>
Emitted when @widget is hidden.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkWidget::keynav-failed">
<description>
Emitted if keyboard navigation fails.

See [method@Gtk.Widget.keynav_failed] for details.


</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> the direction of movement
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if stopping keyboard navigation is fine, %FALSE
if the emitting widget should try to handle the keyboard
navigation attempt in its parent widget(s).
</return>
</signal>

<signal name="GtkWidget::map">
<description>
Emitted when @widget is going to be mapped.

A widget is mapped when the widget is visible (which is controlled with
[property@Gtk.Widget:visible]) and all its parents up to the toplevel widget
are also visible.

The ::map signal can be used to determine whether a widget will be drawn,
for instance it can resume an animation that was stopped during the
emission of [signal@Gtk.Widget::unmap].

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkWidget::mnemonic-activate">
<description>
Emitted when a widget is activated via a mnemonic.

The default handler for this signal activates @widget if @group_cycling
is %FALSE, or just makes @widget grab focus if @group_cycling is %TRUE.


</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
<parameter name="group_cycling">
<parameter_description> %TRUE if there are other widgets with the same mnemonic
</parameter_description>
</parameter>
</parameters>
<return> %TRUE to stop other handlers from being invoked for the event.
%FALSE to propagate the event further.
</return>
</signal>

<signal name="GtkWidget::move-focus">
<description>
Emitted when the focus is moved.

The ::move-focus signal is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal are &lt;kbd&gt;Tab&lt;/kbd&gt; to move forward,
and &lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;Tab&lt;/kbd&gt; to move backward.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> the direction of the focus move
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkWidget::query-tooltip">
<description>
Emitted when the widget’s tooltip is about to be shown.

This happens when the [property@Gtk.Widget:has-tooltip] property
is %TRUE and the hover timeout has expired with the cursor hovering
&quot;above&quot; @widget; or emitted when @widget got focus in keyboard mode.

Using the given coordinates, the signal handler should determine
whether a tooltip should be shown for @widget. If this is the case
%TRUE should be returned, %FALSE otherwise.  Note that if
@keyboard_mode is %TRUE, the values of @x and @y are undefined and
should not be used.

The signal handler is free to manipulate @tooltip with the therefore
destined function calls.


</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the cursor position where the request has
been emitted, relative to @widget's left side
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the cursor position where the request has
been emitted, relative to @widget's top
</parameter_description>
</parameter>
<parameter name="keyboard_mode">
<parameter_description> %TRUE if the tooltip was triggered using the keyboard
</parameter_description>
</parameter>
<parameter name="tooltip">
<parameter_description> a `GtkTooltip`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @tooltip should be shown right now, %FALSE otherwise.
</return>
</signal>

<signal name="GtkWidget::realize">
<description>
Emitted when @widget is associated with a `GdkSurface`.

This means that [method@Gtk.Widget.realize] has been called
or the widget has been mapped (that is, it is going to be drawn).

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkWidget::show">
<description>
Emitted when @widget is shown.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkWidget::state-flags-changed">
<description>
Emitted when the widget state changes.

See [method@Gtk.Widget.get_state_flags].

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> The previous state flags.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkWidget::unmap">
<description>
Emitted when @widget is going to be unmapped.

A widget is unmapped when either it or any of its parents up to the
toplevel widget have been set as hidden.

As ::unmap indicates that a widget will not be shown any longer,
it can be used to, for example, stop an animation on the widget.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkWidget::unrealize">
<description>
Emitted when the `GdkSurface` associated with @widget is destroyed.

This means that [method@Gtk.Widget.unrealize] has been called
or the widget has been unmapped (that is, it is going to be hidden).

</description>
<parameters>
<parameter name="widget">
<parameter_description> the object which received the signal.
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkWidget:can-focus">
<description>
Whether the widget or any of its descendents can accept
the input focus.

This property is meant to be set by widget implementations,
typically in their instance init function.

</description>
</property>

<property name="GtkWidget:can-target">
<description>
Whether the widget can receive pointer events.

</description>
</property>

<property name="GtkWidget:css-classes">
<description>
A list of css classes applied to this widget.

</description>
</property>

<property name="GtkWidget:css-name">
<description>
The name of this widget in the CSS tree.

This property is meant to be set by widget implementations,
typically in their instance init function.

</description>
</property>

<property name="GtkWidget:cursor">
<description>
The cursor used by @widget.

</description>
</property>

<property name="GtkWidget:focus-on-click">
<description>
Whether the widget should grab focus when it is clicked with the mouse.

This property is only relevant for widgets that can take focus.

</description>
</property>

<property name="GtkWidget:focusable">
<description>
Whether this widget itself will accept the input focus.

</description>
</property>

<property name="GtkWidget:halign">
<description>
How to distribute horizontal space if widget gets extra space.

</description>
</property>

<property name="GtkWidget:has-default">
<description>
Whether the widget is the default widget.

</description>
</property>

<property name="GtkWidget:has-focus">
<description>
Whether the widget has the input focus.

</description>
</property>

<property name="GtkWidget:has-tooltip">
<description>
Enables or disables the emission of the ::query-tooltip signal on @widget.

A value of %TRUE indicates that @widget can have a tooltip, in this case
the widget will be queried using [signal@Gtk.Widget::query-tooltip] to
determine whether it will provide a tooltip or not.

</description>
</property>

<property name="GtkWidget:height-request">
<description>
Override for height request of the widget.

If this is -1, the natural request will be used.

</description>
</property>

<property name="GtkWidget:hexpand">
<description>
Whether to expand horizontally.

</description>
</property>

<property name="GtkWidget:hexpand-set">
<description>
Whether to use the `hexpand` property.

</description>
</property>

<property name="GtkWidget:layout-manager">
<description>
The `GtkLayoutManager` instance to use to compute the preferred size
of the widget, and allocate its children.

This property is meant to be set by widget implementations,
typically in their instance init function.

</description>
</property>

<property name="GtkWidget:margin-bottom">
<description>
Margin on bottom side of widget.

This property adds margin outside of the widget's normal size
request, the margin will be added in addition to the size from
[method@Gtk.Widget.set_size_request] for example.

</description>
</property>

<property name="GtkWidget:margin-end">
<description>
Margin on end of widget, horizontally.

This property supports left-to-right and right-to-left text
directions.

This property adds margin outside of the widget's normal size
request, the margin will be added in addition to the size from
[method@Gtk.Widget.set_size_request] for example.

</description>
</property>

<property name="GtkWidget:margin-start">
<description>
Margin on start of widget, horizontally.

This property supports left-to-right and right-to-left text
directions.

This property adds margin outside of the widget's normal size
request, the margin will be added in addition to the size from
[method@Gtk.Widget.set_size_request] for example.

</description>
</property>

<property name="GtkWidget:margin-top">
<description>
Margin on top side of widget.

This property adds margin outside of the widget's normal size
request, the margin will be added in addition to the size from
[method@Gtk.Widget.set_size_request] for example.

</description>
</property>

<property name="GtkWidget:name">
<description>
The name of the widget.

</description>
</property>

<property name="GtkWidget:opacity">
<description>
The requested opacity of the widget.

</description>
</property>

<property name="GtkWidget:overflow">
<description>
How content outside the widget's content area is treated.

This property is meant to be set by widget implementations,
typically in their instance init function.

</description>
</property>

<property name="GtkWidget:parent">
<description>
The parent widget of this widget.

</description>
</property>

<property name="GtkWidget:receives-default">
<description>
Whether the widget will receive the default action when it is focused.

</description>
</property>

<property name="GtkWidget:root">
<description>
The `GtkRoot` widget of the widget tree containing this widget.

This will be %NULL if the widget is not contained in a root widget.

</description>
</property>

<property name="GtkWidget:scale-factor">
<description>
The scale factor of the widget.

</description>
</property>

<property name="GtkWidget:sensitive">
<description>
Whether the widget responds to input.

</description>
</property>

<property name="GtkWidget:tooltip-markup">
<description>
Sets the text of tooltip to be the given string, which is marked up
with Pango markup.

Also see [method@Gtk.Tooltip.set_markup].

This is a convenience property which will take care of getting the
tooltip shown if the given string is not %NULL:
[property@Gtk.Widget:has-tooltip] will automatically be set to %TRUE
and there will be taken care of [signal@Gtk.Widget::query-tooltip] in
the default signal handler.

Note that if both [property@Gtk.Widget:tooltip-text] and
[property@Gtk.Widget:tooltip-markup] are set, the last one wins.

</description>
</property>

<property name="GtkWidget:tooltip-text">
<description>
Sets the text of tooltip to be the given string.

Also see [method@Gtk.Tooltip.set_text].

This is a convenience property which will take care of getting the
tooltip shown if the given string is not %NULL:
[property@Gtk.Widget:has-tooltip] will automatically be set to %TRUE
and there will be taken care of [signal@Gtk.Widget::query-tooltip] in
the default signal handler.

Note that if both [property@Gtk.Widget:tooltip-text] and
[property@Gtk.Widget:tooltip-markup] are set, the last one wins.

</description>
</property>

<property name="GtkWidget:valign">
<description>
How to distribute vertical space if widget gets extra space.

</description>
</property>

<property name="GtkWidget:vexpand">
<description>
Whether to expand vertically.

</description>
</property>

<property name="GtkWidget:vexpand-set">
<description>
Whether to use the `vexpand` property.

</description>
</property>

<property name="GtkWidget:visible">
<description>
Whether the widget is visible.

</description>
</property>

<property name="GtkWidget:width-request">
<description>
Override for width request of the widget.

If this is -1, the natural request will be used.

</description>
</property>

<property name="GtkWidgetPaintable:widget">
<description>
The observed widget or %NULL if none.

</description>
</property>

<signal name="GtkWindow::activate-default">
<description>
Emitted when the user activates the default widget
of @window.

This is a [keybinding signal](class.SignalAction.html).

</description>
<parameters>
<parameter name="window">
<parameter_description> the window which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkWindow::activate-focus">
<description>
Emitted when the user activates the currently focused
widget of @window.

This is a [keybinding signal](class.SignalAction.html).

</description>
<parameters>
<parameter name="window">
<parameter_description> the window which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkWindow::close-request">
<description>
Emitted when the user clicks on the close button of the window.

Return: %TRUE to stop other handlers from being invoked for the signal

</description>
<parameters>
<parameter name="window">
<parameter_description> the window on which the signal is emitted
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkWindow::enable-debugging">
<description>
Emitted when the user enables or disables interactive debugging.

When @toggle is %TRUE, interactive debugging is toggled on or off,
when it is %FALSE, the debugger will be pointed at the widget
under the pointer.

This is a [keybinding signal](class.SignalAction.html).

The default bindings for this signal are Ctrl-Shift-I
and Ctrl-Shift-D.

Return: %TRUE if the key binding was handled

</description>
<parameters>
<parameter name="window">
<parameter_description> the window on which the signal is emitted
</parameter_description>
</parameter>
<parameter name="toggle">
<parameter_description> toggle the debugger
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<signal name="GtkWindow::keys-changed">
<description>
emitted when the set of accelerators or mnemonics that
are associated with @window changes.

Deprecated: 4.10: Use [class@Gtk.Shortcut] and [class@Gtk.EventController]
to implement keyboard shortcuts

</description>
<parameters>
<parameter name="window">
<parameter_description> the window which received the signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</signal>

<property name="GtkWindow:application">
<description>
The `GtkApplication` associated with the window.

The application will be kept alive for at least as long as it
has any windows associated with it (see g_application_hold()
for a way to keep it alive without windows).

Normally, the connection between the application and the window
will remain until the window is destroyed, but you can explicitly
remove it by setting the :application property to %NULL.

</description>
</property>

<property name="GtkWindow:child">
<description>
The child widget.

</description>
</property>

<property name="GtkWindow:decorated">
<description>
Whether the window should have a frame (also known as *decorations*).

</description>
</property>

<property name="GtkWindow:default-height">
<description>
The default height of the window.

</description>
</property>

<property name="GtkWindow:default-widget">
<description>
The default widget.

</description>
</property>

<property name="GtkWindow:default-width">
<description>
The default width of the window.

</description>
</property>

<property name="GtkWindow:deletable">
<description>
Whether the window frame should have a close button.

</description>
</property>

<property name="GtkWindow:destroy-with-parent">
<description>
If this window should be destroyed when the parent is destroyed.

</description>
</property>

<property name="GtkWindow:display">
<description>
The display that will display this window.

</description>
</property>

<property name="GtkWindow:focus-visible">
<description>
Whether 'focus rectangles' are currently visible in this window.

This property is maintained by GTK based on user input
and should not be set by applications.

</description>
</property>

<property name="GtkWindow:focus-widget">
<description>
The focus widget.

</description>
</property>

<property name="GtkWindow:fullscreened">
<description>
Whether the window is fullscreen.

Setting this property is the equivalent of calling
[method@Gtk.Window.fullscreen] or [method@Gtk.Window.unfullscreen];
either operation is asynchronous, which means you will need to
connect to the ::notify signal in order to know whether the
operation was successful.

</description>
</property>

<property name="GtkWindow:handle-menubar-accel">
<description>
Whether the window frame should handle F10 for activating
menubars.

Since: 4.2

</description>
</property>

<property name="GtkWindow:hide-on-close">
<description>
If this window should be hidden when the users clicks the close button.

</description>
</property>

<property name="GtkWindow:icon-name">
<description>
Specifies the name of the themed icon to use as the window icon.

See [class@Gtk.IconTheme] for more details.

</description>
</property>

<property name="GtkWindow:is-active">
<description>
Whether the toplevel is the currently active window.

</description>
</property>

<property name="GtkWindow:maximized">
<description>
Whether the window is maximized.

Setting this property is the equivalent of calling
[method@Gtk.Window.maximize] or [method@Gtk.Window.unmaximize];
either operation is asynchronous, which means you will need to
connect to the ::notify signal in order to know whether the
operation was successful.

</description>
</property>

<property name="GtkWindow:mnemonics-visible">
<description>
Whether mnemonics are currently visible in this window.

This property is maintained by GTK based on user input,
and should not be set by applications.

</description>
</property>

<property name="GtkWindow:modal">
<description>
If %TRUE, the window is modal.

</description>
</property>

<property name="GtkWindow:resizable">
<description>
If %TRUE, users can resize the window.

</description>
</property>

<property name="GtkWindow:startup-id">
<description>
A write-only property for setting window's startup notification identifier.

</description>
</property>

<property name="GtkWindow:suspended">
<description>
Whether the window is suspended.

See [method@Gtk.Window.is_suspended] for details about what suspended means.

Since: 4.12

</description>
</property>

<property name="GtkWindow:title">
<description>
The title of the window.

</description>
</property>

<property name="GtkWindow:titlebar">
<description>
The titlebar widget.

Since: 4.6

</description>
</property>

<property name="GtkWindow:transient-for">
<description>
The transient parent of the window.

</description>
</property>

<property name="GtkWindowControls:decoration-layout">
<description>
The decoration layout for window buttons.

If this property is not set, the
[property@Gtk.Settings:gtk-decoration-layout] setting is used.

</description>
</property>

<property name="GtkWindowControls:empty">
<description>
Whether the widget has any window buttons.

</description>
</property>

<property name="GtkWindowControls:side">
<description>
Whether the widget shows start or end side of the decoration layout.

See [property@Gtk.WindowControls:decoration_layout].

</description>
</property>

<property name="GtkWindowHandle:child">
<description>
The child widget.

</description>
</property>

<enum name="GtkWrapMode">
<description>
Describes a type of line wrapping.

</description>
<parameters>
<parameter name="GTK_WRAP_NONE">
<parameter_description> do not wrap lines; just make the text area wider
</parameter_description>
</parameter>
<parameter name="GTK_WRAP_CHAR">
<parameter_description> wrap text, breaking lines anywhere the cursor can
appear (between characters, usually - if you want to be technical,
between graphemes, see pango_get_log_attrs())
</parameter_description>
</parameter>
<parameter name="GTK_WRAP_WORD">
<parameter_description> wrap text, breaking lines in between words
</parameter_description>
</parameter>
<parameter name="GTK_WRAP_WORD_CHAR">
<parameter_description> wrap text, breaking lines in between words, or if
that is not enough, also between graphemes
</parameter_description>
</parameter>
</parameters>
</enum>

<signal name="GtkXdpOpenURI::handle-open-directory">
<description>
Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-freedesktop-portal-OpenURI.OpenDirectory&quot;&gt;OpenDirectory()&lt;/link&gt; D-Bus method.

If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gtk_xdp_open_uri_complete_open_directory() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.


</description>
<parameters>
<parameter name="object">
<parameter_description> A #GtkXdpOpenURI.
</parameter_description>
</parameter>
<parameter name="invocation">
<parameter_description> A #GDBusMethodInvocation.
</parameter_description>
</parameter>
<parameter name="fd_list">
<parameter_description> A #GUnixFDList or %NULL.
</parameter_description>
</parameter>
<parameter name="arg_parent_window">
<parameter_description> Argument passed by remote caller.
</parameter_description>
</parameter>
<parameter name="arg_fd">
<parameter_description> Argument passed by remote caller.
</parameter_description>
</parameter>
<parameter name="arg_options">
<parameter_description> Argument passed by remote caller.
</parameter_description>
</parameter>
</parameters>
<return> %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
</return>
</signal>

<signal name="GtkXdpOpenURI::handle-open-file">
<description>
Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-freedesktop-portal-OpenURI.OpenFile&quot;&gt;OpenFile()&lt;/link&gt; D-Bus method.

If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gtk_xdp_open_uri_complete_open_file() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.


</description>
<parameters>
<parameter name="object">
<parameter_description> A #GtkXdpOpenURI.
</parameter_description>
</parameter>
<parameter name="invocation">
<parameter_description> A #GDBusMethodInvocation.
</parameter_description>
</parameter>
<parameter name="fd_list">
<parameter_description> A #GUnixFDList or %NULL.
</parameter_description>
</parameter>
<parameter name="arg_parent_window">
<parameter_description> Argument passed by remote caller.
</parameter_description>
</parameter>
<parameter name="arg_fd">
<parameter_description> Argument passed by remote caller.
</parameter_description>
</parameter>
<parameter name="arg_options">
<parameter_description> Argument passed by remote caller.
</parameter_description>
</parameter>
</parameters>
<return> %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
</return>
</signal>

<signal name="GtkXdpOpenURI::handle-open-uri">
<description>
Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-freedesktop-portal-OpenURI.OpenURI&quot;&gt;OpenURI()&lt;/link&gt; D-Bus method.

If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gtk_xdp_open_uri_complete_open_uri() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.


</description>
<parameters>
<parameter name="object">
<parameter_description> A #GtkXdpOpenURI.
</parameter_description>
</parameter>
<parameter name="invocation">
<parameter_description> A #GDBusMethodInvocation.
</parameter_description>
</parameter>
<parameter name="arg_parent_window">
<parameter_description> Argument passed by remote caller.
</parameter_description>
</parameter>
<parameter name="arg_uri">
<parameter_description> Argument passed by remote caller.
</parameter_description>
</parameter>
<parameter name="arg_options">
<parameter_description> Argument passed by remote caller.
</parameter_description>
</parameter>
</parameters>
<return> %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
</return>
</signal>

<property name="GtkXdpOpenURI:version">
<description>
Represents the D-Bus property &lt;link linkend=&quot;gdbus-property-org-freedesktop-portal-OpenURI.version&quot;&gt;&quot;version&quot;&lt;/link&gt;.

Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

</description>
</property>

<function name="gtk_about_dialog_add_credit_section">
<description>
Creates a new section in the &quot;Credits&quot; page.

</description>
<parameters>
<parameter name="about">
<parameter_description> A `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="section_name">
<parameter_description> The name of the section
</parameter_description>
</parameter>
<parameter name="people">
<parameter_description> The people who belong to that section
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_about_dialog_get_artists">
<description>
Returns the names of the artists which are displayed
in the credits page.


</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
</parameters>
<return> A
`NULL`-terminated string array containing the artists
</return>
</function>

<function name="gtk_about_dialog_get_authors">
<description>
Returns the names of the authors which are displayed
in the credits page.


</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
</parameters>
<return> A
`NULL`-terminated string array containing the authors
</return>
</function>

<function name="gtk_about_dialog_get_comments">
<description>
Returns the comments string.


</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
</parameters>
<return> The comments
</return>
</function>

<function name="gtk_about_dialog_get_copyright">
<description>
Returns the copyright string.


</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
</parameters>
<return> The copyright string
</return>
</function>

<function name="gtk_about_dialog_get_documenters">
<description>
Returns the name of the documenters which are displayed
in the credits page.


</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
</parameters>
<return> A
`NULL`-terminated string array containing the documenters
</return>
</function>

<function name="gtk_about_dialog_get_license">
<description>
Returns the license information.


</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
</parameters>
<return> The license information
</return>
</function>

<function name="gtk_about_dialog_get_license_type">
<description>
Retrieves the license type.


</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
</parameters>
<return> a [enum@Gtk.License] value
</return>
</function>

<function name="gtk_about_dialog_get_logo">
<description>
Returns the paintable displayed as logo in the about dialog.


</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
</parameters>
<return> the paintable displayed as
logo or `NULL` if the logo is unset or has been set via
[method@Gtk.AboutDialog.set_logo_icon_name]
</return>
</function>

<function name="gtk_about_dialog_get_logo_icon_name">
<description>
Returns the icon name displayed as logo in the about dialog.


</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
</parameters>
<return> the icon name displayed as logo,
or `NULL` if the logo has been set via [method@Gtk.AboutDialog.set_logo]
</return>
</function>

<function name="gtk_about_dialog_get_program_name">
<description>
Returns the program name displayed in the about dialog.


</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
</parameters>
<return> The program name
</return>
</function>

<function name="gtk_about_dialog_get_system_information">
<description>
Returns the system information that is shown in the about dialog.


</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
</parameters>
<return> the system information
</return>
</function>

<function name="gtk_about_dialog_get_translator_credits">
<description>
Returns the translator credits string which is displayed
in the credits page.


</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
</parameters>
<return> The translator credits string
</return>
</function>

<function name="gtk_about_dialog_get_version">
<description>
Returns the version string.


</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
</parameters>
<return> The version string
</return>
</function>

<function name="gtk_about_dialog_get_website">
<description>
Returns the website URL.


</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
</parameters>
<return> The website URL
</return>
</function>

<function name="gtk_about_dialog_get_website_label">
<description>
Returns the label used for the website link.


</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
</parameters>
<return> The label used for the website link
</return>
</function>

<function name="gtk_about_dialog_get_wrap_license">
<description>
Returns whether the license text in the about dialog is
automatically wrapped.


</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if the license text is wrapped
</return>
</function>

<function name="gtk_about_dialog_new">
<description>
Creates a new `GtkAboutDialog`.


</description>
<parameters>
</parameters>
<return> a newly created `GtkAboutDialog`
</return>
</function>

<function name="gtk_about_dialog_set_artists">
<description>
Sets the names of the artists to be displayed
in the &quot;Credits&quot; page.

</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="artists">
<parameter_description> the authors of the artwork
of the application
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_about_dialog_set_authors">
<description>
Sets the names of the authors which are displayed
in the &quot;Credits&quot; page of the about dialog.

</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="authors">
<parameter_description> the authors of the application
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_about_dialog_set_comments">
<description>
Sets the comments string to display in the about dialog.

This should be a short string of one or two lines.

</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="comments">
<parameter_description> a comments string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_about_dialog_set_copyright">
<description>
Sets the copyright string to display in the about dialog.

This should be a short string of one or two lines.

</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="copyright">
<parameter_description> the copyright string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_about_dialog_set_documenters">
<description>
Sets the names of the documenters which are displayed
in the &quot;Credits&quot; page.

</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="documenters">
<parameter_description> the authors of the documentation
of the application
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_about_dialog_set_license">
<description>
Sets the license information to be displayed in the
about dialog.

If `license` is `NULL`, the license page is hidden.

</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="license">
<parameter_description> the license information
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_about_dialog_set_license_type">
<description>
Sets the license of the application showing the about dialog from a
list of known licenses.

This function overrides the license set using
[method@Gtk.AboutDialog.set_license].

</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="license_type">
<parameter_description> the type of license
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_about_dialog_set_logo">
<description>
Sets the logo in the about dialog.

</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="logo">
<parameter_description> a `GdkPaintable`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_about_dialog_set_logo_icon_name">
<description>
Sets the icon name to be displayed as logo in the about dialog.

</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="icon_name">
<parameter_description> an icon name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_about_dialog_set_program_name">
<description>
Sets the name to display in the about dialog.

If `name` is not set, the string returned
by `g_get_application_name()` is used.

</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the program name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_about_dialog_set_system_information">
<description>
Sets the system information to be displayed in the about
dialog.

If `system_information` is `NULL`, the system information
page is hidden.

See [property@Gtk.AboutDialog:system-information].

</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="system_information">
<parameter_description> system information
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_about_dialog_set_translator_credits">
<description>
Sets the translator credits string which is displayed in
the credits page.

The intended use for this string is to display the translator
of the language which is currently used in the user interface.
Using `gettext()`, a simple way to achieve that is to mark the
string for translation:

```c
GtkWidget *about = gtk_about_dialog_new ();
gtk_about_dialog_set_translator_credits (GTK_ABOUT_DIALOG (about),
_(&quot;translator-credits&quot;));
```

It is a good idea to use the customary `msgid` “translator-credits”
for this purpose, since translators will already know the purpose of
that `msgid`, and since `GtkAboutDialog` will detect if “translator-credits”
is untranslated and omit translator credits.

</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="translator_credits">
<parameter_description> the translator credits
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_about_dialog_set_version">
<description>
Sets the version string to display in the about dialog.

</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="version">
<parameter_description> the version string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_about_dialog_set_website">
<description>
Sets the URL to use for the website link.

</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="website">
<parameter_description> a URL string starting with `http://`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_about_dialog_set_website_label">
<description>
Sets the label to be used for the website link.

</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="website_label">
<parameter_description> the label used for the website link
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_about_dialog_set_wrap_license">
<description>
Sets whether the license text in the about dialog should be
automatically wrapped.

</description>
<parameters>
<parameter name="about">
<parameter_description> a `GtkAboutDialog`
</parameter_description>
</parameter>
<parameter name="wrap_license">
<parameter_description> whether to wrap the license
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_accelerator_get_default_mod_mask">
<description>
Gets the modifier mask.

The modifier mask determines which modifiers are considered significant
for keyboard accelerators. This includes all keyboard modifiers except
for %GDK_LOCK_MASK.


</description>
<parameters>
</parameters>
<return> the modifier mask for accelerators
</return>
</function>

<function name="gtk_accelerator_get_label">
<description>
Converts an accelerator keyval and modifier mask into a string
which can be used to represent the accelerator to the user.


</description>
<parameters>
<parameter name="accelerator_key">
<parameter_description> accelerator keyval
</parameter_description>
</parameter>
<parameter name="accelerator_mods">
<parameter_description> accelerator modifier mask
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated string representing the accelerator
</return>
</function>

<function name="gtk_accelerator_get_label_with_keycode">
<description>
Converts an accelerator keyval and modifier mask
into a string that can be displayed to the user.

The string may be translated.

This function is similar to [func@Gtk.accelerator_get_label],
but handling keycodes. This is only useful for system-level
components, applications should use [func@Gtk.accelerator_get_label]
instead.


</description>
<parameters>
<parameter name="display">
<parameter_description> a `GdkDisplay` or %NULL to use the default display
</parameter_description>
</parameter>
<parameter name="accelerator_key">
<parameter_description> accelerator keyval
</parameter_description>
</parameter>
<parameter name="keycode">
<parameter_description> accelerator keycode
</parameter_description>
</parameter>
<parameter name="accelerator_mods">
<parameter_description> accelerator modifier mask
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated string representing the accelerator
</return>
</function>

<function name="gtk_accelerator_name">
<description>
Converts an accelerator keyval and modifier mask into a string
parseable by gtk_accelerator_parse().

For example, if you pass in %GDK_KEY_q and %GDK_CONTROL_MASK,
this function returns `&lt;Control&gt;q`.

If you need to display accelerators in the user interface,
see [func@Gtk.accelerator_get_label].


</description>
<parameters>
<parameter name="accelerator_key">
<parameter_description> accelerator keyval
</parameter_description>
</parameter>
<parameter name="accelerator_mods">
<parameter_description> accelerator modifier mask
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated accelerator name
</return>
</function>

<function name="gtk_accelerator_name_with_keycode">
<description>
Converts an accelerator keyval and modifier mask
into a string parseable by gtk_accelerator_parse_with_keycode().

This is similar to [func@Gtk.accelerator_name] but handling keycodes.
This is only useful for system-level components, applications
should use [func@Gtk.accelerator_name] instead.


</description>
<parameters>
<parameter name="display">
<parameter_description> a `GdkDisplay` or %NULL to use the default display
</parameter_description>
</parameter>
<parameter name="accelerator_key">
<parameter_description> accelerator keyval
</parameter_description>
</parameter>
<parameter name="keycode">
<parameter_description> accelerator keycode
</parameter_description>
</parameter>
<parameter name="accelerator_mods">
<parameter_description> accelerator modifier mask
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated accelerator name.
</return>
</function>

<function name="gtk_accelerator_parse">
<description>
Parses a string representing an accelerator.

The format looks like “`&lt;Control&gt;a`” or “`&lt;Shift&gt;&lt;Alt&gt;F1`”.

The parser is fairly liberal and allows lower or upper case, and also
abbreviations such as “`&lt;Ctl&gt;`” and “`&lt;Ctrl&gt;`”.

Key names are parsed using [func@Gdk.keyval_from_name]. For character keys
the name is not the symbol, but the lowercase name, e.g. one would use
“`&lt;Ctrl&gt;minus`” instead of “`&lt;Ctrl&gt;-`”.

Modifiers are enclosed in angular brackets `&lt;&gt;`, and match the
[flags@Gdk.ModifierType] mask:

- `&lt;Shift&gt;` for `GDK_SHIFT_MASK`
- `&lt;Ctrl&gt;` for `GDK_CONTROL_MASK`
- `&lt;Alt&gt;` for `GDK_ALT_MASK`
- `&lt;Meta&gt;` for `GDK_META_MASK`
- `&lt;Super&gt;` for `GDK_SUPER_MASK`
- `&lt;Hyper&gt;` for `GDK_HYPER_MASK`

If the parse operation fails, @accelerator_key and @accelerator_mods will
be set to 0 (zero).

</description>
<parameters>
<parameter name="accelerator">
<parameter_description> string representing an accelerator
</parameter_description>
</parameter>
<parameter name="accelerator_key">
<parameter_description> return location for accelerator keyval
</parameter_description>
</parameter>
<parameter name="accelerator_mods">
<parameter_description> return location for accelerator
modifier mask
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_accelerator_parse_with_keycode">
<description>
Parses a string representing an accelerator.

This is similar to [func@Gtk.accelerator_parse] but handles keycodes as
well. This is only useful for system-level components, applications should
use [func@Gtk.accelerator_parse] instead.

If @accelerator_codes is given and the result stored in it is non-%NULL,
the result must be freed with g_free().

If a keycode is present in the accelerator and no @accelerator_codes
is given, the parse will fail.

If the parse fails, @accelerator_key, @accelerator_mods and
@accelerator_codes will be set to 0 (zero).


</description>
<parameters>
<parameter name="accelerator">
<parameter_description> string representing an accelerator
</parameter_description>
</parameter>
<parameter name="display">
<parameter_description> the `GdkDisplay` to look up @accelerator_codes in
</parameter_description>
</parameter>
<parameter name="accelerator_key">
<parameter_description> return location for accelerator keyval
</parameter_description>
</parameter>
<parameter name="accelerator_codes">
<parameter_description>
return location for accelerator keycodes
</parameter_description>
</parameter>
<parameter name="accelerator_mods">
<parameter_description> return location for accelerator
modifier mask
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if parsing succeeded
</return>
</function>

<function name="gtk_accelerator_valid">
<description>
Determines whether a given keyval and modifier mask constitute
a valid keyboard accelerator.

For example, the %GDK_KEY_a keyval plus %GDK_CONTROL_MASK mark is valid,
and matches the “Ctrl+a” accelerator. But, you can't, for instance, use
the %GDK_KEY_Control_L keyval as an accelerator.


</description>
<parameters>
<parameter name="keyval">
<parameter_description> a GDK keyval
</parameter_description>
</parameter>
<parameter name="modifiers">
<parameter_description> modifier mask
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the accelerator is valid
</return>
</function>

<function name="gtk_accessible_get_accessible_parent">
<description>
Retrieves the accessible parent for an accessible object.

This function returns `NULL` for top level widgets.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
</parameters>
<return> the accessible parent

</return>
</function>

<function name="gtk_accessible_get_accessible_role">
<description>
Retrieves the accessible role of an accessible object.


</description>
<parameters>
<parameter name="self">
<parameter_description> an accessible object
</parameter_description>
</parameter>
</parameters>
<return> the accessible role
</return>
</function>

<function name="gtk_accessible_get_at_context">
<description>
Retrieves the accessible implementation for the given `GtkAccessible`.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
</parameters>
<return> the accessible implementation object

</return>
</function>

<function name="gtk_accessible_get_bounds">
<description>
Queries the coordinates and dimensions of this accessible

This functionality can be overridden by `GtkAccessible`
implementations, e.g. to get the bounds from an ignored
child widget.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the top left corner of the accessible
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the top left corner of the widget
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the width of the accessible object
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the height of the accessible object
</parameter_description>
</parameter>
</parameters>
<return> true if the bounds are valid, and false otherwise

</return>
</function>

<function name="gtk_accessible_get_first_accessible_child">
<description>
Retrieves the first accessible child of an accessible object.

since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> an accessible object
</parameter_description>
</parameter>
</parameters>
<return> the first accessible child

</return>
</function>

<function name="gtk_accessible_get_next_accessible_sibling">
<description>
Retrieves the next accessible sibling of an accessible object

since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> an accessible object
</parameter_description>
</parameter>
</parameters>
<return> the next accessible sibling

</return>
</function>

<function name="gtk_accessible_get_platform_state">
<description>
Query a platform state, such as focus.

See gtk_accessible_platform_changed().

This functionality can be overridden by `GtkAccessible`
implementations, e.g. to get platform state from an ignored
child widget, as is the case for `GtkText` wrappers.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> platform state to query
</parameter_description>
</parameter>
</parameters>
<return> the value of @state for the accessible

</return>
</function>

<function name="gtk_accessible_property_init_value">
<description>
Initializes @value with the appropriate type for the @property.

This function is mostly meant for language bindings, in conjunction
with gtk_accessible_update_property_value().

</description>
<parameters>
<parameter name="property">
<parameter_description> a `GtkAccessibleProperty`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> an uninitialized `GValue`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_accessible_relation_init_value">
<description>
Initializes @value with the appropriate type for the @relation.

This function is mostly meant for language bindings, in conjunction
with gtk_accessible_update_relation_value().

</description>
<parameters>
<parameter name="relation">
<parameter_description> a `GtkAccessibleRelation`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> an uninitialized `GValue`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_accessible_reset_property">
<description>
Resets the accessible @property to its default value.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="property">
<parameter_description> a `GtkAccessibleProperty`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_accessible_reset_relation">
<description>
Resets the accessible @relation to its default value.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="relation">
<parameter_description> a `GtkAccessibleRelation`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_accessible_reset_state">
<description>
Resets the accessible @state to its default value.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> a `GtkAccessibleState`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_accessible_set_accessible_parent">
<description>
Sets the parent and sibling of an accessible object.

This function is meant to be used by accessible implementations that are
not part of the widget hierarchy, and but act as a logical bridge between
widgets. For instance, if a widget creates an object that holds metadata
for each child, and you want that object to implement the `GtkAccessible`
interface, you will use this function to ensure that the parent of each
child widget is the metadata object, and the parent of each metadata
object is the container widget.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> an accessible object
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent accessible object
</parameter_description>
</parameter>
<parameter name="next_sibling">
<parameter_description> the sibling accessible object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_accessible_state_init_value">
<description>
Initializes @value with the appropriate type for the @state.

This function is mostly meant for language bindings, in conjunction
with gtk_accessible_update_relation_state().

</description>
<parameters>
<parameter name="state">
<parameter_description> a `GtkAccessibleState`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> an uninitialized `GValue`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_accessible_update_next_accessible_sibling">
<description>
Updates the next accessible sibling of @self.

That might be useful when a new child of a custom `GtkAccessible`
is created, and it needs to be linked to a previous child.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="new_sibling">
<parameter_description> the new next accessible sibling to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_accessible_update_property">
<description>
Updates a list of accessible properties.

See the [enum@Gtk.AccessibleProperty] documentation for the
value types of accessible properties.

This function should be called by `GtkWidget` types whenever
an accessible property change must be communicated to assistive
technologies.

Example:
```c
value = gtk_adjustment_get_value (adjustment);
gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button),
                                   GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value,
                                   -1);
```

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="first_property">
<parameter_description> the first `GtkAccessibleProperty`
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> a list of property and value pairs, terminated by -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_accessible_update_property_value">
<description>
Updates an array of accessible properties.

This function should be called by `GtkWidget` types whenever an accessible
property change must be communicated to assistive technologies.

This function is meant to be used by language bindings.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="n_properties">
<parameter_description> the number of accessible properties to set
</parameter_description>
</parameter>
<parameter name="properties">
<parameter_description> an array of `GtkAccessibleProperty`
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> an array of `GValues`, one for each property
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_accessible_update_relation">
<description>
Updates a list of accessible relations.

This function should be called by `GtkWidget` types whenever an accessible
relation change must be communicated to assistive technologies.

If the [enum@Gtk.AccessibleRelation] requires a list of references,
you should pass each reference individually, followed by %NULL, e.g.

```c
gtk_accessible_update_relation (accessible,
GTK_ACCESSIBLE_RELATION_CONTROLS,
ref1, NULL,
GTK_ACCESSIBLE_RELATION_LABELLED_BY,
ref1, ref2, ref3, NULL,
-1);
```

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="first_relation">
<parameter_description> the first `GtkAccessibleRelation`
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> a list of relation and value pairs, terminated by -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_accessible_update_relation_value">
<description>
Updates an array of accessible relations.

This function should be called by `GtkWidget` types whenever an accessible
relation change must be communicated to assistive technologies.

This function is meant to be used by language bindings.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="n_relations">
<parameter_description> the number of accessible relations to set
</parameter_description>
</parameter>
<parameter name="relations">
<parameter_description> an array of `GtkAccessibleRelation`
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> an array of `GValues`, one for each relation
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_accessible_update_state">
<description>
Updates a list of accessible states. See the [enum@Gtk.AccessibleState]
documentation for the value types of accessible states.

This function should be called by `GtkWidget` types whenever an accessible
state change must be communicated to assistive technologies.

Example:

```c
value = GTK_ACCESSIBLE_TRISTATE_MIXED;
gtk_accessible_update_state (GTK_ACCESSIBLE (check_button),
GTK_ACCESSIBLE_STATE_CHECKED, value,
-1);
```

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="first_state">
<parameter_description> the first `GtkAccessibleState`
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> a list of state and value pairs, terminated by -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_accessible_update_state_value">
<description>
Updates an array of accessible states.

This function should be called by `GtkWidget` types whenever an accessible
state change must be communicated to assistive technologies.

This function is meant to be used by language bindings.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="n_states">
<parameter_description> the number of accessible states to set
</parameter_description>
</parameter>
<parameter name="states">
<parameter_description> an array of `GtkAccessibleState`
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> an array of `GValues`, one for each state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_action_bar_get_center_widget">
<description>
Retrieves the center bar widget of the bar.


</description>
<parameters>
<parameter name="action_bar">
<parameter_description> a `GtkActionBar`
</parameter_description>
</parameter>
</parameters>
<return> the center `GtkWidget`
</return>
</function>

<function name="gtk_action_bar_get_revealed">
<description>
Gets whether the contents of the action bar are revealed.


</description>
<parameters>
<parameter name="action_bar">
<parameter_description> a `GtkActionBar`
</parameter_description>
</parameter>
</parameters>
<return> the current value of the [property@Gtk.ActionBar:revealed]
property
</return>
</function>

<function name="gtk_action_bar_new">
<description>
Creates a new `GtkActionBar` widget.


</description>
<parameters>
</parameters>
<return> a new `GtkActionBar`
</return>
</function>

<function name="gtk_action_bar_pack_end">
<description>
Adds @child to @action_bar, packed with reference to the
end of the @action_bar.

</description>
<parameters>
<parameter name="action_bar">
<parameter_description> A `GtkActionBar`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to be added to @action_bar
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_action_bar_pack_start">
<description>
Adds @child to @action_bar, packed with reference to the
start of the @action_bar.

</description>
<parameters>
<parameter name="action_bar">
<parameter_description> A `GtkActionBar`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to be added to @action_bar
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_action_bar_remove">
<description>
Removes a child from @action_bar.

</description>
<parameters>
<parameter name="action_bar">
<parameter_description> a `GtkActionBar`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to be removed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_action_bar_set_center_widget">
<description>
Sets the center widget for the `GtkActionBar`.

</description>
<parameters>
<parameter name="action_bar">
<parameter_description> a `GtkActionBar`
</parameter_description>
</parameter>
<parameter name="center_widget">
<parameter_description> a widget to use for the center
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_action_bar_set_revealed">
<description>
Reveals or conceals the content of the action bar.

Note: this does not show or hide @action_bar in the
[property@Gtk.Widget:visible] sense, so revealing has
no effect if the action bar is hidden.

</description>
<parameters>
<parameter name="action_bar">
<parameter_description> a `GtkActionBar`
</parameter_description>
</parameter>
<parameter name="revealed">
<parameter_description> The new value of the property
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_action_observable_register_observer">
<description>
Registers @observer as being interested in changes to @action_name on
@observable.

</description>
<parameters>
<parameter name="observable">
<parameter_description> a `GtkActionObservable`
</parameter_description>
</parameter>
<parameter name="action_name">
<parameter_description> the name of the action
</parameter_description>
</parameter>
<parameter name="observer">
<parameter_description> the `GtkActionObserver` to which the events will be reported
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_action_observable_unregister_observer">
<description>
Removes the registration of @observer as being interested in changes
to @action_name on @observable.

If the observer was registered multiple times, it must be
unregistered an equal number of times.

</description>
<parameters>
<parameter name="observable">
<parameter_description> a `GtkActionObservable`
</parameter_description>
</parameter>
<parameter name="action_name">
<parameter_description> the name of the action
</parameter_description>
</parameter>
<parameter name="observer">
<parameter_description> the `GtkActionObserver` to which the events will be reported
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_actionable_get_action_name">
<description>
Gets the action name for @actionable.


</description>
<parameters>
<parameter name="actionable">
<parameter_description> a `GtkActionable` widget
</parameter_description>
</parameter>
</parameters>
<return> the action name
</return>
</function>

<function name="gtk_actionable_get_action_target_value">
<description>
Gets the current target value of @actionable.


</description>
<parameters>
<parameter name="actionable">
<parameter_description> a `GtkActionable` widget
</parameter_description>
</parameter>
</parameters>
<return> the current target value
</return>
</function>

<function name="gtk_actionable_set_action_name">
<description>
Specifies the name of the action with which this widget should be
associated.

If @action_name is %NULL then the widget will be unassociated from
any previous action.

Usually this function is used when the widget is located (or will be
located) within the hierarchy of a `GtkApplicationWindow`.

Names are of the form “win.save” or “app.quit” for actions on the
containing [class@ApplicationWindow] or its associated [class@Application],
respectively. This is the same form used for actions in the [class@Gio.Menu]
associated with the window.

</description>
<parameters>
<parameter name="actionable">
<parameter_description> a `GtkActionable` widget
</parameter_description>
</parameter>
<parameter name="action_name">
<parameter_description> an action name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_actionable_set_action_target">
<description>
Sets the target of an actionable widget.

This is a convenience function that calls [ctor@GLib.Variant.new] for
@format_string and uses the result to call
[method@Gtk.Actionable.set_action_target_value].

If you are setting a string-valued target and want to set
the action name at the same time, you can use
[method@Gtk.Actionable.set_detailed_action_name].

</description>
<parameters>
<parameter name="actionable">
<parameter_description> a `GtkActionable` widget
</parameter_description>
</parameter>
<parameter name="format_string">
<parameter_description> a [struct@GLib.Variant] format string
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments appropriate for @format_string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_actionable_set_action_target_value">
<description>
Sets the target value of an actionable widget.

If @target_value is %NULL then the target value is unset.

The target value has two purposes. First, it is used as the parameter
to activation of the action associated with the `GtkActionable` widget.
Second, it is used to determine if the widget should be rendered as
“active” — the widget is active if the state is equal to the given target.

Consider the example of associating a set of buttons with a [iface@Gio.Action]
with string state in a typical “radio button” situation. Each button
will be associated with the same action, but with a different target
value for that action. Clicking on a particular button will activate
the action with the target of that button, which will typically cause
the action’s state to change to that value. Since the action’s state
is now equal to the target value of the button, the button will now
be rendered as active (and the other buttons, with different targets,
rendered inactive).

</description>
<parameters>
<parameter name="actionable">
<parameter_description> a `GtkActionable` widget
</parameter_description>
</parameter>
<parameter name="target_value">
<parameter_description> a [struct@GLib.Variant] to set as the target value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_actionable_set_detailed_action_name">
<description>
Sets the action-name and associated string target value of an
actionable widget.

@detailed_action_name is a string in the format accepted by
[func@Gio.Action.parse_detailed_name].

</description>
<parameters>
<parameter name="actionable">
<parameter_description> a `GtkActionable` widget
</parameter_description>
</parameter>
<parameter name="detailed_action_name">
<parameter_description> the detailed action name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_activate_action_get">
<description>
Gets the activate action.

This is an action that calls gtk_widget_activate()
on the given widget upon activation.


</description>
<parameters>
</parameters>
<return> The activate action
</return>
</function>

<function name="gtk_adjustment_clamp_page">
<description>
Updates the value property to ensure that the range
between @lower and @upper is in the current page.

The current page goes from `value` to `value` + `page-size`.
If the range is larger than the page size, then only the
start of it will be in the current page.

A [signal@Gtk.Adjustment::value-changed] signal will be emitted
if the value is changed.

</description>
<parameters>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
<parameter name="lower">
<parameter_description> the lower value
</parameter_description>
</parameter>
<parameter name="upper">
<parameter_description> the upper value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_adjustment_configure">
<description>
Sets all properties of the adjustment at once.

Use this function to avoid multiple emissions of the
[signal@Gtk.Adjustment::changed] signal. See
[method@Gtk.Adjustment.set_lower] for an alternative
way of compressing multiple emissions of
[signal@Gtk.Adjustment::changed] into one.

</description>
<parameters>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the new value
</parameter_description>
</parameter>
<parameter name="lower">
<parameter_description> the new minimum value
</parameter_description>
</parameter>
<parameter name="upper">
<parameter_description> the new maximum value
</parameter_description>
</parameter>
<parameter name="step_increment">
<parameter_description> the new step increment
</parameter_description>
</parameter>
<parameter name="page_increment">
<parameter_description> the new page increment
</parameter_description>
</parameter>
<parameter name="page_size">
<parameter_description> the new page size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_adjustment_get_lower">
<description>
Retrieves the minimum value of the adjustment.


</description>
<parameters>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
</parameters>
<return> The current minimum value of the adjustment
</return>
</function>

<function name="gtk_adjustment_get_minimum_increment">
<description>
Gets the smaller of step increment and page increment.


</description>
<parameters>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
</parameters>
<return> the minimum increment of @adjustment
</return>
</function>

<function name="gtk_adjustment_get_page_increment">
<description>
Retrieves the page increment of the adjustment.


</description>
<parameters>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
</parameters>
<return> The current page increment of the adjustment
</return>
</function>

<function name="gtk_adjustment_get_page_size">
<description>
Retrieves the page size of the adjustment.


</description>
<parameters>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
</parameters>
<return> The current page size of the adjustment
</return>
</function>

<function name="gtk_adjustment_get_step_increment">
<description>
Retrieves the step increment of the adjustment.


</description>
<parameters>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
</parameters>
<return> The current step increment of the adjustment.
</return>
</function>

<function name="gtk_adjustment_get_upper">
<description>
Retrieves the maximum value of the adjustment.


</description>
<parameters>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
</parameters>
<return> The current maximum value of the adjustment
</return>
</function>

<function name="gtk_adjustment_get_value">
<description>
Gets the current value of the adjustment.


</description>
<parameters>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
</parameters>
<return> The current value of the adjustment
</return>
</function>

<function name="gtk_adjustment_new">
<description>
Creates a new `GtkAdjustment`.


</description>
<parameters>
<parameter name="value">
<parameter_description> the initial value
</parameter_description>
</parameter>
<parameter name="lower">
<parameter_description> the minimum value
</parameter_description>
</parameter>
<parameter name="upper">
<parameter_description> the maximum value
</parameter_description>
</parameter>
<parameter name="step_increment">
<parameter_description> the step increment
</parameter_description>
</parameter>
<parameter name="page_increment">
<parameter_description> the page increment
</parameter_description>
</parameter>
<parameter name="page_size">
<parameter_description> the page size
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkAdjustment`
</return>
</function>

<function name="gtk_adjustment_set_lower">
<description>
Sets the minimum value of the adjustment.

When setting multiple adjustment properties via their individual
setters, multiple [signal@Gtk.Adjustment::changed] signals will
be emitted. However, since the emission of the
[signal@Gtk.Adjustment::changed] signal is tied to the emission
of the ::notify signals of the changed properties, it’s possible
to compress the [signal@Gtk.Adjustment::changed] signals into one
by calling g_object_freeze_notify() and g_object_thaw_notify()
around the calls to the individual setters.

Alternatively, using a single g_object_set() for all the properties
to change, or using [method@Gtk.Adjustment.configure] has the same effect.

</description>
<parameters>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
<parameter name="lower">
<parameter_description> the new minimum value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_adjustment_set_page_increment">
<description>
Sets the page increment of the adjustment.

See [method@Gtk.Adjustment.set_lower] about how to compress
multiple emissions of the [signal@Gtk.Adjustment::changed]
signal when setting multiple adjustment properties.

</description>
<parameters>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
<parameter name="page_increment">
<parameter_description> the new page increment
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_adjustment_set_page_size">
<description>
Sets the page size of the adjustment.

See [method@Gtk.Adjustment.set_lower] about how to compress
multiple emissions of the [signal@Gtk.Adjustment::changed]
signal when setting multiple adjustment properties.

</description>
<parameters>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
<parameter name="page_size">
<parameter_description> the new page size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_adjustment_set_step_increment">
<description>
Sets the step increment of the adjustment.

See [method@Gtk.Adjustment.set_lower] about how to compress
multiple emissions of the [signal@Gtk.Adjustment::changed]
signal when setting multiple adjustment properties.

</description>
<parameters>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
<parameter name="step_increment">
<parameter_description> the new step increment
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_adjustment_set_upper">
<description>
Sets the maximum value of the adjustment.

Note that values will be restricted by `upper - page-size`
if the page-size property is nonzero.

See [method@Gtk.Adjustment.set_lower] about how to compress
multiple emissions of the [signal@Gtk.Adjustment::changed]
signal when setting multiple adjustment properties.

</description>
<parameters>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
<parameter name="upper">
<parameter_description> the new maximum value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_adjustment_set_value">
<description>
Sets the `GtkAdjustment` value.

The value is clamped to lie between [property@Gtk.Adjustment:lower]
and [property@Gtk.Adjustment:upper].

Note that for adjustments which are used in a `GtkScrollbar`,
the effective range of allowed values goes from
[property@Gtk.Adjustment:lower] to
[property@Gtk.Adjustment:upper] - [property@Gtk.Adjustment:page-size].

</description>
<parameters>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_alert_dialog_choose">
<description>
This function shows the alert to the user.

The @callback will be called when the alert is dismissed.
It should call [method@Gtk.AlertDialog.choose_finish]
to obtain the result.

It is ok to pass `NULL` for the callback if the alert
does not have more than one button. A simpler API for
this case is [method@Gtk.AlertDialog.show].

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAlertDialog`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_alert_dialog_choose_finish">
<description>
Finishes the [method@Gtk.AlertDialog.choose] call
and returns the index of the button that was clicked.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAlertDialog`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] error
</parameter_description>
</parameter>
</parameters>
<return> the index of the button that was clicked, or -1 if
the dialog was cancelled and [property@Gtk.AlertDialog:cancel-button]
is not set

</return>
</function>

<function name="gtk_alert_dialog_get_buttons">
<description>
Returns the button labels for the alert.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAlertDialog`
</parameter_description>
</parameter>
</parameters>
<return> the button labels

</return>
</function>

<function name="gtk_alert_dialog_get_cancel_button">
<description>
Returns the index of the cancel button.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAlertDialog`
</parameter_description>
</parameter>
</parameters>
<return> the index of the cancel button, or -1

</return>
</function>

<function name="gtk_alert_dialog_get_default_button">
<description>
Returns the index of the default button.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAlertDialog`
</parameter_description>
</parameter>
</parameters>
<return> the index of the default button, or -1

</return>
</function>

<function name="gtk_alert_dialog_get_detail">
<description>
Returns the detail text that will be shown in the alert.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAlertDialog`
</parameter_description>
</parameter>
</parameters>
<return> the detail text

</return>
</function>

<function name="gtk_alert_dialog_get_message">
<description>
Returns the message that will be shown in the alert.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAlertDialog`
</parameter_description>
</parameter>
</parameters>
<return> the message

</return>
</function>

<function name="gtk_alert_dialog_get_modal">
<description>
Returns whether the alert blocks interaction
with the parent window while it is presented.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAlertDialog`
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if the alert is modal

</return>
</function>

<function name="gtk_alert_dialog_new">
<description>
Creates a new `GtkAlertDialog` object.

The message will be set to the formatted string
resulting from the arguments.

Since: 4.10

</description>
<parameters>
<parameter name="format">
<parameter_description> printf()-style format string
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments for @format
</parameter_description>
</parameter>
</parameters>
<return> the new `GtkAlertDialog`

</return>
</function>

<function name="gtk_alert_dialog_set_buttons">
<description>
Sets the button labels for the alert.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAlertDialog`
</parameter_description>
</parameter>
<parameter name="labels">
<parameter_description> the new button labels
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_alert_dialog_set_cancel_button">
<description>
Sets the index of the cancel button.

See [property@Gtk.AlertDialog:cancel-button] for
details of how this value is used.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAlertDialog`
</parameter_description>
</parameter>
<parameter name="button">
<parameter_description> the new cancel button
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_alert_dialog_set_default_button">
<description>
Sets the index of the default button.

See [property@Gtk.AlertDialog:default-button] for
details of how this value is used.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAlertDialog`
</parameter_description>
</parameter>
<parameter name="button">
<parameter_description> the new default button
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_alert_dialog_set_detail">
<description>
Sets the detail text that will be shown in the alert.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAlertDialog`
</parameter_description>
</parameter>
<parameter name="detail">
<parameter_description> the new detail text
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_alert_dialog_set_message">
<description>
Sets the message that will be shown in the alert.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAlertDialog`
</parameter_description>
</parameter>
<parameter name="message">
<parameter_description> the new message
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_alert_dialog_set_modal">
<description>
Sets whether the alert blocks interaction
with the parent window while it is presented.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAlertDialog`
</parameter_description>
</parameter>
<parameter name="modal">
<parameter_description> the new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_alert_dialog_show">
<description>
Show the alert to the user.

This function is a simple version of [method@Gtk.AlertDialog.choose]
intended for dialogs with a single button.
If you want to cancel the dialog or if the alert has more than one button,
you should use that function instead and provide it with a #GCancellable or
callback respectively.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAlertDialog`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_alternative_trigger_get_first">
<description>
Gets the first of the two alternative triggers that may
trigger @self.

[method@Gtk.AlternativeTrigger.get_second] will return
the other one.


</description>
<parameters>
<parameter name="self">
<parameter_description> an alternative `GtkShortcutTrigger`
</parameter_description>
</parameter>
</parameters>
<return> the first alternative trigger
</return>
</function>

<function name="gtk_alternative_trigger_get_second">
<description>
Gets the second of the two alternative triggers that may
trigger @self.

[method@Gtk.AlternativeTrigger.get_first] will return
the other one.


</description>
<parameters>
<parameter name="self">
<parameter_description> an alternative `GtkShortcutTrigger`
</parameter_description>
</parameter>
</parameters>
<return> the second alternative trigger
</return>
</function>

<function name="gtk_alternative_trigger_new">
<description>
Creates a `GtkShortcutTrigger` that will trigger whenever
either of the two given triggers gets triggered.

Note that nesting is allowed, so if you want more than two
alternative, create a new alternative trigger for each option.


</description>
<parameters>
<parameter name="first">
<parameter_description> The first trigger that may trigger
</parameter_description>
</parameter>
<parameter name="second">
<parameter_description> The second trigger that may trigger
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkShortcutTrigger`
</return>
</function>

<function name="gtk_any_filter_new">
<description>
Creates a new empty &quot;any&quot; filter.

Use [method@Gtk.MultiFilter.append] to add filters to it.

This filter matches an item if any of the filters added to it
matches the item. In particular, this means that if no filter
has been added to it, the filter matches no item.


</description>
<parameters>
</parameters>
<return> a new `GtkAnyFilter`
</return>
</function>

<function name="gtk_app_chooser_button_append_custom_item">
<description>
Appends a custom item to the list of applications that is shown
in the popup.

The item name must be unique per-widget. Clients can use the
provided name as a detail for the
[signal@Gtk.AppChooserButton::custom-item-activated] signal, to add a
callback for the activation of a particular custom item in the list.

See also [method@Gtk.AppChooserButton.append_separator].

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserButton`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the custom item
</parameter_description>
</parameter>
<parameter name="label">
<parameter_description> the label for the custom item
</parameter_description>
</parameter>
<parameter name="icon">
<parameter_description> the icon for the custom item
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_app_chooser_button_append_separator">
<description>
Appends a separator to the list of applications that is shown
in the popup.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserButton`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_app_chooser_button_get_heading">
<description>
Returns the text to display at the top of the dialog.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserButton`
</parameter_description>
</parameter>
</parameters>
<return> the text to display at the top of the dialog,
or %NULL, in which case a default text is displayed

</return>
</function>

<function name="gtk_app_chooser_button_get_modal">
<description>
Gets whether the dialog is modal.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserButton`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the dialog is modal

</return>
</function>

<function name="gtk_app_chooser_button_get_show_default_item">
<description>
Returns whether the dropdown menu should show the default
application at the top.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserButton`
</parameter_description>
</parameter>
</parameters>
<return> the value of [property@Gtk.AppChooserButton:show-default-item]

</return>
</function>

<function name="gtk_app_chooser_button_get_show_dialog_item">
<description>
Returns whether the dropdown menu shows an item
for a `GtkAppChooserDialog`.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserButton`
</parameter_description>
</parameter>
</parameters>
<return> the value of [property@Gtk.AppChooserButton:show-dialog-item]

</return>
</function>

<function name="gtk_app_chooser_button_new">
<description>
Creates a new `GtkAppChooserButton` for applications
that can handle content of the given type.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="content_type">
<parameter_description> the content type to show applications for
</parameter_description>
</parameter>
</parameters>
<return> a newly created `GtkAppChooserButton`

</return>
</function>

<function name="gtk_app_chooser_button_set_active_custom_item">
<description>
Selects a custom item.

See [method@Gtk.AppChooserButton.append_custom_item].

Use [method@Gtk.AppChooser.refresh] to bring the selection
to its initial state.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserButton`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the custom item
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_app_chooser_button_set_heading">
<description>
Sets the text to display at the top of the dialog.

If the heading is not set, the dialog displays a default text.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserButton`
</parameter_description>
</parameter>
<parameter name="heading">
<parameter_description> a string containing Pango markup
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_app_chooser_button_set_modal">
<description>
Sets whether the dialog should be modal.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserButton`
</parameter_description>
</parameter>
<parameter name="modal">
<parameter_description> %TRUE to make the dialog modal
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_app_chooser_button_set_show_default_item">
<description>
Sets whether the dropdown menu of this button should show the
default application for the given content type at top.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserButton`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the new value for [property@Gtk.AppChooserButton:show-default-item]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_app_chooser_button_set_show_dialog_item">
<description>
Sets whether the dropdown menu of this button should show an
entry to trigger a `GtkAppChooserDialog`.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserButton`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the new value for [property@Gtk.AppChooserButton:show-dialog-item]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_app_chooser_dialog_get_heading">
<description>
Returns the text to display at the top of the dialog.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserDialog`
</parameter_description>
</parameter>
</parameters>
<return> the text to display at the top of the dialog,
or %NULL, in which case a default text is displayed

</return>
</function>

<function name="gtk_app_chooser_dialog_get_widget">
<description>
Returns the `GtkAppChooserWidget` of this dialog.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserDialog`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkAppChooserWidget` of @self

</return>
</function>

<function name="gtk_app_chooser_dialog_new">
<description>
Creates a new `GtkAppChooserDialog` for the provided `GFile`.

The dialog will show applications that can open the file.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="parent">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags for this dialog
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description> a `GFile`
</parameter_description>
</parameter>
</parameters>
<return> a newly created `GtkAppChooserDialog`

</return>
</function>

<function name="gtk_app_chooser_dialog_new_for_content_type">
<description>
Creates a new `GtkAppChooserDialog` for the provided content type.

The dialog will show applications that can open the content type.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="parent">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags for this dialog
</parameter_description>
</parameter>
<parameter name="content_type">
<parameter_description> a content type string
</parameter_description>
</parameter>
</parameters>
<return> a newly created `GtkAppChooserDialog`

</return>
</function>

<function name="gtk_app_chooser_dialog_set_heading">
<description>
Sets the text to display at the top of the dialog.

If the heading is not set, the dialog displays a default text.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserDialog`
</parameter_description>
</parameter>
<parameter name="heading">
<parameter_description> a string containing Pango markup
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_app_chooser_get_app_info">
<description>
Returns the currently selected application.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooser`
</parameter_description>
</parameter>
</parameters>
<return> a `GAppInfo` for the
currently selected application

</return>
</function>

<function name="gtk_app_chooser_get_content_type">
<description>
Returns the content type for which the `GtkAppChooser`
shows applications.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooser`
</parameter_description>
</parameter>
</parameters>
<return> the content type of @self. Free with g_free()

</return>
</function>

<function name="gtk_app_chooser_refresh">
<description>
Reloads the list of applications.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooser`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_app_chooser_widget_get_default_text">
<description>
Returns the text that is shown if there are not applications
that can handle the content type.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserWidget`
</parameter_description>
</parameter>
</parameters>
<return> the value of [property@Gtk.AppChooserWidget:default-text]

</return>
</function>

<function name="gtk_app_chooser_widget_get_show_all">
<description>
Gets whether the app chooser should show all applications
in a flat list.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserWidget`
</parameter_description>
</parameter>
</parameters>
<return> the value of [property@Gtk.AppChooserWidget:show-all]

</return>
</function>

<function name="gtk_app_chooser_widget_get_show_default">
<description>
Gets whether the app chooser should show the default handler
for the content type in a separate section.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserWidget`
</parameter_description>
</parameter>
</parameters>
<return> the value of [property@Gtk.AppChooserWidget:show-default]

</return>
</function>

<function name="gtk_app_chooser_widget_get_show_fallback">
<description>
Gets whether the app chooser should show related applications
for the content type in a separate section.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserWidget`
</parameter_description>
</parameter>
</parameters>
<return> the value of [property@Gtk.AppChooserWidget:show-fallback]

</return>
</function>

<function name="gtk_app_chooser_widget_get_show_other">
<description>
Gets whether the app chooser should show applications
which are unrelated to the content type.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserWidget`
</parameter_description>
</parameter>
</parameters>
<return> the value of [property@Gtk.AppChooserWidget:show-other]

</return>
</function>

<function name="gtk_app_chooser_widget_get_show_recommended">
<description>
Gets whether the app chooser should show recommended applications
for the content type in a separate section.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserWidget`
</parameter_description>
</parameter>
</parameters>
<return> the value of [property@Gtk.AppChooserWidget:show-recommended]

</return>
</function>

<function name="gtk_app_chooser_widget_new">
<description>
Creates a new `GtkAppChooserWidget` for applications
that can handle content of the given type.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="content_type">
<parameter_description> the content type to show applications for
</parameter_description>
</parameter>
</parameters>
<return> a newly created `GtkAppChooserWidget`

</return>
</function>

<function name="gtk_app_chooser_widget_set_default_text">
<description>
Sets the text that is shown if there are not applications
that can handle the content type.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserWidget`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> the new value for [property@Gtk.AppChooserWidget:default-text]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_app_chooser_widget_set_show_all">
<description>
Sets whether the app chooser should show all applications
in a flat list.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserWidget`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the new value for [property@Gtk.AppChooserWidget:show-all]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_app_chooser_widget_set_show_default">
<description>
Sets whether the app chooser should show the default handler
for the content type in a separate section.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserWidget`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the new value for [property@Gtk.AppChooserWidget:show-default]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_app_chooser_widget_set_show_fallback">
<description>
Sets whether the app chooser should show related applications
for the content type in a separate section.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserWidget`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the new value for [property@Gtk.AppChooserWidget:show-fallback]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_app_chooser_widget_set_show_other">
<description>
Sets whether the app chooser should show applications
which are unrelated to the content type.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserWidget`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the new value for [property@Gtk.AppChooserWidget:show-other]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_app_chooser_widget_set_show_recommended">
<description>
Sets whether the app chooser should show recommended applications
for the content type in a separate section.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAppChooserWidget`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the new value for [property@Gtk.AppChooserWidget:show-recommended]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_application_add_window">
<description>
Adds a window to `application`.

This call can only happen after the `application` has started;
typically, you should add new application windows in response
to the emission of the `GApplication::activate` signal.

This call is equivalent to setting the [property@Gtk.Window:application]
property of `window` to `application`.

Normally, the connection between the application and the window
will remain until the window is destroyed, but you can explicitly
remove it with [method@Gtk.Application.remove_window].

GTK will keep the `application` running as long as it has
any windows.

</description>
<parameters>
<parameter name="application">
<parameter_description> a `GtkApplication`
</parameter_description>
</parameter>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_application_get_accels_for_action">
<description>
Gets the accelerators that are currently associated with
the given action.


</description>
<parameters>
<parameter name="application">
<parameter_description> a `GtkApplication`
</parameter_description>
</parameter>
<parameter name="detailed_action_name">
<parameter_description> a detailed action name, specifying an action
and target to obtain accelerators for
</parameter_description>
</parameter>
</parameters>
<return>
accelerators for `detailed_action_name`
</return>
</function>

<function name="gtk_application_get_actions_for_accel">
<description>
Returns the list of actions (possibly empty) that `accel` maps to.

Each item in the list is a detailed action name in the usual form.

This might be useful to discover if an accel already exists in
order to prevent installation of a conflicting accelerator (from
an accelerator editor or a plugin system, for example). Note that
having more than one action per accelerator may not be a bad thing
and might make sense in cases where the actions never appear in the
same context.

In case there are no actions for a given accelerator, an empty array
is returned. `NULL` is never returned.

It is a programmer error to pass an invalid accelerator string.

If you are unsure, check it with [func@Gtk.accelerator_parse] first.


</description>
<parameters>
<parameter name="application">
<parameter_description> a `GtkApplication`
</parameter_description>
</parameter>
<parameter name="accel">
<parameter_description> an accelerator that can be parsed by [func@Gtk.accelerator_parse]
</parameter_description>
</parameter>
</parameters>
<return> a %NULL-terminated array of actions for `accel`
</return>
</function>

<function name="gtk_application_get_active_window">
<description>
Gets the “active” window for the application.

The active window is the one that was most recently focused (within
the application).  This window may not have the focus at the moment
if another application has it — this is just the most
recently-focused window within this application.


</description>
<parameters>
<parameter name="application">
<parameter_description> a `GtkApplication`
</parameter_description>
</parameter>
</parameters>
<return> the active window
</return>
</function>

<function name="gtk_application_get_menu_by_id">
<description>
Gets a menu from automatically loaded resources.

See [the section on Automatic resources](class.Application.html#automatic-resources)
for more information.


</description>
<parameters>
<parameter name="application">
<parameter_description> a `GtkApplication`
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the id of the menu to look up
</parameter_description>
</parameter>
</parameters>
<return> Gets the menu with the
given id from the automatically loaded resources
</return>
</function>

<function name="gtk_application_get_menubar">
<description>
Returns the menu model that has been set with
[method@Gtk.Application.set_menubar].


</description>
<parameters>
<parameter name="application">
<parameter_description> a `GtkApplication`
</parameter_description>
</parameter>
</parameters>
<return> the menubar for windows of `application`
</return>
</function>

<function name="gtk_application_get_window_by_id">
<description>
Returns the [class@Gtk.ApplicationWindow] with the given ID.

The ID of a `GtkApplicationWindow` can be retrieved with
[method@Gtk.ApplicationWindow.get_id].


</description>
<parameters>
<parameter name="application">
<parameter_description> a `GtkApplication`
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> an identifier number
</parameter_description>
</parameter>
</parameters>
<return> the window for the given `id`
</return>
</function>

<function name="gtk_application_get_windows">
<description>
Gets a list of the [class@Gtk.Window] instances associated with `application`.

The list is sorted by most recently focused window, such that the first
element is the currently focused window. (Useful for choosing a parent
for a transient window.)

The list that is returned should not be modified in any way. It will
only remain valid until the next focus change or window creation or
deletion.


</description>
<parameters>
<parameter name="application">
<parameter_description> a `GtkApplication`
</parameter_description>
</parameter>
</parameters>
<return> a `GList` of `GtkWindow`
instances
</return>
</function>

<function name="gtk_application_inhibit">
<description>
Inform the session manager that certain types of actions should be
inhibited.

This is not guaranteed to work on all platforms and for all types of
actions.

Applications should invoke this method when they begin an operation
that should not be interrupted, such as creating a CD or DVD. The
types of actions that may be blocked are specified by the `flags`
parameter. When the application completes the operation it should
call [method@Gtk.Application.uninhibit] to remove the inhibitor. Note
that an application can have multiple inhibitors, and all of them must
be individually removed. Inhibitors are also cleared when the
application exits.

Applications should not expect that they will always be able to block
the action. In most cases, users will be given the option to force
the action to take place.

The `reason` message should be short and to the point.

If `window` is given, the session manager may point the user to
this window to find out more about why the action is inhibited.


</description>
<parameters>
<parameter name="application">
<parameter_description> the `GtkApplication`
</parameter_description>
</parameter>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> what types of actions should be inhibited
</parameter_description>
</parameter>
<parameter name="reason">
<parameter_description> a short, human-readable string that explains
why these operations are inhibited
</parameter_description>
</parameter>
</parameters>
<return> A non-zero cookie that is used to uniquely identify this
request. It should be used as an argument to [method@Gtk.Application.uninhibit]
in order to remove the request. If the platform does not support
inhibiting or the request failed for some reason, 0 is returned.
</return>
</function>

<function name="gtk_application_list_action_descriptions">
<description>
Lists the detailed action names which have associated accelerators.

See [method@Gtk.Application.set_accels_for_action].


</description>
<parameters>
<parameter name="application">
<parameter_description> a `GtkApplication`
</parameter_description>
</parameter>
</parameters>
<return> the detailed action names
</return>
</function>

<function name="gtk_application_new">
<description>
Creates a new `GtkApplication` instance.

When using `GtkApplication`, it is not necessary to call [func@Gtk.init]
manually. It is called as soon as the application gets registered as
the primary instance.

Concretely, [func@Gtk.init] is called in the default handler for the
`GApplication::startup` signal. Therefore, `GtkApplication` subclasses should
always chain up in their `GApplication::startup` handler before using any GTK
API.

Note that commandline arguments are not passed to [func@Gtk.init].

If `application_id` is not %NULL, then it must be valid. See
`g_application_id_is_valid()`.

If no application ID is given then some features (most notably application
uniqueness) will be disabled.


</description>
<parameters>
<parameter name="application_id">
<parameter_description> The application ID
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> the application flags
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkApplication` instance
</return>
</function>

<function name="gtk_application_remove_window">
<description>
Remove a window from `application`.

If `window` belongs to `application` then this call is equivalent to
setting the [property@Gtk.Window:application] property of `window` to
`NULL`.

The application may stop running as a result of a call to this
function, if `window` was the last window of the `application`.

</description>
<parameters>
<parameter name="application">
<parameter_description> a `GtkApplication`
</parameter_description>
</parameter>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_application_set_accels_for_action">
<description>
Sets zero or more keyboard accelerators that will trigger the
given action.

The first item in `accels` will be the primary accelerator, which may be
displayed in the UI.

To remove all accelerators for an action, use an empty, zero-terminated
array for `accels`.

For the `detailed_action_name`, see `g_action_parse_detailed_name()` and
`g_action_print_detailed_name()`.

</description>
<parameters>
<parameter name="application">
<parameter_description> a `GtkApplication`
</parameter_description>
</parameter>
<parameter name="detailed_action_name">
<parameter_description> a detailed action name, specifying an action
and target to associate accelerators with
</parameter_description>
</parameter>
<parameter name="accels">
<parameter_description> a list of accelerators in the format
understood by [func@Gtk.accelerator_parse]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_application_set_menubar">
<description>
Sets or unsets the menubar for windows of `application`.

This is a menubar in the traditional sense.

This can only be done in the primary instance of the application,
after it has been registered. `GApplication::startup` is a good place
to call this.

Depending on the desktop environment, this may appear at the top of
each window, or at the top of the screen.  In some environments, if
both the application menu and the menubar are set, the application
menu will be presented as if it were the first item of the menubar.
Other environments treat the two as completely separate — for example,
the application menu may be rendered by the desktop shell while the
menubar (if set) remains in each individual window.

Use the base `GActionMap` interface to add actions, to respond to the
user selecting these menu items.

</description>
<parameters>
<parameter name="application">
<parameter_description> a `GtkApplication`
</parameter_description>
</parameter>
<parameter name="menubar">
<parameter_description> a `GMenuModel`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_application_uninhibit">
<description>
Removes an inhibitor that has been previously established.

See [method@Gtk.Application.inhibit].

Inhibitors are also cleared when the application exits.

</description>
<parameters>
<parameter name="application">
<parameter_description> the `GtkApplication`
</parameter_description>
</parameter>
<parameter name="cookie">
<parameter_description> a cookie that was returned by [method@Gtk.Application.inhibit]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_application_window_get_help_overlay">
<description>
Gets the `GtkShortcutsWindow` that is associated with @window.

See [method@Gtk.ApplicationWindow.set_help_overlay].


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkApplicationWindow`
</parameter_description>
</parameter>
</parameters>
<return> the help overlay associated
with @window
</return>
</function>

<function name="gtk_application_window_get_id">
<description>
Returns the unique ID of the window.

If the window has not yet been added to a `GtkApplication`, returns `0`.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkApplicationWindow`
</parameter_description>
</parameter>
</parameters>
<return> the unique ID for @window, or `0` if the window
has not yet been added to a `GtkApplication`
</return>
</function>

<function name="gtk_application_window_get_show_menubar">
<description>
Returns whether the window will display a menubar for the app menu
and menubar as needed.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkApplicationWindow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @window will display a menubar when needed
</return>
</function>

<function name="gtk_application_window_new">
<description>
Creates a new `GtkApplicationWindow`.


</description>
<parameters>
<parameter name="application">
<parameter_description> a `GtkApplication`
</parameter_description>
</parameter>
</parameters>
<return> a newly created `GtkApplicationWindow`
</return>
</function>

<function name="gtk_application_window_set_help_overlay">
<description>
Associates a shortcuts window with the application window.

Additionally, sets up an action with the name
`win.show-help-overlay` to present it.

@window takes responsibility for destroying @help_overlay.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkApplicationWindow`
</parameter_description>
</parameter>
<parameter name="help_overlay">
<parameter_description> a `GtkShortcutsWindow`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_application_window_set_show_menubar">
<description>
Sets whether the window will display a menubar for the app menu
and menubar as needed.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkApplicationWindow`
</parameter_description>
</parameter>
<parameter name="show_menubar">
<parameter_description> whether to show a menubar when needed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_aspect_frame_get_child">
<description>
Gets the child widget of @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAspectFrame`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @self
</return>
</function>

<function name="gtk_aspect_frame_get_obey_child">
<description>
Returns whether the child's size request should override
the set aspect ratio of the `GtkAspectFrame`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAspectFrame`
</parameter_description>
</parameter>
</parameters>
<return> whether to obey the child's size request
</return>
</function>

<function name="gtk_aspect_frame_get_ratio">
<description>
Returns the desired aspect ratio of the child.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAspectFrame`
</parameter_description>
</parameter>
</parameters>
<return> the desired aspect ratio
</return>
</function>

<function name="gtk_aspect_frame_get_xalign">
<description>
Returns the horizontal alignment of the child within the
allocation of the `GtkAspectFrame`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAspectFrame`
</parameter_description>
</parameter>
</parameters>
<return> the horizontal alignment
</return>
</function>

<function name="gtk_aspect_frame_get_yalign">
<description>
Returns the vertical alignment of the child within the
allocation of the `GtkAspectFrame`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAspectFrame`
</parameter_description>
</parameter>
</parameters>
<return> the vertical alignment
</return>
</function>

<function name="gtk_aspect_frame_new">
<description>
Create a new `GtkAspectFrame`.


</description>
<parameters>
<parameter name="xalign">
<parameter_description> Horizontal alignment of the child within the parent.
Ranges from 0.0 (left aligned) to 1.0 (right aligned)
</parameter_description>
</parameter>
<parameter name="yalign">
<parameter_description> Vertical alignment of the child within the parent.
Ranges from 0.0 (top aligned) to 1.0 (bottom aligned)
</parameter_description>
</parameter>
<parameter name="ratio">
<parameter_description> The desired aspect ratio.
</parameter_description>
</parameter>
<parameter name="obey_child">
<parameter_description> If %TRUE, @ratio is ignored, and the aspect
ratio is taken from the requistion of the child.
</parameter_description>
</parameter>
</parameters>
<return> the new `GtkAspectFrame`.
</return>
</function>

<function name="gtk_aspect_frame_set_child">
<description>
Sets the child widget of @self.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAspectFrame`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_aspect_frame_set_obey_child">
<description>
Sets whether the aspect ratio of the child's size
request should override the set aspect ratio of
the `GtkAspectFrame`.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAspectFrame`
</parameter_description>
</parameter>
<parameter name="obey_child">
<parameter_description> If %TRUE, @ratio is ignored, and the aspect
ratio is taken from the requisition of the child.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_aspect_frame_set_ratio">
<description>
Sets the desired aspect ratio of the child.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAspectFrame`
</parameter_description>
</parameter>
<parameter name="ratio">
<parameter_description> aspect ratio of the child
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_aspect_frame_set_xalign">
<description>
Sets the horizontal alignment of the child within the allocation
of the `GtkAspectFrame`.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAspectFrame`
</parameter_description>
</parameter>
<parameter name="xalign">
<parameter_description> horizontal alignment, from 0.0 (left aligned) to 1.0 (right aligned)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_aspect_frame_set_yalign">
<description>
Sets the vertical alignment of the child within the allocation
of the `GtkAspectFrame`.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkAspectFrame`
</parameter_description>
</parameter>
<parameter name="yalign">
<parameter_description> horizontal alignment, from 0.0 (top aligned) to 1.0 (bottom aligned)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_assistant_add_action_widget">
<description>
Adds a widget to the action area of a `GtkAssistant`.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_assistant_append_page">
<description>
Appends a page to the @assistant.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="page">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the index (starting at 0) of the inserted page

</return>
</function>

<function name="gtk_assistant_commit">
<description>
Erases the visited page history.

GTK will then hide the back button on the current page,
and removes the cancel button from subsequent pages.

Use this when the information provided up to the current
page is hereafter deemed permanent and cannot be modified
or undone. For example, showing a progress page to track
a long-running, unreversible operation after the user has
clicked apply on a confirmation page.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_assistant_get_current_page">
<description>
Returns the page number of the current page.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
</parameters>
<return> The index (starting from 0) of the current
page in the @assistant, or -1 if the @assistant has no pages,
or no current page

</return>
</function>

<function name="gtk_assistant_get_n_pages">
<description>
Returns the number of pages in the @assistant

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
</parameters>
<return> the number of pages in the @assistant

</return>
</function>

<function name="gtk_assistant_get_nth_page">
<description>
Returns the child widget contained in page number @page_num.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="page_num">
<parameter_description> the index of a page in the @assistant,
or -1 to get the last page
</parameter_description>
</parameter>
</parameters>
<return> the child widget, or %NULL
if @page_num is out of bounds

</return>
</function>

<function name="gtk_assistant_get_page">
<description>
Returns the `GtkAssistantPage` object for @child.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child of @assistant
</parameter_description>
</parameter>
</parameters>
<return> the `GtkAssistantPage` for @child

</return>
</function>

<function name="gtk_assistant_get_page_complete">
<description>
Gets whether @page is complete.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="page">
<parameter_description> a page of @assistant
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @page is complete.

</return>
</function>

<function name="gtk_assistant_get_page_title">
<description>
Gets the title for @page.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="page">
<parameter_description> a page of @assistant
</parameter_description>
</parameter>
</parameters>
<return> the title for @page

</return>
</function>

<function name="gtk_assistant_get_page_type">
<description>
Gets the page type of @page.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="page">
<parameter_description> a page of @assistant
</parameter_description>
</parameter>
</parameters>
<return> the page type of @page

</return>
</function>

<function name="gtk_assistant_get_pages">
<description>
Gets a list model of the assistant pages.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
</parameters>
<return> A list model of the pages.

</return>
</function>

<function name="gtk_assistant_insert_page">
<description>
Inserts a page in the @assistant at a given position.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="page">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the index (starting at 0) at which to insert the page,
or -1 to append the page to the @assistant
</parameter_description>
</parameter>
</parameters>
<return> the index (starting from 0) of the inserted page

</return>
</function>

<function name="gtk_assistant_new">
<description>
Creates a new `GtkAssistant`.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
</parameters>
<return> a newly created `GtkAssistant`

</return>
</function>

<function name="gtk_assistant_next_page">
<description>
Navigate to the next page.

It is a programming error to call this function when
there is no next page.

This function is for use when creating pages of the
%GTK_ASSISTANT_PAGE_CUSTOM type.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_assistant_page_get_child">
<description>
Returns the child to which @page belongs.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="page">
<parameter_description> a `GtkAssistantPage`
</parameter_description>
</parameter>
</parameters>
<return> the child to which @page belongs

</return>
</function>

<function name="gtk_assistant_prepend_page">
<description>
Prepends a page to the @assistant.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="page">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the index (starting at 0) of the inserted page

</return>
</function>

<function name="gtk_assistant_previous_page">
<description>
Navigate to the previous visited page.

It is a programming error to call this function when
no previous page is available.

This function is for use when creating pages of the
%GTK_ASSISTANT_PAGE_CUSTOM type.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_assistant_remove_action_widget">
<description>
Removes a widget from the action area of a `GtkAssistant`.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_assistant_remove_page">
<description>
Removes the @page_num’s page from @assistant.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="page_num">
<parameter_description> the index of a page in the @assistant,
or -1 to remove the last page
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_assistant_set_current_page">
<description>
Switches the page to @page_num.

Note that this will only be necessary in custom buttons,
as the @assistant flow can be set with
gtk_assistant_set_forward_page_func().

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="page_num">
<parameter_description> index of the page to switch to, starting from 0.
If negative, the last page will be used. If greater
than the number of pages in the @assistant, nothing
will be done.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_assistant_set_forward_page_func">
<description>
Sets the page forwarding function to be @page_func.

This function will be used to determine what will be
the next page when the user presses the forward button.
Setting @page_func to %NULL will make the assistant to
use the default forward function, which just goes to the
next visible page.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="page_func">
<parameter_description> the `GtkAssistantPageFunc`, or %NULL
to use the default one
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> user data for @page_func
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> destroy notifier for @data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_assistant_set_page_complete">
<description>
Sets whether @page contents are complete.

This will make @assistant update the buttons state
to be able to continue the task.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="page">
<parameter_description> a page of @assistant
</parameter_description>
</parameter>
<parameter name="complete">
<parameter_description> the completeness status of the page
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_assistant_set_page_title">
<description>
Sets a title for @page.

The title is displayed in the header area of the assistant
when @page is the current page.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="page">
<parameter_description> a page of @assistant
</parameter_description>
</parameter>
<parameter name="title">
<parameter_description> the new title for @page
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_assistant_set_page_type">
<description>
Sets the page type for @page.

The page type determines the page behavior in the @assistant.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
<parameter name="page">
<parameter_description> a page of @assistant
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the new type for @page
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_assistant_update_buttons_state">
<description>
Forces @assistant to recompute the buttons state.

GTK automatically takes care of this in most situations,
e.g. when the user goes to a different page, or when the
visibility or completeness of a page changes.

One situation where it can be necessary to call this
function is when changing a value on the current page
affects the future page flow of the assistant.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="assistant">
<parameter_description> a `GtkAssistant`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_at_context_create">
<description>
Creates a new `GtkATContext` instance for the given accessible role,
accessible instance, and display connection.

The `GtkATContext` implementation being instantiated will depend on the
platform.


</description>
<parameters>
<parameter name="accessible_role">
<parameter_description> the accessible role used by the `GtkATContext`
</parameter_description>
</parameter>
<parameter name="accessible">
<parameter_description> the `GtkAccessible` implementation using the `GtkATContext`
</parameter_description>
</parameter>
<parameter name="display">
<parameter_description> the `GdkDisplay` used by the `GtkATContext`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkATContext`
</return>
</function>

<function name="gtk_at_context_get_accessible">
<description>
Retrieves the `GtkAccessible` using this context.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkATContext`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkAccessible`
</return>
</function>

<function name="gtk_at_context_get_accessible_role">
<description>
Retrieves the accessible role of this context.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkATContext`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkAccessibleRole`
</return>
</function>

<function name="gtk_bin_layout_new">
<description>
Creates a new `GtkBinLayout` instance.


</description>
<parameters>
</parameters>
<return> the newly created `GtkBinLayout`
</return>
</function>

<function name="gtk_bitset_add">
<description>
Adds @value to @self if it wasn't part of it before.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> value to add
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @value was not part of @self and @self
was changed
</return>
</function>

<function name="gtk_bitset_add_range">
<description>
Adds all values from @start (inclusive) to @start + @n_items
(exclusive) in @self.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> first value to add
</parameter_description>
</parameter>
<parameter name="n_items">
<parameter_description> number of consecutive values to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bitset_add_range_closed">
<description>
Adds the closed range [@first, @last], so @first, @last and all
values in between. @first must be smaller than @last.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="first">
<parameter_description> first value to add
</parameter_description>
</parameter>
<parameter name="last">
<parameter_description> last value to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bitset_add_rectangle">
<description>
Interprets the values as a 2-dimensional boolean grid with the given @stride
and inside that grid, adds a rectangle with the given @width and @height.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> first value to add
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> width of the rectangle
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> height of the rectangle
</parameter_description>
</parameter>
<parameter name="stride">
<parameter_description> row stride of the grid
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bitset_contains">
<description>
Checks if the given @value has been added to @self


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value to check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @self contains @value
</return>
</function>

<function name="gtk_bitset_copy">
<description>
Creates a copy of @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
</parameters>
<return> A new bitset that contains the same
values as @self
</return>
</function>

<function name="gtk_bitset_difference">
<description>
Sets @self to be the symmetric difference of @self and @other.

The symmetric difference is set @self to contain all values that
were either contained in @self or in @other, but not in both.
This operation is also called an XOR.

It is allowed for @self and @other to be the same bitset. The bitset
will be emptied in that case.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="other">
<parameter_description> the `GtkBitset` to compute the difference from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bitset_equals">
<description>
Returns %TRUE if @self and @other contain the same values.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="other">
<parameter_description> another `GtkBitset`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @self and @other contain the same values
</return>
</function>

<function name="gtk_bitset_get_maximum">
<description>
Returns the largest value in @self.

If @self is empty, 0 is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
</parameters>
<return> The largest value in @self
</return>
</function>

<function name="gtk_bitset_get_minimum">
<description>
Returns the smallest value in @self.

If @self is empty, `G_MAXUINT` is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
</parameters>
<return> The smallest value in @self
</return>
</function>

<function name="gtk_bitset_get_nth">
<description>
Returns the value of the @nth item in self.

If @nth is &gt;= the size of @self, 0 is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="nth">
<parameter_description> index of the item to get
</parameter_description>
</parameter>
</parameters>
<return> the value of the @nth item in @self
</return>
</function>

<function name="gtk_bitset_get_size">
<description>
Gets the number of values that were added to the set.

For example, if the set is empty, 0 is returned.

Note that this function returns a `guint64`, because when all
values are set, the return value is `G_MAXUINT + 1`. Unless you
are sure this cannot happen (it can't with `GListModel`), be sure
to use a 64bit type.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
</parameters>
<return> The number of values in the set.
</return>
</function>

<function name="gtk_bitset_get_size_in_range">
<description>
Gets the number of values that are part of the set from @first to @last
(inclusive).

Note that this function returns a `guint64`, because when all values are
set, the return value is `G_MAXUINT + 1`. Unless you are sure this cannot
happen (it can't with `GListModel`), be sure to use a 64bit type.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="first">
<parameter_description> the first element to include
</parameter_description>
</parameter>
<parameter name="last">
<parameter_description> the last element to include
</parameter_description>
</parameter>
</parameters>
<return> The number of values in the set from @first to @last.
</return>
</function>

<function name="gtk_bitset_intersect">
<description>
Sets @self to be the intersection of @self and @other.

In other words, remove all values from @self that are not part of @other.

It is allowed for @self and @other to be the same bitset. Nothing will
happen in that case.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="other">
<parameter_description> the `GtkBitset` to intersect with
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bitset_is_empty">
<description>
Check if no value is contained in bitset.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @self is empty
</return>
</function>

<function name="gtk_bitset_iter_get_value">
<description>
Gets the current value that @iter points to.

If @iter is not valid and [method@Gtk.BitsetIter.is_valid]
returns %FALSE, this function returns 0.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkBitsetIter`
</parameter_description>
</parameter>
</parameters>
<return> The current value pointer to by @iter
</return>
</function>

<function name="gtk_bitset_iter_init_at">
<description>
Initializes @iter to point to @target.

If @target is not found, finds the next value after it.
If no value &gt;= @target exists in @set, this function returns %FALSE.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a pointer to an uninitialized `GtkBitsetIter`
</parameter_description>
</parameter>
<parameter name="set">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="target">
<parameter_description> target value to start iterating at
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> Set to the found value in @set
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a value was found.
</return>
</function>

<function name="gtk_bitset_iter_init_first">
<description>
Initializes an iterator for @set and points it to the first
value in @set.

If @set is empty, %FALSE is returned and @value is set to %G_MAXUINT.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a pointer to an uninitialized `GtkBitsetIter`
</parameter_description>
</parameter>
<parameter name="set">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> Set to the first value in @set
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @set isn't empty.
</return>
</function>

<function name="gtk_bitset_iter_init_last">
<description>
Initializes an iterator for @set and points it to the last
value in @set.

If @set is empty, %FALSE is returned.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a pointer to an uninitialized `GtkBitsetIter`
</parameter_description>
</parameter>
<parameter name="set">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> Set to the last value in @set
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @set isn't empty.
</return>
</function>

<function name="gtk_bitset_iter_is_valid">
<description>
Checks if @iter points to a valid value.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkBitsetIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter points to a valid value
</return>
</function>

<function name="gtk_bitset_iter_next">
<description>
Moves @iter to the next value in the set.

If it was already pointing to the last value in the set,
%FALSE is returned and @iter is invalidated.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a pointer to a valid `GtkBitsetIter`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> Set to the next value
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a next value existed
</return>
</function>

<function name="gtk_bitset_iter_previous">
<description>
Moves @iter to the previous value in the set.

If it was already pointing to the first value in the set,
%FALSE is returned and @iter is invalidated.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a pointer to a valid `GtkBitsetIter`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> Set to the previous value
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a previous value existed
</return>
</function>

<function name="gtk_bitset_new_empty">
<description>
Creates a new empty bitset.


</description>
<parameters>
</parameters>
<return> A new empty bitset
</return>
</function>

<function name="gtk_bitset_new_range">
<description>
Creates a bitset with the given range set.


</description>
<parameters>
<parameter name="start">
<parameter_description> first value to add
</parameter_description>
</parameter>
<parameter name="n_items">
<parameter_description> number of consecutive values to add
</parameter_description>
</parameter>
</parameters>
<return> A new bitset
</return>
</function>

<function name="gtk_bitset_ref">
<description>
Acquires a reference on the given `GtkBitset`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkBitset` with an additional reference
</return>
</function>

<function name="gtk_bitset_remove">
<description>
Removes @value from @self if it was part of it before.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> value to remove
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @value was part of @self and @self
was changed
</return>
</function>

<function name="gtk_bitset_remove_all">
<description>
Removes all values from the bitset so that it is empty again.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bitset_remove_range">
<description>
Removes all values from @start (inclusive) to @start + @n_items (exclusive)
in @self.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> first value to remove
</parameter_description>
</parameter>
<parameter name="n_items">
<parameter_description> number of consecutive values to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bitset_remove_range_closed">
<description>
Removes the closed range [@first, @last], so @first, @last and all
values in between. @first must be smaller than @last.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="first">
<parameter_description> first value to remove
</parameter_description>
</parameter>
<parameter name="last">
<parameter_description> last value to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bitset_remove_rectangle">
<description>
Interprets the values as a 2-dimensional boolean grid with the given @stride
and inside that grid, removes a rectangle with the given @width and @height.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> first value to remove
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> width of the rectangle
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> height of the rectangle
</parameter_description>
</parameter>
<parameter name="stride">
<parameter_description> row stride of the grid
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bitset_shift_left">
<description>
Shifts all values in @self to the left by @amount.

Values smaller than @amount are discarded.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="amount">
<parameter_description> amount to shift all values to the left
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bitset_shift_right">
<description>
Shifts all values in @self to the right by @amount.

Values that end up too large to be held in a #guint are discarded.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="amount">
<parameter_description> amount to shift all values to the right
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bitset_splice">
<description>
This is a support function for `GListModel` handling, by mirroring
the `GlistModel::items-changed` signal.

First, it &quot;cuts&quot; the values from @position to @removed from
the bitset. That is, it removes all those values and shifts
all larger values to the left by @removed places.

Then, it &quot;pastes&quot; new room into the bitset by shifting all values
larger than @position by @added spaces to the right. This frees
up space that can then be filled.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position at which to slice
</parameter_description>
</parameter>
<parameter name="removed">
<parameter_description> number of values to remove
</parameter_description>
</parameter>
<parameter name="added">
<parameter_description> number of values to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bitset_subtract">
<description>
Sets @self to be the subtraction of @other from @self.

In other words, remove all values from @self that are part of @other.

It is allowed for @self and @other to be the same bitset. The bitset
will be emptied in that case.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="other">
<parameter_description> the `GtkBitset` to subtract
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bitset_union">
<description>
Sets @self to be the union of @self and @other.

That is, add all values from @other into @self that weren't part of it.

It is allowed for @self and @other to be the same bitset. Nothing will
happen in that case.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
<parameter name="other">
<parameter_description> the `GtkBitset` to union with
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bitset_unref">
<description>
Releases a reference on the given `GtkBitset`.

If the reference was the last, the resources associated to the @self are
freed.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBitset`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bookmark_list_get_attributes">
<description>
Gets the attributes queried on the children.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBookmarkList`
</parameter_description>
</parameter>
</parameters>
<return> The queried attributes
</return>
</function>

<function name="gtk_bookmark_list_get_filename">
<description>
Returns the filename of the bookmark file that
this list is loading.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBookmarkList`
</parameter_description>
</parameter>
</parameters>
<return> the filename of the .xbel file
</return>
</function>

<function name="gtk_bookmark_list_get_io_priority">
<description>
Gets the IO priority to use while loading file.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBookmarkList`
</parameter_description>
</parameter>
</parameters>
<return> The IO priority.
</return>
</function>

<function name="gtk_bookmark_list_is_loading">
<description>
Returns %TRUE if the files are currently being loaded.

Files will be added to @self from time to time while loading is
going on. The order in which are added is undefined and may change
in between runs.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBookmarkList`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @self is loading
</return>
</function>

<function name="gtk_bookmark_list_new">
<description>
Creates a new `GtkBookmarkList` with the given @attributes.


</description>
<parameters>
<parameter name="filename">
<parameter_description> The bookmark file to load
</parameter_description>
</parameter>
<parameter name="attributes">
<parameter_description> The attributes to query
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkBookmarkList`
</return>
</function>

<function name="gtk_bookmark_list_set_attributes">
<description>
Sets the @attributes to be enumerated and starts the enumeration.

If @attributes is %NULL, no attributes will be queried, but a list
of `GFileInfo`s will still be created.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBookmarkList`
</parameter_description>
</parameter>
<parameter name="attributes">
<parameter_description> the attributes to enumerate
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bookmark_list_set_io_priority">
<description>
Sets the IO priority to use while loading files.

The default IO priority is %G_PRIORITY_DEFAULT.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBookmarkList`
</parameter_description>
</parameter>
<parameter name="io_priority">
<parameter_description> IO priority to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bool_filter_get_expression">
<description>
Gets the expression that the filter uses to evaluate if
an item should be filtered.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBoolFilter`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkExpression`
</return>
</function>

<function name="gtk_bool_filter_get_invert">
<description>
Returns whether the filter inverts the expression.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBoolFilter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the filter inverts
</return>
</function>

<function name="gtk_bool_filter_new">
<description>
Creates a new bool filter.


</description>
<parameters>
<parameter name="expression">
<parameter_description> The expression to evaluate
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkBoolFilter`
</return>
</function>

<function name="gtk_bool_filter_set_expression">
<description>
Sets the expression that the filter uses to check if items
should be filtered.

The expression must have a value type of %G_TYPE_BOOLEAN.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBoolFilter`
</parameter_description>
</parameter>
<parameter name="expression">
<parameter_description> a `GtkExpression`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_bool_filter_set_invert">
<description>
Sets whether the filter should invert the expression.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBoolFilter`
</parameter_description>
</parameter>
<parameter name="invert">
<parameter_description> %TRUE to invert
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_border_copy">
<description>
Copies a `GtkBorder`.


</description>
<parameters>
<parameter name="border_">
<parameter_description> a `GtkBorder` struct
</parameter_description>
</parameter>
</parameters>
<return> a copy of @border_.
</return>
</function>

<function name="gtk_border_free">
<description>
Frees a `GtkBorder`.

</description>
<parameters>
<parameter name="border_">
<parameter_description> a `GtkBorder` struct
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_border_new">
<description>
Allocates a new `GtkBorder` struct and initializes its elements to zero.


</description>
<parameters>
</parameters>
<return> a newly allocated `GtkBorder` struct.
Free with [method@Gtk.Border.free]
</return>
</function>

<function name="gtk_box_append">
<description>
Adds @child as the last child to @box.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkBox`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to append
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_box_get_baseline_child">
<description>
Gets the value set by gtk_box_set_baseline_child().

Since: 4.12

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkBox`
</parameter_description>
</parameter>
</parameters>
<return> the baseline child

</return>
</function>

<function name="gtk_box_get_baseline_position">
<description>
Gets the value set by gtk_box_set_baseline_position().


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkBox`
</parameter_description>
</parameter>
</parameters>
<return> the baseline position
</return>
</function>

<function name="gtk_box_get_homogeneous">
<description>
Returns whether the box is homogeneous (all children are the
same size).


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkBox`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the box is homogeneous.
</return>
</function>

<function name="gtk_box_get_spacing">
<description>
Gets the value set by gtk_box_set_spacing().


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkBox`
</parameter_description>
</parameter>
</parameters>
<return> spacing between children
</return>
</function>

<function name="gtk_box_insert_child_after">
<description>
Inserts @child in the position after @sibling in the list
of @box children.

If @sibling is %NULL, insert @child at the first position.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkBox`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to insert
</parameter_description>
</parameter>
<parameter name="sibling">
<parameter_description> the sibling after which to insert @child
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_box_layout_get_baseline_child">
<description>
Gets the value set by gtk_box_layout_set_baseline_child().

Since: 4.12

</description>
<parameters>
<parameter name="box_layout">
<parameter_description> a `GtkBoxLayout`
</parameter_description>
</parameter>
</parameters>
<return> the index of the child that determines the baseline
in vertical layout, or -1

</return>
</function>

<function name="gtk_box_layout_get_baseline_position">
<description>
Gets the value set by gtk_box_layout_set_baseline_position().


</description>
<parameters>
<parameter name="box_layout">
<parameter_description> a `GtkBoxLayout`
</parameter_description>
</parameter>
</parameters>
<return> the baseline position
</return>
</function>

<function name="gtk_box_layout_get_homogeneous">
<description>
Returns whether the layout is set to be homogeneous.

Return: %TRUE if the layout is homogeneous

</description>
<parameters>
<parameter name="box_layout">
<parameter_description> a `GtkBoxLayout`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_box_layout_get_spacing">
<description>
Returns the space that @box_layout puts between children.


</description>
<parameters>
<parameter name="box_layout">
<parameter_description> a `GtkBoxLayout`
</parameter_description>
</parameter>
</parameters>
<return> the spacing of the layout
</return>
</function>

<function name="gtk_box_layout_new">
<description>
Creates a new `GtkBoxLayout`.


</description>
<parameters>
<parameter name="orientation">
<parameter_description> the orientation for the new layout
</parameter_description>
</parameter>
</parameters>
<return> a new box layout
</return>
</function>

<function name="gtk_box_layout_set_baseline_child">
<description>
Sets the index of the child that determines the baseline
in vertical layout.

Since: 4.12

</description>
<parameters>
<parameter name="box_layout">
<parameter_description> a `GtkBoxLayout`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child position, or -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_box_layout_set_baseline_position">
<description>
Sets the baseline position of a box layout.

The baseline position affects only horizontal boxes with at least one
baseline aligned child. If there is more vertical space available than
requested, and the baseline is not allocated by the parent then the
given @position is used to allocate the baseline within the extra
space available.

</description>
<parameters>
<parameter name="box_layout">
<parameter_description> a `GtkBoxLayout`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> a `GtkBaselinePosition`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_box_layout_set_homogeneous">
<description>
Sets whether the box layout will allocate the same
size to all children.

</description>
<parameters>
<parameter name="box_layout">
<parameter_description> a `GtkBoxLayout`
</parameter_description>
</parameter>
<parameter name="homogeneous">
<parameter_description> %TRUE to set the box layout as homogeneous
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_box_layout_set_spacing">
<description>
Sets how much spacing to put between children.

</description>
<parameters>
<parameter name="box_layout">
<parameter_description> a `GtkBoxLayout`
</parameter_description>
</parameter>
<parameter name="spacing">
<parameter_description> the spacing to apply between children
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_box_new">
<description>
Creates a new `GtkBox`.


</description>
<parameters>
<parameter name="orientation">
<parameter_description> the box’s orientation
</parameter_description>
</parameter>
<parameter name="spacing">
<parameter_description> the number of pixels to place by default between children
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkBox`.
</return>
</function>

<function name="gtk_box_prepend">
<description>
Adds @child as the first child to @box.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkBox`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to prepend
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_box_remove">
<description>
Removes a child widget from @box.

The child must have been added before with
[method@Gtk.Box.append], [method@Gtk.Box.prepend], or
[method@Gtk.Box.insert_child_after].

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkBox`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_box_reorder_child_after">
<description>
Moves @child to the position after @sibling in the list
of @box children.

If @sibling is %NULL, move @child to the first position.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkBox`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to move, must be a child of @box
</parameter_description>
</parameter>
<parameter name="sibling">
<parameter_description> the sibling to move @child after
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_box_set_baseline_child">
<description>
Sets the baseline child of a box.

This affects only vertical boxes.

Since: 4.12

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkBox`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child, or -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_box_set_baseline_position">
<description>
Sets the baseline position of a box.

This affects only horizontal boxes with at least one baseline
aligned child. If there is more vertical space available than
requested, and the baseline is not allocated by the parent then
@position is used to allocate the baseline with respect to the
extra space available.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkBox`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> a `GtkBaselinePosition`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_box_set_homogeneous">
<description>
Sets whether or not all children of @box are given equal space
in the box.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkBox`
</parameter_description>
</parameter>
<parameter name="homogeneous">
<parameter_description> a boolean value, %TRUE to create equal allotments,
%FALSE for variable allotments
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_box_set_spacing">
<description>
Sets the number of pixels to place between children of @box.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkBox`
</parameter_description>
</parameter>
<parameter name="spacing">
<parameter_description> the number of pixels to put between children
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_buildable_get_buildable_id">
<description>
Gets the ID of the @buildable object.

`GtkBuilder` sets the name based on the ID attribute
of the `&lt;object&gt;` tag used to construct the @buildable.


</description>
<parameters>
<parameter name="buildable">
<parameter_description> a `GtkBuildable`
</parameter_description>
</parameter>
</parameters>
<return> the ID of the buildable object
</return>
</function>

<function name="gtk_buildable_parse_context_get_element">
<description>
Retrieves the name of the currently open element.

If called from the start_element or end_element handlers this will
give the element_name as passed to those functions. For the parent
elements, see gtk_buildable_parse_context_get_element_stack().


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkBuildablParseContext`
</parameter_description>
</parameter>
</parameters>
<return> the name of the currently open element
</return>
</function>

<function name="gtk_buildable_parse_context_get_element_stack">
<description>
Retrieves the element stack from the internal state of the parser.

The returned `GPtrArray` is an array of strings where the last item is
the currently open tag (as would be returned by
gtk_buildable_parse_context_get_element()) and the previous item is its
immediate parent.

This function is intended to be used in the start_element and
end_element handlers where gtk_buildable_parse_context_get_element()
would merely return the name of the element that is being
processed.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkBuildableParseContext`
</parameter_description>
</parameter>
</parameters>
<return> the element stack, which must not be modified
</return>
</function>

<function name="gtk_buildable_parse_context_get_position">
<description>
Retrieves the current line number and the number of the character on
that line. Intended for use in error messages; there are no strict
semantics for what constitutes the &quot;current&quot; line number other than
&quot;the best number we could come up with for error messages.&quot;

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkBuildableParseContext`
</parameter_description>
</parameter>
<parameter name="line_number">
<parameter_description> return location for a line number
</parameter_description>
</parameter>
<parameter name="char_number">
<parameter_description> return location for a char-on-line number
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_buildable_parse_context_pop">
<description>
Completes the process of a temporary sub-parser redirection.

This function exists to collect the user_data allocated by a
matching call to gtk_buildable_parse_context_push(). It must be called
in the end_element handler corresponding to the start_element
handler during which gtk_buildable_parse_context_push() was called.
You must not call this function from the error callback -- the
@user_data is provided directly to the callback in that case.

This function is not intended to be directly called by users
interested in invoking subparsers. Instead, it is intended to
be used by the subparsers themselves to implement a higher-level
interface.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkBuildableParseContext`
</parameter_description>
</parameter>
</parameters>
<return> the user data passed to gtk_buildable_parse_context_push()
</return>
</function>

<function name="gtk_buildable_parse_context_push">
<description>
Temporarily redirects markup data to a sub-parser.

This function may only be called from the start_element handler of
a `GtkBuildableParser`. It must be matched with a corresponding call to
gtk_buildable_parse_context_pop() in the matching end_element handler
(except in the case that the parser aborts due to an error).

All tags, text and other data between the matching tags is
redirected to the subparser given by @parser. @user_data is used
as the user_data for that parser. @user_data is also passed to the
error callback in the event that an error occurs. This includes
errors that occur in subparsers of the subparser.

The end tag matching the start tag for which this call was made is
handled by the previous parser (which is given its own user_data)
which is why gtk_buildable_parse_context_pop() is provided to allow &quot;one
last access&quot; to the @user_data provided to this function. In the
case of error, the @user_data provided here is passed directly to
the error callback of the subparser and gtk_buildable_parse_context_pop()
should not be called. In either case, if @user_data was allocated
then it ought to be freed from both of these locations.

This function is not intended to be directly called by users
interested in invoking subparsers. Instead, it is intended to be
used by the subparsers themselves to implement a higher-level
interface.

For an example of how to use this, see g_markup_parse_context_push() which
has the same kind of API.

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkBuildableParseContext`
</parameter_description>
</parameter>
<parameter name="parser">
<parameter_description> a `GtkBuildableParser`
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data to pass to `GtkBuildableParser` functions
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_builder_add_from_file">
<description>
Parses a file containing a UI definition and merges it with
the current contents of @builder.

This function is useful if you need to call
[method@Gtk.Builder.set_current_object]) to add user data to
callbacks before loading GtkBuilder UI. Otherwise, you probably
want [ctor@Gtk.Builder.new_from_file] instead.

If an error occurs, 0 will be returned and @error will be assigned a
`GError` from the `GTK_BUILDER_ERROR`, `G_MARKUP_ERROR` or `G_FILE_ERROR`
domains.

It’s not really reasonable to attempt to handle failures of this
call. You should not use this function with untrusted files (ie:
files that are not part of your application). Broken `GtkBuilder`
files can easily crash your program, and it’s possible that memory
was leaked leading up to the reported failure. The only reasonable
thing to do when an error is detected is to call `g_error()`.


</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
<parameter name="filename">
<parameter_description> the name of the file to parse
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success, %FALSE if an error occurred
</return>
</function>

<function name="gtk_builder_add_from_resource">
<description>
Parses a resource file containing a UI definition
and merges it with the current contents of @builder.

This function is useful if you need to call
[method@Gtk.Builder.set_current_object] to add user data to
callbacks before loading GtkBuilder UI. Otherwise, you probably
want [ctor@Gtk.Builder.new_from_resource] instead.

If an error occurs, 0 will be returned and @error will be assigned a
`GError` from the %GTK_BUILDER_ERROR, %G_MARKUP_ERROR or %G_RESOURCE_ERROR
domain.

It’s not really reasonable to attempt to handle failures of this
call.  The only reasonable thing to do when an error is detected is
to call g_error().


</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
<parameter name="resource_path">
<parameter_description> the path of the resource file to parse
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success, %FALSE if an error occurred
</return>
</function>

<function name="gtk_builder_add_from_string">
<description>
Parses a string containing a UI definition and merges it
with the current contents of @builder.

This function is useful if you need to call
[method@Gtk.Builder.set_current_object] to add user data to
callbacks before loading `GtkBuilder` UI. Otherwise, you probably
want [ctor@Gtk.Builder.new_from_string] instead.

Upon errors %FALSE will be returned and @error will be assigned a
`GError` from the %GTK_BUILDER_ERROR, %G_MARKUP_ERROR or
%G_VARIANT_PARSE_ERROR domain.

It’s not really reasonable to attempt to handle failures of this
call.  The only reasonable thing to do when an error is detected is
to call g_error().


</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> the string to parse
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> the length of @buffer (may be -1 if @buffer is nul-terminated)
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success, %FALSE if an error occurred
</return>
</function>

<function name="gtk_builder_add_objects_from_file">
<description>
Parses a file containing a UI definition building only the
requested objects and merges them with the current contents
of @builder.

Upon errors, 0 will be returned and @error will be assigned a
`GError` from the %GTK_BUILDER_ERROR, %G_MARKUP_ERROR or %G_FILE_ERROR
domain.

If you are adding an object that depends on an object that is not
its child (for instance a `GtkTreeView` that depends on its
`GtkTreeModel`), you have to explicitly list all of them in @object_ids.


</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
<parameter name="filename">
<parameter_description> the name of the file to parse
</parameter_description>
</parameter>
<parameter name="object_ids">
<parameter_description> nul-terminated array of objects to build
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success, %FALSE if an error occurred
</return>
</function>

<function name="gtk_builder_add_objects_from_resource">
<description>
Parses a resource file containing a UI definition, building
only the requested objects and merges them with the current
contents of @builder.

Upon errors, 0 will be returned and @error will be assigned a
`GError` from the %GTK_BUILDER_ERROR, %G_MARKUP_ERROR or %G_RESOURCE_ERROR
domain.

If you are adding an object that depends on an object that is not
its child (for instance a `GtkTreeView` that depends on its
`GtkTreeModel`), you have to explicitly list all of them in @object_ids.


</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
<parameter name="resource_path">
<parameter_description> the path of the resource file to parse
</parameter_description>
</parameter>
<parameter name="object_ids">
<parameter_description> nul-terminated array of objects to build
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success, %FALSE if an error occurred
</return>
</function>

<function name="gtk_builder_add_objects_from_string">
<description>
Parses a string containing a UI definition, building only the
requested objects and merges them with the current contents of
@builder.

Upon errors %FALSE will be returned and @error will be assigned a
`GError` from the %GTK_BUILDER_ERROR or %G_MARKUP_ERROR domain.

If you are adding an object that depends on an object that is not
its child (for instance a `GtkTreeView` that depends on its
`GtkTreeModel`), you have to explicitly list all of them in @object_ids.


</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> the string to parse
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> the length of @buffer (may be -1 if @buffer is nul-terminated)
</parameter_description>
</parameter>
<parameter name="object_ids">
<parameter_description> nul-terminated array of objects to build
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success, %FALSE if an error occurred
</return>
</function>

<function name="gtk_builder_create_closure">
<description>
Creates a closure to invoke the function called @function_name.

This is using the create_closure() implementation of @builder's
[iface@Gtk.BuilderScope].

If no closure could be created, %NULL will be returned and @error
will be set.


</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
<parameter name="function_name">
<parameter_description> name of the function to look up
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> closure creation flags
</parameter_description>
</parameter>
<parameter name="object">
<parameter_description> Object to create the closure with
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> A new closure for invoking @function_name
</return>
</function>

<function name="gtk_builder_cscope_add_callback">
<description>
Adds the @callback_symbol to the scope of @builder under its
own name.

This is a convenience wrapper of [method@Gtk.BuilderCScope.add_callback_symbol].

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBuilderCScope`
</parameter_description>
</parameter>
<parameter name="callback_symbols">
<parameter_description> The callback pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_builder_cscope_add_callback_symbol">
<description>
Adds the @callback_symbol to the scope of @builder under the
given @callback_name.

Using this function overrides the behavior of
[method@Gtk.Builder.create_closure] for any callback symbols that
are added. Using this method allows for better encapsulation as it
does not require that callback symbols be declared in the global
namespace.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBuilderCScope`
</parameter_description>
</parameter>
<parameter name="callback_name">
<parameter_description> The name of the callback, as expected in the XML
</parameter_description>
</parameter>
<parameter name="callback_symbol">
<parameter_description> The callback pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_builder_cscope_add_callback_symbols">
<description>
A convenience function to add many callbacks.

This is equivalent to calling [method@Gtk.BuilderCScope.add_callback_symbol]
for each symbol.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBuilderCScope`
</parameter_description>
</parameter>
<parameter name="first_callback_name">
<parameter_description> The name of the callback, as expected in the XML
</parameter_description>
</parameter>
<parameter name="first_callback_symbol">
<parameter_description> The callback pointer
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> A list of callback name and callback symbol pairs terminated with %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_builder_cscope_lookup_callback_symbol">
<description>
Fetches a symbol previously added with
gtk_builder_cscope_add_callback_symbol().


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBuilderCScope`
</parameter_description>
</parameter>
<parameter name="callback_name">
<parameter_description> The name of the callback
</parameter_description>
</parameter>
</parameters>
<return> The callback symbol
in @builder for @callback_name
</return>
</function>

<function name="gtk_builder_cscope_new">
<description>
Creates a new `GtkBuilderCScope` object to use with future
`GtkBuilder` instances.

Calling this function is only necessary if you want to add
custom callbacks via [method@Gtk.BuilderCScope.add_callback_symbol].


</description>
<parameters>
</parameters>
<return> a new `GtkBuilderCScope`
</return>
</function>

<function name="gtk_builder_expose_object">
<description>
Add @object to the @builder object pool so it can be
referenced just like any other object built by builder.

Only a single object may be added using @name. However,
it is not an error to expose the same object under multiple
names. `gtk_builder_get_object()` may be used to determine
if an object has already been added with @name.

</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the object exposed to the builder
</parameter_description>
</parameter>
<parameter name="object">
<parameter_description> the object to expose
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_builder_extend_with_template">
<description>
Main private entry point for building composite components
from template XML.

Most likely you do not need to call this function in applications as
templates are handled by `GtkWidget`.


</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
<parameter name="object">
<parameter_description> the object that is being extended
</parameter_description>
</parameter>
<parameter name="template_type">
<parameter_description> the type that the template is for
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> the string to parse
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> the length of @buffer (may be -1 if @buffer is nul-terminated)
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> A positive value on success, 0 if an error occurred
</return>
</function>

<function name="gtk_builder_get_current_object">
<description>
Gets the current object set via gtk_builder_set_current_object().


</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
</parameters>
<return> the current object
</return>
</function>

<function name="gtk_builder_get_object">
<description>
Gets the object named @name.

Note that this function does not increment the reference count
of the returned object.


</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name of object to get
</parameter_description>
</parameter>
</parameters>
<return> the object named @name
</return>
</function>

<function name="gtk_builder_get_objects">
<description>
Gets all objects that have been constructed by @builder.

Note that this function does not increment the reference
counts of the returned objects.


</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
</parameters>
<return> a
newly-allocated `GSList` containing all the objects
constructed by the `GtkBuilder instance`. It should be
freed by g_slist_free()
</return>
</function>

<function name="gtk_builder_get_scope">
<description>
Gets the scope in use that was set via gtk_builder_set_scope().


</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
</parameters>
<return> the current scope
</return>
</function>

<function name="gtk_builder_get_translation_domain">
<description>
Gets the translation domain of @builder.


</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
</parameters>
<return> the translation domain
</return>
</function>

<function name="gtk_builder_get_type_from_name">
<description>
Looks up a type by name.

This is using the virtual function that `GtkBuilder` has
for that purpose. This is mainly used when implementing
the `GtkBuildable` interface on a type.


</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
<parameter name="type_name">
<parameter_description> type name to lookup
</parameter_description>
</parameter>
</parameters>
<return> the `GType` found for @type_name or %G_TYPE_INVALID
if no type was found
</return>
</function>

<function name="gtk_builder_list_item_factory_get_bytes">
<description>
Gets the data used as the `GtkBuilder` UI template for constructing
listitems.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBuilderListItemFactory`
</parameter_description>
</parameter>
</parameters>
<return> The `GtkBuilder` data
</return>
</function>

<function name="gtk_builder_list_item_factory_get_resource">
<description>
If the data references a resource, gets the path of that resource.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBuilderListItemFactory`
</parameter_description>
</parameter>
</parameters>
<return> The path to the resource
</return>
</function>

<function name="gtk_builder_list_item_factory_get_scope">
<description>
Gets the scope used when constructing listitems.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkBuilderListItemFactory`
</parameter_description>
</parameter>
</parameters>
<return> The scope used when constructing listitems
</return>
</function>

<function name="gtk_builder_list_item_factory_new_from_bytes">
<description>
Creates a new `GtkBuilderListItemFactory` that instantiates widgets
using @bytes as the data to pass to `GtkBuilder`.


</description>
<parameters>
<parameter name="scope">
<parameter_description> A scope to use when instantiating
</parameter_description>
</parameter>
<parameter name="bytes">
<parameter_description> the `GBytes` containing the ui file to instantiate
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkBuilderListItemFactory`
</return>
</function>

<function name="gtk_builder_list_item_factory_new_from_resource">
<description>
Creates a new `GtkBuilderListItemFactory` that instantiates widgets
using data read from the given @resource_path to pass to `GtkBuilder`.


</description>
<parameters>
<parameter name="scope">
<parameter_description> A scope to use when instantiating
</parameter_description>
</parameter>
<parameter name="resource_path">
<parameter_description> valid path to a resource that contains the data
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkBuilderListItemFactory`
</return>
</function>

<function name="gtk_builder_new">
<description>
Creates a new empty builder object.

This function is only useful if you intend to make multiple calls
to [method@Gtk.Builder.add_from_file], [method@Gtk.Builder.add_from_resource]
or [method@Gtk.Builder.add_from_string] in order to merge multiple UI
descriptions into a single builder.


</description>
<parameters>
</parameters>
<return> a new (empty) `GtkBuilder` object
</return>
</function>

<function name="gtk_builder_new_from_file">
<description>
Parses the UI definition in the file @filename.

If there is an error opening the file or parsing the description then
the program will be aborted. You should only ever attempt to parse
user interface descriptions that are shipped as part of your program.


</description>
<parameters>
<parameter name="filename">
<parameter_description> filename of user interface description file
</parameter_description>
</parameter>
</parameters>
<return> a `GtkBuilder` containing the described interface
</return>
</function>

<function name="gtk_builder_new_from_resource">
<description>
Parses the UI definition at @resource_path.

If there is an error locating the resource or parsing the
description, then the program will be aborted.


</description>
<parameters>
<parameter name="resource_path">
<parameter_description> a `GResource` resource path
</parameter_description>
</parameter>
</parameters>
<return> a `GtkBuilder` containing the described interface
</return>
</function>

<function name="gtk_builder_new_from_string">
<description>
Parses the UI definition in @string.

If @string is %NULL-terminated, then @length should be -1.
If @length is not -1, then it is the length of @string.

If there is an error parsing @string then the program will be
aborted. You should not attempt to parse user interface description
from untrusted sources.


</description>
<parameters>
<parameter name="string">
<parameter_description> a user interface (XML) description
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> the length of @string, or -1
</parameter_description>
</parameter>
</parameters>
<return> a `GtkBuilder` containing the interface described by @string
</return>
</function>

<function name="gtk_builder_set_current_object">
<description>
Sets the current object for the @builder.

The current object can be thought of as the `this` object that the
builder is working for and will often be used as the default object
when an object is optional.

[method@Gtk.Widget.init_template] for example will set the current
object to the widget the template is inited for. For functions like
[ctor@Gtk.Builder.new_from_resource], the current object will be %NULL.

</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
<parameter name="current_object">
<parameter_description> the new current object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_builder_set_scope">
<description>
Sets the scope the builder should operate in.

If @scope is %NULL, a new [class@Gtk.BuilderCScope] will be created.

</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
<parameter name="scope">
<parameter_description> the scope to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_builder_set_translation_domain">
<description>
Sets the translation domain of @builder.

</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
<parameter name="domain">
<parameter_description> the translation domain
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_builder_value_from_string">
<description>
Demarshals a value from a string.

This function calls g_value_init() on the @value argument,
so it need not be initialised beforehand.

Can handle char, uchar, boolean, int, uint, long,
ulong, enum, flags, float, double, string, `GdkRGBA` and
`GtkAdjustment` type values.

Upon errors %FALSE will be returned and @error will be
assigned a `GError` from the %GTK_BUILDER_ERROR domain.


</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
<parameter name="pspec">
<parameter_description> the `GParamSpec` for the property
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> the string representation of the value
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the `GValue` to store the result in
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success
</return>
</function>

<function name="gtk_builder_value_from_string_type">
<description>
Demarshals a value from a string.

Unlike [method@Gtk.Builder.value_from_string], this function
takes a `GType` instead of `GParamSpec`.

Calls g_value_init() on the @value argument, so it
need not be initialised beforehand.

Upon errors %FALSE will be returned and @error will be
assigned a `GError` from the %GTK_BUILDER_ERROR domain.


</description>
<parameters>
<parameter name="builder">
<parameter_description> a `GtkBuilder`
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the `GType` of the value
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> the string representation of the value
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the `GValue` to store the result in
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success
</return>
</function>

<function name="gtk_button_get_can_shrink">
<description>
Retrieves whether the button can be smaller than the natural
size of its contents.

Since: 4.12

</description>
<parameters>
<parameter name="button">
<parameter_description> a button
</parameter_description>
</parameter>
</parameters>
<return> true if the button can shrink, and false otherwise

</return>
</function>

<function name="gtk_button_get_child">
<description>
Gets the child widget of @button.


</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkButton`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @button
</return>
</function>

<function name="gtk_button_get_has_frame">
<description>
Returns whether the button has a frame.


</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkButton`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the button has a frame
</return>
</function>

<function name="gtk_button_get_icon_name">
<description>
Returns the icon name of the button.

If the icon name has not been set with [method@Gtk.Button.set_icon_name]
the return value will be %NULL. This will be the case if you create
an empty button with [ctor@Gtk.Button.new] to use as a container.


</description>
<parameters>
<parameter name="button">
<parameter_description> A `GtkButton`
</parameter_description>
</parameter>
</parameters>
<return> The icon name set via [method@Gtk.Button.set_icon_name]
</return>
</function>

<function name="gtk_button_get_label">
<description>
Fetches the text from the label of the button.

If the label text has not been set with [method@Gtk.Button.set_label]
the return value will be %NULL. This will be the case if you create
an empty button with [ctor@Gtk.Button.new] to use as a container.


</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkButton`
</parameter_description>
</parameter>
</parameters>
<return> The text of the label widget. This string is owned
by the widget and must not be modified or freed.
</return>
</function>

<function name="gtk_button_get_use_underline">
<description>
gets whether underlines are interpreted as mnemonics.

See [method@Gtk.Button.set_use_underline].


</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkButton`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if an embedded underline in the button label
indicates the mnemonic accelerator keys.
</return>
</function>

<function name="gtk_button_new">
<description>
Creates a new `GtkButton` widget.

To add a child widget to the button, use [method@Gtk.Button.set_child].


</description>
<parameters>
</parameters>
<return> The newly created `GtkButton` widget.
</return>
</function>

<function name="gtk_button_new_from_icon_name">
<description>
Creates a new button containing an icon from the current icon theme.

If the icon name isn’t known, a “broken image” icon will be
displayed instead. If the current icon theme is changed, the icon
will be updated appropriately.


</description>
<parameters>
<parameter name="icon_name">
<parameter_description> an icon name
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkButton` displaying the themed icon
</return>
</function>

<function name="gtk_button_new_with_label">
<description>
Creates a `GtkButton` widget with a `GtkLabel` child.


</description>
<parameters>
<parameter name="label">
<parameter_description> The text you want the `GtkLabel` to hold
</parameter_description>
</parameter>
</parameters>
<return> The newly created `GtkButton` widget
</return>
</function>

<function name="gtk_button_new_with_mnemonic">
<description>
Creates a new `GtkButton` containing a label.

If characters in @label are preceded by an underscore, they are underlined.
If you need a literal underscore character in a label, use “__” (two
underscores). The first underlined character represents a keyboard
accelerator called a mnemonic. Pressing &lt;kbd&gt;Alt&lt;/kbd&gt; and that key
activates the button.


</description>
<parameters>
<parameter name="label">
<parameter_description> The text of the button, with an underscore in front of the
mnemonic character
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkButton`
</return>
</function>

<function name="gtk_button_set_can_shrink">
<description>
Sets whether the button size can be smaller than the natural size of
its contents.

For text buttons, setting @can_shrink to true will ellipsize the label.

For icons and custom children, this function has no effect.

Since: 4.12

</description>
<parameters>
<parameter name="button">
<parameter_description> a button
</parameter_description>
</parameter>
<parameter name="can_shrink">
<parameter_description> whether the button can shrink
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_button_set_child">
<description>
Sets the child widget of @button.

Note that by using this API, you take full responsibility for setting
up the proper accessibility label and description information for @button.
Most likely, you'll either set the accessibility label or description
for @button explicitly, or you'll set a labelled-by or described-by
relations from @child to @button.

</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkButton`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_button_set_has_frame">
<description>
Sets the style of the button.

Buttons can have a flat appearance or have a frame drawn around them.

</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkButton`
</parameter_description>
</parameter>
<parameter name="has_frame">
<parameter_description> whether the button should have a visible frame
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_button_set_icon_name">
<description>
Adds a `GtkImage` with the given icon name as a child.

If @button already contains a child widget, that child widget will
be removed and replaced with the image.

</description>
<parameters>
<parameter name="button">
<parameter_description> A `GtkButton`
</parameter_description>
</parameter>
<parameter name="icon_name">
<parameter_description> An icon name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_button_set_label">
<description>
Sets the text of the label of the button to @label.

This will also clear any previously set labels.

</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkButton`
</parameter_description>
</parameter>
<parameter name="label">
<parameter_description> a string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_button_set_use_underline">
<description>
Sets whether to use underlines as mnemonics.

If true, an underline in the text of the button label indicates
the next character should be used for the mnemonic accelerator key.

</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkButton`
</parameter_description>
</parameter>
<parameter name="use_underline">
<parameter_description> %TRUE if underlines in the text indicate mnemonics
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_calendar_clear_marks">
<description>
Remove all visual markers.

</description>
<parameters>
<parameter name="calendar">
<parameter_description> a `GtkCalendar`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_calendar_get_date">
<description>
Returns a `GDateTime` representing the shown
year, month and the selected day.

The returned date is in the local time zone.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCalendar`
</parameter_description>
</parameter>
</parameters>
<return> the `GDate` representing the shown date
</return>
</function>

<function name="gtk_calendar_get_day_is_marked">
<description>
Returns if the @day of the @calendar is already marked.


</description>
<parameters>
<parameter name="calendar">
<parameter_description> a `GtkCalendar`
</parameter_description>
</parameter>
<parameter name="day">
<parameter_description> the day number between 1 and 31.
</parameter_description>
</parameter>
</parameters>
<return> whether the day is marked.
</return>
</function>

<function name="gtk_calendar_get_show_day_names">
<description>
Returns whether @self is currently showing the names
of the week days.

This is the value of the [property@Gtk.Calendar:show-day-names]
property.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCalendar`
</parameter_description>
</parameter>
</parameters>
<return> Whether the calendar shows day names.
</return>
</function>

<function name="gtk_calendar_get_show_heading">
<description>
Returns whether @self is currently showing the heading.

This is the value of the [property@Gtk.Calendar:show-heading]
property.

Return: Whether the calendar is showing a heading.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCalendar`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_calendar_get_show_week_numbers">
<description>
Returns whether @self is showing week numbers right
now.

This is the value of the [property@Gtk.Calendar:show-week-numbers]
property.

Return: Whether the calendar is showing week numbers.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCalendar`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_calendar_mark_day">
<description>
Places a visual marker on a particular day of the current month.

</description>
<parameters>
<parameter name="calendar">
<parameter_description> a `GtkCalendar`
</parameter_description>
</parameter>
<parameter name="day">
<parameter_description> the day number to mark between 1 and 31.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_calendar_new">
<description>
Creates a new calendar, with the current date being selected.


</description>
<parameters>
</parameters>
<return> a newly `GtkCalendar` widget
</return>
</function>

<function name="gtk_calendar_select_day">
<description>
Switches to @date's year and month and select its day.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCalendar`.
</parameter_description>
</parameter>
<parameter name="date">
<parameter_description> a `GDateTime` representing the day to select
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_calendar_set_show_day_names">
<description>
Sets whether the calendar shows day names.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCalendar`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> Whether to show day names above the day numbers
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_calendar_set_show_heading">
<description>
Sets whether the calendar should show a heading.

The heading contains the current year and month as well as
buttons for changing both.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCalendar`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> Whether to show the heading in the calendar
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_calendar_set_show_week_numbers">
<description>
Sets whether week numbers are shown in the calendar.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCalendar`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> whether to show week numbers on the left of the days
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_calendar_unmark_day">
<description>
Removes the visual marker from a particular day.

</description>
<parameters>
<parameter name="calendar">
<parameter_description> a `GtkCalendar`.
</parameter_description>
</parameter>
<parameter name="day">
<parameter_description> the day number to unmark between 1 and 31.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_callback_action_new">
<description>
Create a custom action that calls the given @callback when
activated.


</description>
<parameters>
<parameter name="callback">
<parameter_description> the callback to call
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the data to be passed to @callback
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> the function to be called when the
callback action is finalized
</parameter_description>
</parameter>
</parameters>
<return> A new shortcut action
</return>
</function>

<function name="gtk_cclosure_expression_new">
<description>
Creates a `GtkExpression` that calls `callback_func` when it is evaluated.

This function is a variant of [ctor@Gtk.ClosureExpression.new] that
creates a `GClosure` by calling g_cclosure_new() with the given
`callback_func`, `user_data` and `user_destroy`.


</description>
<parameters>
<parameter name="value_type">
<parameter_description> the type of the value that this expression evaluates to
</parameter_description>
</parameter>
<parameter name="marshal">
<parameter_description> marshaller used for creating a closure
</parameter_description>
</parameter>
<parameter name="n_params">
<parameter_description> the number of params needed for evaluating @closure
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> expressions for each parameter
</parameter_description>
</parameter>
<parameter name="callback_func">
<parameter_description> callback used for creating a closure
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data used for creating a closure
</parameter_description>
</parameter>
<parameter name="user_destroy">
<parameter_description> destroy notify for @user_data
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkExpression`
</return>
</function>

<function name="gtk_cell_area_activate">
<description>
Activates @area, usually by activating the currently focused
cell, however some subclasses which embed widgets in the area
can also activate a widget if it currently has the focus.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkCellArea`Context in context with the current row data
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` that @area is rendering on
</parameter_description>
</parameter>
<parameter name="cell_area">
<parameter_description> the size and location of @area relative to @widget’s allocation
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> the `GtkCellRenderer`State flags for @area for this row of data.
</parameter_description>
</parameter>
<parameter name="edit_only">
<parameter_description> if %TRUE then only cell renderers that are %GTK_CELL_RENDERER_MODE_EDITABLE
will be activated.
</parameter_description>
</parameter>
</parameters>
<return> Whether @area was successfully activated.

</return>
</function>

<function name="gtk_cell_area_activate_cell">
<description>
This is used by `GtkCellArea` subclasses when handling events
to activate cells, the base `GtkCellArea` class activates cells
for keyboard events for free in its own GtkCellArea-&gt;activate()
implementation.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` that @area is rendering onto
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` in @area to activate
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> the `GdkEvent` for which cell activation should occur
</parameter_description>
</parameter>
<parameter name="cell_area">
<parameter_description> the `GdkRectangle` in @widget relative coordinates
of @renderer for the current row.
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> the `GtkCellRenderer`State for @renderer
</parameter_description>
</parameter>
</parameters>
<return> whether cell activation was successful

</return>
</function>

<function name="gtk_cell_area_add">
<description>
Adds @renderer to @area with the default child cell properties.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` to add to @area
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_add_focus_sibling">
<description>
Adds @sibling to @renderer’s focusable area, focus will be drawn
around @renderer and all of its siblings if @renderer can
focus for a given row.

Events handled by focus siblings can also activate the given
focusable @renderer.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` expected to have focus
</parameter_description>
</parameter>
<parameter name="sibling">
<parameter_description> the `GtkCellRenderer` to add to @renderer’s focus area
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_add_with_properties">
<description>
Adds @renderer to @area, setting cell properties at the same time.
See gtk_cell_area_add() and gtk_cell_area_cell_set() for more details.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> a `GtkCellRenderer` to be placed inside @area
</parameter_description>
</parameter>
<parameter name="first_prop_name">
<parameter_description> the name of the first cell property to set
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> a %NULL-terminated list of property names and values, starting
with @first_prop_name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_apply_attributes">
<description>
Applies any connected attributes to the renderers in
@area by pulling the values from @tree_model.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="tree_model">
<parameter_description> the `GtkTreeModel` to pull values from
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the `GtkTreeIter` in @tree_model to apply values for
</parameter_description>
</parameter>
<parameter name="is_expander">
<parameter_description> whether @iter has children
</parameter_description>
</parameter>
<parameter name="is_expanded">
<parameter_description> whether @iter is expanded in the view and
children are visible
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_attribute_connect">
<description>
Connects an @attribute to apply values from @column for the
`GtkTreeModel` in use.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` to connect an attribute for
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> the attribute name
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> the `GtkTreeModel` column to fetch attribute values from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_attribute_disconnect">
<description>
Disconnects @attribute for the @renderer in @area so that
attribute will no longer be updated with values from the
model.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` to disconnect an attribute for
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> the attribute name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_attribute_get_column">
<description>
Returns the model column that an attribute has been mapped to,
or -1 if the attribute is not mapped.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> an attribute on the renderer
</parameter_description>
</parameter>
</parameters>
<return> the model column, or -1

</return>
</function>

<function name="gtk_cell_area_box_get_spacing">
<description>
Gets the spacing added between cell renderers.

Deprecated: 4.10

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkCellAreaBox`
</parameter_description>
</parameter>
</parameters>
<return> the space added between cell renderers in @box.

</return>
</function>

<function name="gtk_cell_area_box_new">
<description>
Creates a new `GtkCellAreaBox`.

Deprecated: 4.10

</description>
<parameters>
</parameters>
<return> a newly created `GtkCellAreaBox`

</return>
</function>

<function name="gtk_cell_area_box_pack_end">
<description>
Adds @renderer to @box, packed with reference to the end of @box.

The @renderer is packed after (away from end of) any other
`GtkCellRenderer` packed with reference to the end of @box.

Deprecated: 4.10

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkCellAreaBox`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` to add
</parameter_description>
</parameter>
<parameter name="expand">
<parameter_description> whether @renderer should receive extra space when the area receives
more than its natural size
</parameter_description>
</parameter>
<parameter name="align">
<parameter_description> whether @renderer should be aligned in adjacent rows
</parameter_description>
</parameter>
<parameter name="fixed">
<parameter_description> whether @renderer should have the same size in all rows
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_box_pack_start">
<description>
Adds @renderer to @box, packed with reference to the start of @box.

The @renderer is packed after any other `GtkCellRenderer` packed
with reference to the start of @box.

Deprecated: 4.10

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkCellAreaBox`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` to add
</parameter_description>
</parameter>
<parameter name="expand">
<parameter_description> whether @renderer should receive extra space when the area receives
more than its natural size
</parameter_description>
</parameter>
<parameter name="align">
<parameter_description> whether @renderer should be aligned in adjacent rows
</parameter_description>
</parameter>
<parameter name="fixed">
<parameter_description> whether @renderer should have the same size in all rows
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_box_set_spacing">
<description>
Sets the spacing to add between cell renderers in @box.

Deprecated: 4.10

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkCellAreaBox`
</parameter_description>
</parameter>
<parameter name="spacing">
<parameter_description> the space to add between `GtkCellRenderer`s
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_cell_get">
<description>
Gets the values of one or more cell properties for @renderer in @area.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> a `GtkCellRenderer` which is inside @area
</parameter_description>
</parameter>
<parameter name="first_prop_name">
<parameter_description> the name of the first cell property to get
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> return location for the first cell property, followed
optionally by more name/return location pairs, followed by %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_cell_get_property">
<description>
Gets the value of a cell property for @renderer in @area.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> a `GtkCellRenderer` inside @area
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> the name of the property to get
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a location to return the value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_cell_get_valist">
<description>
Gets the values of one or more cell properties for @renderer in @area.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> a `GtkCellRenderer` inside @area
</parameter_description>
</parameter>
<parameter name="first_property_name">
<parameter_description> the name of the first property to get
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> return location for the first property, followed
optionally by more name/return location pairs, followed by %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_cell_set">
<description>
Sets one or more cell properties for @cell in @area.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> a `GtkCellRenderer` which is a cell inside @area
</parameter_description>
</parameter>
<parameter name="first_prop_name">
<parameter_description> the name of the first cell property to set
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> a %NULL-terminated list of property names and values, starting
with @first_prop_name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_cell_set_property">
<description>
Sets a cell property for @renderer in @area.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> a `GtkCellRenderer` inside @area
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> the name of the cell property to set
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value to set the cell property to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_cell_set_valist">
<description>
Sets one or more cell properties for @renderer in @area.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> a `GtkCellRenderer` which inside @area
</parameter_description>
</parameter>
<parameter name="first_property_name">
<parameter_description> the name of the first cell property to set
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> a %NULL-terminated list of property names and values, starting
with @first_prop_name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_class_find_cell_property">
<description>
Finds a cell property of a cell area class by name.

Deprecated: 4.10

</description>
<parameters>
<parameter name="aclass">
<parameter_description> a `GtkCellAreaClass`
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> the name of the child property to find
</parameter_description>
</parameter>
</parameters>
<return> the `GParamSpec` of the child property

</return>
</function>

<function name="gtk_cell_area_class_install_cell_property">
<description>
Installs a cell property on a cell area class.

Deprecated: 4.10

</description>
<parameters>
<parameter name="aclass">
<parameter_description> a `GtkCellAreaClass`
</parameter_description>
</parameter>
<parameter name="property_id">
<parameter_description> the id for the property
</parameter_description>
</parameter>
<parameter name="pspec">
<parameter_description> the `GParamSpec` for the property
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_class_list_cell_properties">
<description>
Returns all cell properties of a cell area class.

Deprecated: 4.10

</description>
<parameters>
<parameter name="aclass">
<parameter_description> a `GtkCellAreaClass`
</parameter_description>
</parameter>
<parameter name="n_properties">
<parameter_description> location to return the number of cell properties found
</parameter_description>
</parameter>
</parameters>
<return> a newly
allocated %NULL-terminated array of `GParamSpec`*.  The array
must be freed with g_free().

</return>
</function>

<function name="gtk_cell_area_context_allocate">
<description>
Allocates a width and/or a height for all rows which are to be
rendered with @context.

Usually allocation is performed only horizontally or sometimes
vertically since a group of rows are usually rendered side by
side vertically or horizontally and share either the same width
or the same height. Sometimes they are allocated in both horizontal
and vertical orientations producing a homogeneous effect of the
rows. This is generally the case for `GtkTreeView` when
`GtkTreeView:fixed-height-mode` is enabled.

Deprecated: 4.10: This object will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkCellAreaContext`
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the allocated width for all `GtkTreeModel` rows rendered
with @context, or -1
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the allocated height for all `GtkTreeModel` rows rendered
with @context, or -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_context_get_allocation">
<description>
Fetches the current allocation size for @context.

If the context was not allocated in width or height, or if the
context was recently reset with gtk_cell_area_context_reset(),
the returned value will be -1.

Deprecated: 4.10: This object will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkCellAreaContext`
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> location to store the allocated width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> location to store the allocated height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_context_get_area">
<description>
Fetches the `GtkCellArea` this @context was created by.

This is generally unneeded by layouting widgets; however,
it is important for the context implementation itself to
fetch information about the area it is being used for.

For instance at `GtkCellAreaContextClass.allocate()` time
it’s important to know details about any cell spacing
that the `GtkCellArea` is configured with in order to
compute a proper allocation.

Deprecated: 4.10: This object will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkCellAreaContext`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkCellArea` this context was created by.

</return>
</function>

<function name="gtk_cell_area_context_get_preferred_height">
<description>
Gets the accumulative preferred height for all rows which have been
requested with this context.

After gtk_cell_area_context_reset() is called and/or before ever
requesting the size of a `GtkCellArea`, the returned values are 0.

Deprecated: 4.10: This object will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkCellAreaContext`
</parameter_description>
</parameter>
<parameter name="minimum_height">
<parameter_description> location to store the minimum height
</parameter_description>
</parameter>
<parameter name="natural_height">
<parameter_description> location to store the natural height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_context_get_preferred_height_for_width">
<description>
Gets the accumulative preferred height for @width for all rows
which have been requested for the same said @width with this context.

After gtk_cell_area_context_reset() is called and/or before ever
requesting the size of a `GtkCellArea`, the returned values are -1.

Deprecated: 4.10: This object will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkCellAreaContext`
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> a proposed width for allocation
</parameter_description>
</parameter>
<parameter name="minimum_height">
<parameter_description> location to store the minimum height
</parameter_description>
</parameter>
<parameter name="natural_height">
<parameter_description> location to store the natural height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_context_get_preferred_width">
<description>
Gets the accumulative preferred width for all rows which have been
requested with this context.

After gtk_cell_area_context_reset() is called and/or before ever
requesting the size of a `GtkCellArea`, the returned values are 0.

Deprecated: 4.10: This object will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkCellAreaContext`
</parameter_description>
</parameter>
<parameter name="minimum_width">
<parameter_description> location to store the minimum width
</parameter_description>
</parameter>
<parameter name="natural_width">
<parameter_description> location to store the natural width
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_context_get_preferred_width_for_height">
<description>
Gets the accumulative preferred width for @height for all rows which
have been requested for the same said @height with this context.

After gtk_cell_area_context_reset() is called and/or before ever
requesting the size of a `GtkCellArea`, the returned values are -1.

Deprecated: 4.10: This object will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkCellAreaContext`
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> a proposed height for allocation
</parameter_description>
</parameter>
<parameter name="minimum_width">
<parameter_description> location to store the minimum width
</parameter_description>
</parameter>
<parameter name="natural_width">
<parameter_description> location to store the natural width
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_context_push_preferred_height">
<description>
Causes the minimum and/or natural height to grow if the new
proposed sizes exceed the current minimum and natural height.

This is used by `GtkCellAreaContext` implementations during
the request process over a series of `GtkTreeModel` rows to
progressively push the requested height over a series of
gtk_cell_area_get_preferred_height() requests.

Deprecated: 4.10: This object will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkCellAreaContext`
</parameter_description>
</parameter>
<parameter name="minimum_height">
<parameter_description> the proposed new minimum height for @context
</parameter_description>
</parameter>
<parameter name="natural_height">
<parameter_description> the proposed new natural height for @context
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_context_push_preferred_width">
<description>
Causes the minimum and/or natural width to grow if the new
proposed sizes exceed the current minimum and natural width.

This is used by `GtkCellAreaContext` implementations during
the request process over a series of `GtkTreeModel` rows to
progressively push the requested width over a series of
gtk_cell_area_get_preferred_width() requests.

Deprecated: 4.10: This object will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkCellAreaContext`
</parameter_description>
</parameter>
<parameter name="minimum_width">
<parameter_description> the proposed new minimum width for @context
</parameter_description>
</parameter>
<parameter name="natural_width">
<parameter_description> the proposed new natural width for @context
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_context_reset">
<description>
Resets any previously cached request and allocation
data.

When underlying `GtkTreeModel` data changes its
important to reset the context if the content
size is allowed to shrink. If the content size
is only allowed to grow (this is usually an option
for views rendering large data stores as a measure
of optimization), then only the row that changed
or was inserted needs to be (re)requested with
gtk_cell_area_get_preferred_width().

When the new overall size of the context requires
that the allocated size changes (or whenever this
allocation changes at all), the variable row
sizes need to be re-requested for every row.

For instance, if the rows are displayed all with
the same width from top to bottom then a change
in the allocated width necessitates a recalculation
of all the displayed row heights using
gtk_cell_area_get_preferred_height_for_width().

Deprecated: 4.10: This object will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkCellAreaContext`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_copy_context">
<description>
This is sometimes needed for cases where rows need to share
alignments in one orientation but may be separately grouped
in the opposing orientation.

For instance, `GtkIconView` creates all icons (rows) to have
the same width and the cells theirin to have the same
horizontal alignments. However each row of icons may have
a separate collective height. `GtkIconView` uses this to
request the heights of each row based on a context which
was already used to request all the row widths that are
to be displayed.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkCellArea`Context to copy
</parameter_description>
</parameter>
</parameters>
<return> a newly created `GtkCellArea`Context copy of @context.

</return>
</function>

<function name="gtk_cell_area_create_context">
<description>
Creates a `GtkCellArea`Context to be used with @area for
all purposes. `GtkCellArea`Context stores geometry information
for rows for which it was operated on, it is important to use
the same context for the same row of data at all times (i.e.
one should render and handle events with the same `GtkCellArea`Context
which was used to request the size of those rows of data).

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
</parameters>
<return> a newly created `GtkCellArea`Context which can be used with @area.

</return>
</function>

<function name="gtk_cell_area_event">
<description>
Delegates event handling to a `GtkCellArea`.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkCellArea`Context for this row of data.
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` that @area is rendering to
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> the `GdkEvent` to handle
</parameter_description>
</parameter>
<parameter name="cell_area">
<parameter_description> the @widget relative coordinates for @area
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> the `GtkCellRenderer`State for @area in this row.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the event was handled by @area.

</return>
</function>

<function name="gtk_cell_area_focus">
<description>
This should be called by the @area’s owning layout widget
when focus is to be passed to @area, or moved within @area
for a given @direction and row data.

Implementing `GtkCellArea` classes should implement this
method to receive and navigate focus in its own way particular
to how it lays out cells.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> the `GtkDirectionType`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if focus remains inside @area as a result of this call.

</return>
</function>

<function name="gtk_cell_area_foreach">
<description>
Calls @callback for every `GtkCellRenderer` in @area.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> the `GtkCellCallback` to call
</parameter_description>
</parameter>
<parameter name="callback_data">
<parameter_description> user provided data pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_foreach_alloc">
<description>
Calls @callback for every `GtkCellRenderer` in @area with the
allocated rectangle inside @cell_area.

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkCellArea`Context for this row of data.
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` that @area is rendering to
</parameter_description>
</parameter>
<parameter name="cell_area">
<parameter_description> the @widget relative coordinates and size for @area
</parameter_description>
</parameter>
<parameter name="background_area">
<parameter_description> the @widget relative coordinates of the background area
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> the `GtkCellAllocCallback` to call
</parameter_description>
</parameter>
<parameter name="callback_data">
<parameter_description> user provided data pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_get_cell_allocation">
<description>
Derives the allocation of @renderer inside @area if @area
were to be rendered in @cell_area.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkCellArea`Context used to hold sizes for @area.
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` that @area is rendering on
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` to get the allocation for
</parameter_description>
</parameter>
<parameter name="cell_area">
<parameter_description> the whole allocated area for @area in @widget
for this row
</parameter_description>
</parameter>
<parameter name="allocation">
<parameter_description> where to store the allocation for @renderer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_get_cell_at_position">
<description>
Gets the `GtkCellRenderer` at @x and @y coordinates inside @area and optionally
returns the full cell allocation for it inside @cell_area.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkCellArea`Context used to hold sizes for @area.
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` that @area is rendering on
</parameter_description>
</parameter>
<parameter name="cell_area">
<parameter_description> the whole allocated area for @area in @widget
for this row
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x position
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y position
</parameter_description>
</parameter>
<parameter name="alloc_area">
<parameter_description> where to store the inner allocated area of the
returned cell renderer
</parameter_description>
</parameter>
</parameters>
<return> the `GtkCellRenderer` at @x and @y.

</return>
</function>

<function name="gtk_cell_area_get_current_path_string">
<description>
Gets the current `GtkTreePath` string for the currently
applied `GtkTreeIter`, this is implicitly updated when
gtk_cell_area_apply_attributes() is called and can be
used to interact with renderers from `GtkCellArea`
subclasses.


</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
</parameters>
<return> The current `GtkTreePath` string for the current
attributes applied to @area. This string belongs to the area and
should not be freed.
</return>
</function>

<function name="gtk_cell_area_get_edit_widget">
<description>
Gets the `GtkCellEditable` widget currently used
to edit the currently edited cell.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
</parameters>
<return> The currently active `GtkCellEditable` widget

</return>
</function>

<function name="gtk_cell_area_get_edited_cell">
<description>
Gets the `GtkCellRenderer` in @area that is currently
being edited.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
</parameters>
<return> The currently edited `GtkCellRenderer`

</return>
</function>

<function name="gtk_cell_area_get_focus_cell">
<description>
Retrieves the currently focused cell for @area

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
</parameters>
<return> the currently focused cell in @area.

</return>
</function>

<function name="gtk_cell_area_get_focus_from_sibling">
<description>
Gets the `GtkCellRenderer` which is expected to be focusable
for which @renderer is, or may be a sibling.

This is handy for `GtkCellArea` subclasses when handling events,
after determining the renderer at the event location it can
then chose to activate the focus cell for which the event
cell may have been a sibling.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkCellRenderer`
for which @renderer is a sibling

</return>
</function>

<function name="gtk_cell_area_get_focus_siblings">
<description>
Gets the focus sibling cell renderers for @renderer.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` expected to have focus
</parameter_description>
</parameter>
</parameters>
<return> A `GList` of `GtkCellRenderer`s.
The returned list is internal and should not be freed.

</return>
</function>

<function name="gtk_cell_area_get_preferred_height">
<description>
Retrieves a cell area’s initial minimum and natural height.

@area will store some geometrical information in @context along the way;
when requesting sizes over an arbitrary number of rows, it’s not important
to check the @minimum_height and @natural_height of this call but rather to
consult gtk_cell_area_context_get_preferred_height() after a series of
requests.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkCellArea`Context to perform this request with
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` where @area will be rendering
</parameter_description>
</parameter>
<parameter name="minimum_height">
<parameter_description> location to store the minimum height
</parameter_description>
</parameter>
<parameter name="natural_height">
<parameter_description> location to store the natural height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_get_preferred_height_for_width">
<description>
Retrieves a cell area’s minimum and natural height if it would be given
the specified @width.

@area stores some geometrical information in @context along the way
while calling gtk_cell_area_get_preferred_width(). It’s important to
perform a series of gtk_cell_area_get_preferred_width() requests with
@context first and then call gtk_cell_area_get_preferred_height_for_width()
on each cell area individually to get the height for width of each
fully requested row.

If at some point, the width of a single row changes, it should be
requested with gtk_cell_area_get_preferred_width() again and then
the full width of the requested rows checked again with
gtk_cell_area_context_get_preferred_width().

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkCellArea`Context which has already been requested for widths.
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` where @area will be rendering
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the width for which to check the height of this area
</parameter_description>
</parameter>
<parameter name="minimum_height">
<parameter_description> location to store the minimum height
</parameter_description>
</parameter>
<parameter name="natural_height">
<parameter_description> location to store the natural height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_get_preferred_width">
<description>
Retrieves a cell area’s initial minimum and natural width.

@area will store some geometrical information in @context along the way;
when requesting sizes over an arbitrary number of rows, it’s not important
to check the @minimum_width and @natural_width of this call but rather to
consult gtk_cell_area_context_get_preferred_width() after a series of
requests.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkCellArea`Context to perform this request with
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` where @area will be rendering
</parameter_description>
</parameter>
<parameter name="minimum_width">
<parameter_description> location to store the minimum width
</parameter_description>
</parameter>
<parameter name="natural_width">
<parameter_description> location to store the natural width
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_get_preferred_width_for_height">
<description>
Retrieves a cell area’s minimum and natural width if it would be given
the specified @height.

@area stores some geometrical information in @context along the way
while calling gtk_cell_area_get_preferred_height(). It’s important to
perform a series of gtk_cell_area_get_preferred_height() requests with
@context first and then call gtk_cell_area_get_preferred_width_for_height()
on each cell area individually to get the height for width of each
fully requested row.

If at some point, the height of a single row changes, it should be
requested with gtk_cell_area_get_preferred_height() again and then
the full height of the requested rows checked again with
gtk_cell_area_context_get_preferred_height().

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkCellArea`Context which has already been requested for widths.
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` where @area will be rendering
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the height for which to check the width of this area
</parameter_description>
</parameter>
<parameter name="minimum_width">
<parameter_description> location to store the minimum width
</parameter_description>
</parameter>
<parameter name="natural_width">
<parameter_description> location to store the natural width
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_get_request_mode">
<description>
Gets whether the area prefers a height-for-width layout
or a width-for-height layout.


</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
</parameters>
<return> The `GtkSizeRequestMode` preferred by @area.
</return>
</function>

<function name="gtk_cell_area_has_renderer">
<description>
Checks if @area contains @renderer.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` to check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @renderer is in the @area.

</return>
</function>

<function name="gtk_cell_area_inner_cell_area">
<description>
This is a convenience function for `GtkCellArea` implementations
to get the inner area where a given `GtkCellRenderer` will be
rendered. It removes any padding previously added by gtk_cell_area_request_renderer().

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` that @area is rendering onto
</parameter_description>
</parameter>
<parameter name="cell_area">
<parameter_description> the @widget relative coordinates where one of @area’s cells
is to be placed
</parameter_description>
</parameter>
<parameter name="inner_area">
<parameter_description> the return location for the inner cell area
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_is_activatable">
<description>
Returns whether the area can do anything when activated,
after applying new attributes to @area.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
</parameters>
<return> whether @area can do anything when activated.

</return>
</function>

<function name="gtk_cell_area_is_focus_sibling">
<description>
Returns whether @sibling is one of @renderer’s focus siblings
(see gtk_cell_area_add_focus_sibling()).

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` expected to have focus
</parameter_description>
</parameter>
<parameter name="sibling">
<parameter_description> the `GtkCellRenderer` to check against @renderer’s sibling list
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @sibling is a focus sibling of @renderer

</return>
</function>

<function name="gtk_cell_area_remove">
<description>
Removes @renderer from @area.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` to remove from @area
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_remove_focus_sibling">
<description>
Removes @sibling from @renderer’s focus sibling list
(see gtk_cell_area_add_focus_sibling()).

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` expected to have focus
</parameter_description>
</parameter>
<parameter name="sibling">
<parameter_description> the `GtkCellRenderer` to remove from @renderer’s focus area
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_request_renderer">
<description>
This is a convenience function for `GtkCellArea` implementations
to request size for cell renderers. It’s important to use this
function to request size and then use gtk_cell_area_inner_cell_area()
at render and event time since this function will add padding
around the cell for focus painting.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` to request size for
</parameter_description>
</parameter>
<parameter name="orientation">
<parameter_description> the `GtkOrientation` in which to request size
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` that @area is rendering onto
</parameter_description>
</parameter>
<parameter name="for_size">
<parameter_description> the allocation contextual size to request for, or -1 if
the base request for the orientation is to be returned.
</parameter_description>
</parameter>
<parameter name="minimum_size">
<parameter_description> location to store the minimum size
</parameter_description>
</parameter>
<parameter name="natural_size">
<parameter_description> location to store the natural size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_set_focus_cell">
<description>
Explicitly sets the currently focused cell to @renderer.

This is generally called by implementations of
`GtkCellAreaClass.focus()` or `GtkCellAreaClass.event()`,
however it can also be used to implement functions such
as gtk_tree_view_set_cursor_on_cell().

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> the `GtkCellRenderer` to give focus to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_snapshot">
<description>
Snapshots @area’s cells according to @area’s layout onto at
the given coordinates.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkCellArea`Context for this row of data.
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` that @area is rendering to
</parameter_description>
</parameter>
<parameter name="snapshot">
<parameter_description> the `GtkSnapshot` to draw to
</parameter_description>
</parameter>
<parameter name="background_area">
<parameter_description> the @widget relative coordinates for @area’s background
</parameter_description>
</parameter>
<parameter name="cell_area">
<parameter_description> the @widget relative coordinates for @area
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> the `GtkCellRenderer`State for @area in this row.
</parameter_description>
</parameter>
<parameter name="paint_focus">
<parameter_description> whether @area should paint focus on focused cells for focused rows or not.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_area_stop_editing">
<description>
Explicitly stops the editing of the currently edited cell.

If @canceled is %TRUE, the currently edited cell renderer
will emit the ::editing-canceled signal, otherwise the
the ::editing-done signal will be emitted on the current
edit widget.

See gtk_cell_area_get_edited_cell() and gtk_cell_area_get_edit_widget().

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkCellArea`
</parameter_description>
</parameter>
<parameter name="canceled">
<parameter_description> whether editing was canceled.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_editable_editing_done">
<description>
Emits the `GtkCellEditable::editing-done` signal.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_editable">
<parameter_description> A `GtkCellEditable`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_editable_remove_widget">
<description>
Emits the `GtkCellEditable::remove-widget` signal.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_editable">
<parameter_description> A `GtkCellEditable`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_editable_start_editing">
<description>
Begins editing on a @cell_editable.

The `GtkCellRenderer` for the cell creates and returns a `GtkCellEditable` from
gtk_cell_renderer_start_editing(), configured for the `GtkCellRenderer` type.

gtk_cell_editable_start_editing() can then set up @cell_editable suitably for
editing a cell, e.g. making the Esc key emit `GtkCellEditable::editing-done`.

Note that the @cell_editable is created on-demand for the current edit; its
lifetime is temporary and does not persist across other edits and/or cells.

</description>
<parameters>
<parameter name="cell_editable">
<parameter_description> A `GtkCellEditable`
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> The `GdkEvent` that began the editing process, or
%NULL if editing was initiated programmatically
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_layout_add_attribute">
<description>
Adds an attribute mapping to the list in @cell_layout.

The @column is the column of the model to get a value from, and the
@attribute is the property on @cell to be set from that value. So for
example if column 2 of the model contains strings, you could have the
“text” attribute of a `GtkCellRendererText` get its values from column 2.
In this context &quot;attribute&quot; and &quot;property&quot; are used interchangeably.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_layout">
<parameter_description> a `GtkCellLayout`
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> a property on the renderer
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> the column position on the model to get the attribute from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_layout_clear">
<description>
Unsets all the mappings on all renderers on @cell_layout and
removes all renderers from @cell_layout.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_layout">
<parameter_description> a `GtkCellLayout`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_layout_clear_attributes">
<description>
Clears all existing attributes previously set with
gtk_cell_layout_set_attributes().

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_layout">
<parameter_description> a `GtkCellLayout`
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer` to clear the attribute mapping on
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_layout_get_area">
<description>
Returns the underlying `GtkCellArea` which might be @cell_layout
if called on a `GtkCellArea` or might be %NULL if no `GtkCellArea`
is used by @cell_layout.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_layout">
<parameter_description> a `GtkCellLayout`
</parameter_description>
</parameter>
</parameters>
<return> the cell area used by @cell_layout

</return>
</function>

<function name="gtk_cell_layout_get_cells">
<description>
Returns the cell renderers which have been added to @cell_layout.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_layout">
<parameter_description> a `GtkCellLayout`
</parameter_description>
</parameter>
</parameters>
<return>
a list of cell renderers. The list, but not the renderers has
been newly allocated and should be freed with g_list_free()
when no longer needed.

</return>
</function>

<function name="gtk_cell_layout_pack_end">
<description>
Adds the @cell to the end of @cell_layout. If @expand is %FALSE, then the
@cell is allocated no more space than it needs. Any unused space is
divided evenly between cells for which @expand is %TRUE.

Note that reusing the same cell renderer is not supported.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_layout">
<parameter_description> a `GtkCellLayout`
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="expand">
<parameter_description> %TRUE if @cell is to be given extra space allocated to @cell_layout
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_layout_pack_start">
<description>
Packs the @cell into the beginning of @cell_layout. If @expand is %FALSE,
then the @cell is allocated no more space than it needs. Any unused space
is divided evenly between cells for which @expand is %TRUE.

Note that reusing the same cell renderer is not supported.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_layout">
<parameter_description> a `GtkCellLayout`
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="expand">
<parameter_description> %TRUE if @cell is to be given extra space allocated to @cell_layout
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_layout_reorder">
<description>
Re-inserts @cell at @position.

Note that @cell has already to be packed into @cell_layout
for this to function properly.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_layout">
<parameter_description> a `GtkCellLayout`
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer` to reorder
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> new position to insert @cell at
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_layout_set_attributes">
<description>
Sets the attributes in the parameter list as the attributes
of @cell_layout.

See [method@Gtk.CellLayout.add_attribute] for more details.

The attributes should be in attribute/column order, as in
gtk_cell_layout_add_attribute(). All existing attributes are
removed, and replaced with the new attributes.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_layout">
<parameter_description> a `GtkCellLayout`
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> a %NULL-terminated list of attributes
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_layout_set_cell_data_func">
<description>
Sets the `GtkCellLayout`DataFunc to use for @cell_layout.

This function is used instead of the standard attributes mapping
for setting the column value, and should set the value of @cell_layout’s
cell renderer(s) as appropriate.

@func may be %NULL to remove a previously set function.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_layout">
<parameter_description> a `GtkCellLayout`
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the `GtkCellLayout`DataFunc to use
</parameter_description>
</parameter>
<parameter name="func_data">
<parameter_description> user data for @func
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> destroy notify for @func_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_accel_new">
<description>
Creates a new `GtkCellRendererAccel`.

Deprecated: 4.10

</description>
<parameters>
</parameters>
<return> the new cell renderer

</return>
</function>

<function name="gtk_cell_renderer_activate">
<description>
Passes an activate event to the cell renderer for possible processing.
Some cell renderers may use events; for example, `GtkCellRendererToggle`
toggles when it gets a mouse click.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> a `GdkEvent`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> widget that received the event
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> widget-dependent string representation of the event location;
e.g. for `GtkTreeView`, a string representation of `GtkTreePath`
</parameter_description>
</parameter>
<parameter name="background_area">
<parameter_description> background area as passed to gtk_cell_renderer_render()
</parameter_description>
</parameter>
<parameter name="cell_area">
<parameter_description> cell area as passed to gtk_cell_renderer_render()
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> render flags
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the event was consumed/handled

</return>
</function>

<function name="gtk_cell_renderer_combo_new">
<description>
Creates a new `GtkCellRendererCombo`.
Adjust how text is drawn using object properties.
Object properties can be set globally (with g_object_set()).
Also, with `GtkTreeViewColumn`, you can bind a property to a value
in a `GtkTreeModel`. For example, you can bind the “text” property
on the cell renderer to a string value in the model, thus rendering
a different string in each row of the `GtkTreeView`.

Deprecated: 4.10

</description>
<parameters>
</parameters>
<return> the new cell renderer

</return>
</function>

<function name="gtk_cell_renderer_get_aligned_area">
<description>
Gets the aligned area used by @cell inside @cell_area. Used for finding
the appropriate edit and focus rectangle.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer` instance
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` this cell will be rendering to
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> render flags
</parameter_description>
</parameter>
<parameter name="cell_area">
<parameter_description> cell area which would be passed to gtk_cell_renderer_render()
</parameter_description>
</parameter>
<parameter name="aligned_area">
<parameter_description> the return location for the space inside @cell_area
that would actually be used to render.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_get_alignment">
<description>
Fills in @xalign and @yalign with the appropriate values of @cell.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> A `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="xalign">
<parameter_description> location to fill in with the x alignment of the cell
</parameter_description>
</parameter>
<parameter name="yalign">
<parameter_description> location to fill in with the y alignment of the cell
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_get_fixed_size">
<description>
Fills in @width and @height with the appropriate size of @cell.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> A `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> location to fill in with the fixed width of the cell
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> location to fill in with the fixed height of the cell
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_get_is_expanded">
<description>
Checks whether the given `GtkCellRenderer` is expanded.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the cell renderer is expanded

</return>
</function>

<function name="gtk_cell_renderer_get_is_expander">
<description>
Checks whether the given `GtkCellRenderer` is an expander.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @cell is an expander, and %FALSE otherwise

</return>
</function>

<function name="gtk_cell_renderer_get_padding">
<description>
Fills in @xpad and @ypad with the appropriate values of @cell.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> A `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="xpad">
<parameter_description> location to fill in with the x padding of the cell
</parameter_description>
</parameter>
<parameter name="ypad">
<parameter_description> location to fill in with the y padding of the cell
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_get_preferred_height">
<description>
Retrieves a renderer’s natural size when rendered to @widget.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer` instance
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` this cell will be rendering to
</parameter_description>
</parameter>
<parameter name="minimum_size">
<parameter_description> location to store the minimum size
</parameter_description>
</parameter>
<parameter name="natural_size">
<parameter_description> location to store the natural size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_get_preferred_height_for_width">
<description>
Retrieves a cell renderers’s minimum and natural height if it were rendered to
@widget with the specified @width.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer` instance
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` this cell will be rendering to
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the size which is available for allocation
</parameter_description>
</parameter>
<parameter name="minimum_height">
<parameter_description> location for storing the minimum size
</parameter_description>
</parameter>
<parameter name="natural_height">
<parameter_description> location for storing the preferred size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_get_preferred_size">
<description>
Retrieves the minimum and natural size of a cell taking
into account the widget’s preference for height-for-width management.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer` instance
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` this cell will be rendering to
</parameter_description>
</parameter>
<parameter name="minimum_size">
<parameter_description> location for storing the minimum size
</parameter_description>
</parameter>
<parameter name="natural_size">
<parameter_description> location for storing the natural size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_get_preferred_width">
<description>
Retrieves a renderer’s natural size when rendered to @widget.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer` instance
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` this cell will be rendering to
</parameter_description>
</parameter>
<parameter name="minimum_size">
<parameter_description> location to store the minimum size
</parameter_description>
</parameter>
<parameter name="natural_size">
<parameter_description> location to store the natural size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_get_preferred_width_for_height">
<description>
Retrieves a cell renderers’s minimum and natural width if it were rendered to
@widget with the specified @height.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer` instance
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` this cell will be rendering to
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the size which is available for allocation
</parameter_description>
</parameter>
<parameter name="minimum_width">
<parameter_description> location for storing the minimum size
</parameter_description>
</parameter>
<parameter name="natural_width">
<parameter_description> location for storing the preferred size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_get_request_mode">
<description>
Gets whether the cell renderer prefers a height-for-width layout
or a width-for-height layout.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer` instance
</parameter_description>
</parameter>
</parameters>
<return> The `GtkSizeRequestMode` preferred by this renderer.

</return>
</function>

<function name="gtk_cell_renderer_get_sensitive">
<description>
Returns the cell renderer’s sensitivity.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> A `GtkCellRenderer`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the cell renderer is sensitive

</return>
</function>

<function name="gtk_cell_renderer_get_state">
<description>
Translates the cell renderer state to `GtkStateFlags`,
based on the cell renderer and widget sensitivity, and
the given `GtkCellRenderer`State.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="cell_state">
<parameter_description> cell renderer state
</parameter_description>
</parameter>
</parameters>
<return> the widget state flags applying to @cell

</return>
</function>

<function name="gtk_cell_renderer_get_visible">
<description>
Returns the cell renderer’s visibility.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> A `GtkCellRenderer`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the cell renderer is visible

</return>
</function>

<function name="gtk_cell_renderer_is_activatable">
<description>
Checks whether the cell renderer can do something when activated.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> A `GtkCellRenderer`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the cell renderer can do anything when activated

</return>
</function>

<function name="gtk_cell_renderer_pixbuf_new">
<description>
Creates a new `GtkCellRendererPixbuf`. Adjust rendering
parameters using object properties. Object properties can be set
globally (with g_object_set()). Also, with `GtkTreeViewColumn`, you
can bind a property to a value in a `GtkTreeModel`. For example, you
can bind the “pixbuf” property on the cell renderer to a pixbuf value
in the model, thus rendering a different image in each row of the
`GtkTreeView`.

Deprecated: 4.10

</description>
<parameters>
</parameters>
<return> the new cell renderer

</return>
</function>

<function name="gtk_cell_renderer_progress_new">
<description>
Creates a new `GtkCellRendererProgress`.

Deprecated: 4.10

</description>
<parameters>
</parameters>
<return> the new cell renderer

</return>
</function>

<function name="gtk_cell_renderer_set_alignment">
<description>
Sets the renderer’s alignment within its available space.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> A `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="xalign">
<parameter_description> the x alignment of the cell renderer
</parameter_description>
</parameter>
<parameter name="yalign">
<parameter_description> the y alignment of the cell renderer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_set_fixed_size">
<description>
Sets the renderer size to be explicit, independent of the properties set.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> A `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the width of the cell renderer, or -1
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the height of the cell renderer, or -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_set_is_expanded">
<description>
Sets whether the given `GtkCellRenderer` is expanded.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="is_expanded">
<parameter_description> whether @cell should be expanded
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_set_is_expander">
<description>
Sets whether the given `GtkCellRenderer` is an expander.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="is_expander">
<parameter_description> whether @cell is an expander
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_set_padding">
<description>
Sets the renderer’s padding.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> A `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="xpad">
<parameter_description> the x padding of the cell renderer
</parameter_description>
</parameter>
<parameter name="ypad">
<parameter_description> the y padding of the cell renderer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_set_sensitive">
<description>
Sets the cell renderer’s sensitivity.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> A `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="sensitive">
<parameter_description> the sensitivity of the cell
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_set_visible">
<description>
Sets the cell renderer’s visibility.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> A `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="visible">
<parameter_description> the visibility of the cell
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_snapshot">
<description>
Invokes the virtual render function of the `GtkCellRenderer`. The three
passed-in rectangles are areas in @cr. Most renderers will draw within
@cell_area; the xalign, yalign, xpad, and ypad fields of the `GtkCellRenderer`
should be honored with respect to @cell_area. @background_area includes the
blank space around the cell, and also the area containing the tree expander;
so the @background_area rectangles for all cells tile to cover the entire
@window.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot` to draw to
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the widget owning @window
</parameter_description>
</parameter>
<parameter name="background_area">
<parameter_description> entire cell area (including tree expanders and maybe
padding on the sides)
</parameter_description>
</parameter>
<parameter name="cell_area">
<parameter_description> area normally rendered by a cell renderer
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags that affect rendering
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_spin_new">
<description>
Creates a new `GtkCellRendererSpin`.

Deprecated: 4.10

</description>
<parameters>
</parameters>
<return> a new `GtkCellRendererSpin`

</return>
</function>

<function name="gtk_cell_renderer_spinner_new">
<description>
Returns a new cell renderer which will show a spinner to indicate
activity.

Deprecated: 4.10

</description>
<parameters>
</parameters>
<return> a new `GtkCellRenderer`

</return>
</function>

<function name="gtk_cell_renderer_start_editing">
<description>
Starts editing the contents of this @cell, through a new `GtkCellEditable`
widget created by the `GtkCellRenderer`Class.start_editing virtual function.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> a `GdkEvent`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> widget that received the event
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> widget-dependent string representation of the event location;
e.g. for `GtkTreeView`, a string representation of `GtkTreePath`
</parameter_description>
</parameter>
<parameter name="background_area">
<parameter_description> background area as passed to gtk_cell_renderer_render()
</parameter_description>
</parameter>
<parameter name="cell_area">
<parameter_description> cell area as passed to gtk_cell_renderer_render()
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> render flags
</parameter_description>
</parameter>
</parameters>
<return> A new `GtkCellEditable` for editing this
@cell, or %NULL if editing is not possible

</return>
</function>

<function name="gtk_cell_renderer_stop_editing">
<description>
Informs the cell renderer that the editing is stopped.
If @canceled is %TRUE, the cell renderer will emit the
`GtkCellRenderer`::editing-canceled signal.

This function should be called by cell renderer implementations
in response to the `GtkCellEditable::editing-done` signal of
`GtkCellEditable`.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell">
<parameter_description> A `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="canceled">
<parameter_description> %TRUE if the editing has been canceled
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_text_new">
<description>
Creates a new `GtkCellRendererText`. Adjust how text is drawn using
object properties. Object properties can be
set globally (with g_object_set()). Also, with `GtkTreeViewColumn`,
you can bind a property to a value in a `GtkTreeModel`. For example,
you can bind the “text” property on the cell renderer to a string
value in the model, thus rendering a different string in each row
of the `GtkTreeView`.

Deprecated: 4.10

</description>
<parameters>
</parameters>
<return> the new cell renderer

</return>
</function>

<function name="gtk_cell_renderer_text_set_fixed_height_from_font">
<description>
Sets the height of a renderer to explicitly be determined by the “font” and
“y_pad” property set on it.  Further changes in these properties do not
affect the height, so they must be accompanied by a subsequent call to this
function.  Using this function is inflexible, and should really only be used
if calculating the size of a cell is too slow (ie, a massive number of cells
displayed).  If @number_of_rows is -1, then the fixed height is unset, and
the height is determined by the properties again.

Deprecated: 4.10

</description>
<parameters>
<parameter name="renderer">
<parameter_description> A `GtkCellRendererText`
</parameter_description>
</parameter>
<parameter name="number_of_rows">
<parameter_description> Number of rows of text each cell renderer is allocated, or -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_toggle_get_activatable">
<description>
Returns whether the cell renderer is activatable. See
gtk_cell_renderer_toggle_set_activatable().

Deprecated: 4.10

</description>
<parameters>
<parameter name="toggle">
<parameter_description> a `GtkCellRendererToggle`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the cell renderer is activatable.

</return>
</function>

<function name="gtk_cell_renderer_toggle_get_active">
<description>
Returns whether the cell renderer is active. See
gtk_cell_renderer_toggle_set_active().

Deprecated: 4.10

</description>
<parameters>
<parameter name="toggle">
<parameter_description> a `GtkCellRendererToggle`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the cell renderer is active.

</return>
</function>

<function name="gtk_cell_renderer_toggle_get_radio">
<description>
Returns whether we’re rendering radio toggles rather than checkboxes.

Deprecated: 4.10

</description>
<parameters>
<parameter name="toggle">
<parameter_description> a `GtkCellRendererToggle`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if we’re rendering radio toggles rather than checkboxes

</return>
</function>

<function name="gtk_cell_renderer_toggle_new">
<description>
Creates a new `GtkCellRendererToggle`. Adjust rendering
parameters using object properties. Object properties can be set
globally (with g_object_set()). Also, with `GtkTreeViewColumn`, you
can bind a property to a value in a `GtkTreeModel`. For example, you
can bind the “active” property on the cell renderer to a boolean value
in the model, thus causing the check button to reflect the state of
the model.

Deprecated: 4.10

</description>
<parameters>
</parameters>
<return> the new cell renderer

</return>
</function>

<function name="gtk_cell_renderer_toggle_set_activatable">
<description>
Makes the cell renderer activatable.

Deprecated: 4.10

</description>
<parameters>
<parameter name="toggle">
<parameter_description> a `GtkCellRendererToggle`.
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the value to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_toggle_set_active">
<description>
Activates or deactivates a cell renderer.

Deprecated: 4.10

</description>
<parameters>
<parameter name="toggle">
<parameter_description> a `GtkCellRendererToggle`.
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the value to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_renderer_toggle_set_radio">
<description>
If @radio is %TRUE, the cell renderer renders a radio toggle
(i.e. a toggle in a group of mutually-exclusive toggles).
If %FALSE, it renders a check toggle (a standalone boolean option).
This can be set globally for the cell renderer, or changed just
before rendering each cell in the model (for `GtkTreeView`, you set
up a per-row setting using `GtkTreeViewColumn` to associate model
columns with cell renderer properties).

Deprecated: 4.10

</description>
<parameters>
<parameter name="toggle">
<parameter_description> a `GtkCellRendererToggle`
</parameter_description>
</parameter>
<parameter name="radio">
<parameter_description> %TRUE to make the toggle look like a radio button
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_view_get_displayed_row">
<description>
Returns a `GtkTreePath` referring to the currently
displayed row. If no row is currently displayed,
%NULL is returned.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_view">
<parameter_description> a `GtkCellView`
</parameter_description>
</parameter>
</parameters>
<return> the currently displayed row

</return>
</function>

<function name="gtk_cell_view_get_draw_sensitive">
<description>
Gets whether @cell_view is configured to draw all of its
cells in a sensitive state.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_view">
<parameter_description> a `GtkCellView`
</parameter_description>
</parameter>
</parameters>
<return> whether @cell_view draws all of its
cells in a sensitive state

</return>
</function>

<function name="gtk_cell_view_get_fit_model">
<description>
Gets whether @cell_view is configured to request space
to fit the entire `GtkTreeModel`.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_view">
<parameter_description> a `GtkCellView`
</parameter_description>
</parameter>
</parameters>
<return> whether @cell_view requests space to fit
the entire `GtkTreeModel`.

</return>
</function>

<function name="gtk_cell_view_get_model">
<description>
Returns the model for @cell_view. If no model is used %NULL is
returned.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_view">
<parameter_description> a `GtkCellView`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkTreeModel` used

</return>
</function>

<function name="gtk_cell_view_new">
<description>
Creates a new `GtkCellView` widget.

Deprecated: 4.10

</description>
<parameters>
</parameters>
<return> A newly created `GtkCellView` widget.

</return>
</function>

<function name="gtk_cell_view_new_with_context">
<description>
Creates a new `GtkCellView` widget with a specific `GtkCellArea`
to layout cells and a specific `GtkCellAreaContext`.

Specifying the same context for a handful of cells lets
the underlying area synchronize the geometry for those cells,
in this way alignments with cellviews for other rows are
possible.

Deprecated: 4.10

</description>
<parameters>
<parameter name="area">
<parameter_description> the `GtkCellArea` to layout cells
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the `GtkCellAreaContext` in which to calculate cell geometry
</parameter_description>
</parameter>
</parameters>
<return> A newly created `GtkCellView` widget.

</return>
</function>

<function name="gtk_cell_view_new_with_markup">
<description>
Creates a new `GtkCellView` widget, adds a `GtkCellRendererText`
to it, and makes it show @markup. The text can be marked up with
the [Pango text markup language](https://docs.gtk.org/Pango/pango_markup.html).

Deprecated: 4.10

</description>
<parameters>
<parameter name="markup">
<parameter_description> the text to display in the cell view
</parameter_description>
</parameter>
</parameters>
<return> A newly created `GtkCellView` widget.

</return>
</function>

<function name="gtk_cell_view_new_with_text">
<description>
Creates a new `GtkCellView` widget, adds a `GtkCellRendererText`
to it, and makes it show @text.

Deprecated: 4.10

</description>
<parameters>
<parameter name="text">
<parameter_description> the text to display in the cell view
</parameter_description>
</parameter>
</parameters>
<return> A newly created `GtkCellView` widget.

</return>
</function>

<function name="gtk_cell_view_new_with_texture">
<description>
Creates a new `GtkCellView` widget, adds a `GtkCellRendererPixbuf`
to it, and makes it show @texture.

Deprecated: 4.10

</description>
<parameters>
<parameter name="texture">
<parameter_description> the image to display in the cell view
</parameter_description>
</parameter>
</parameters>
<return> A newly created `GtkCellView` widget.

</return>
</function>

<function name="gtk_cell_view_set_displayed_row">
<description>
Sets the row of the model that is currently displayed
by the `GtkCellView`. If the path is unset, then the
contents of the cellview “stick” at their last value;
this is not normally a desired result, but may be
a needed intermediate state if say, the model for
the `GtkCellView` becomes temporarily empty.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_view">
<parameter_description> a `GtkCellView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath` or %NULL to unset.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_view_set_draw_sensitive">
<description>
Sets whether @cell_view should draw all of its
cells in a sensitive state, this is used by `GtkComboBox` menus
to ensure that rows with insensitive cells that contain
children appear sensitive in the parent menu item.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_view">
<parameter_description> a `GtkCellView`
</parameter_description>
</parameter>
<parameter name="draw_sensitive">
<parameter_description> whether to draw all cells in a sensitive state.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_view_set_fit_model">
<description>
Sets whether @cell_view should request space to fit the entire `GtkTreeModel`.

This is used by `GtkComboBox` to ensure that the cell view displayed on
the combo box’s button always gets enough space and does not resize
when selection changes.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_view">
<parameter_description> a `GtkCellView`
</parameter_description>
</parameter>
<parameter name="fit_model">
<parameter_description> whether @cell_view should request space for the whole model.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_view_set_model">
<description>
Sets the model for @cell_view.  If @cell_view already has a model
set, it will remove it before setting the new model.  If @model is
%NULL, then it will unset the old model.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_view">
<parameter_description> a `GtkCellView`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_cell_view_set_value">
<description>
Sets a property of a cell renderer of @cell_view, and
makes sure the display of @cell_view is updated.

Deprecated: 4.10

</description>
<parameters>
<parameter name="cell_view">
<parameter_description> a `GtkCellView` widget
</parameter_description>
</parameter>
<parameter name="renderer">
<parameter_description> one of the renderers of @cell_view
</parameter_description>
</parameter>
<parameter name="property">
<parameter_description> the name of the property of @renderer to set
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the new value to set the property to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_center_box_get_baseline_position">
<description>
Gets the value set by gtk_center_box_set_baseline_position().


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterBox`
</parameter_description>
</parameter>
</parameters>
<return> the baseline position
</return>
</function>

<function name="gtk_center_box_get_center_widget">
<description>
Gets the center widget, or %NULL if there is none.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterBox`
</parameter_description>
</parameter>
</parameters>
<return> the center widget.
</return>
</function>

<function name="gtk_center_box_get_end_widget">
<description>
Gets the end widget, or %NULL if there is none.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterBox`
</parameter_description>
</parameter>
</parameters>
<return> the end widget.
</return>
</function>

<function name="gtk_center_box_get_shrink_center_last">
<description>
Gets whether @self shrinks the center widget after other children.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterBox`
</parameter_description>
</parameter>
</parameters>
<return> whether to shrink the center widget after others

</return>
</function>

<function name="gtk_center_box_get_start_widget">
<description>
Gets the start widget, or %NULL if there is none.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterBox`
</parameter_description>
</parameter>
</parameters>
<return> the start widget.
</return>
</function>

<function name="gtk_center_box_new">
<description>
Creates a new `GtkCenterBox`.


</description>
<parameters>
</parameters>
<return> the new `GtkCenterBox`.
</return>
</function>

<function name="gtk_center_box_set_baseline_position">
<description>
Sets the baseline position of a center box.

This affects only horizontal boxes with at least one baseline
aligned child. If there is more vertical space available than
requested, and the baseline is not allocated by the parent then
@position is used to allocate the baseline wrt. the extra space
available.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterBox`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> a `GtkBaselinePosition`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_center_box_set_center_widget">
<description>
Sets the center widget.

To remove the existing center widget, pass %NULL.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterBox`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the new center widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_center_box_set_end_widget">
<description>
Sets the end widget.

To remove the existing end widget, pass %NULL.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterBox`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the new end widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_center_box_set_shrink_center_last">
<description>
Sets whether to shrink the center widget after other children.

By default, when there's no space to give all three children their
natural widths, the start and end widgets start shrinking and the
center child keeps natural width until they reach minimum width.

If set to `FALSE`, start and end widgets keep natural width and the
center widget starts shrinking instead.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterBox`
</parameter_description>
</parameter>
<parameter name="shrink_center_last">
<parameter_description> whether to shrink the center widget after others
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_center_box_set_start_widget">
<description>
Sets the start widget.

To remove the existing start widget, pass %NULL.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterBox`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the new start widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_center_layout_get_baseline_position">
<description>
Returns the baseline position of the layout.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterLayout`
</parameter_description>
</parameter>
</parameters>
<return> The current baseline position of @self.
</return>
</function>

<function name="gtk_center_layout_get_center_widget">
<description>
Returns the center widget of the layout.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterLayout`
</parameter_description>
</parameter>
</parameters>
<return> the current center widget of @self
</return>
</function>

<function name="gtk_center_layout_get_end_widget">
<description>
Returns the end widget of the layout.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterLayout`
</parameter_description>
</parameter>
</parameters>
<return> the current end widget of @self
</return>
</function>

<function name="gtk_center_layout_get_orientation">
<description>
Gets the current orienration of the layout manager.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterLayout`
</parameter_description>
</parameter>
</parameters>
<return> The current orientation of @self
</return>
</function>

<function name="gtk_center_layout_get_shrink_center_last">
<description>
Gets whether @self shrinks the center widget after other children.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterLayout`
</parameter_description>
</parameter>
</parameters>
<return> whether to shrink the center widget after others

</return>
</function>

<function name="gtk_center_layout_get_start_widget">
<description>
Returns the start widget of the layout.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterLayout`
</parameter_description>
</parameter>
</parameters>
<return> The current start widget of @self
</return>
</function>

<function name="gtk_center_layout_new">
<description>
Creates a new `GtkCenterLayout`.


</description>
<parameters>
</parameters>
<return> the newly created `GtkCenterLayout`
</return>
</function>

<function name="gtk_center_layout_set_baseline_position">
<description>
Sets the new baseline position of @self

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterLayout`
</parameter_description>
</parameter>
<parameter name="baseline_position">
<parameter_description> the new baseline position
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_center_layout_set_center_widget">
<description>
Sets the new center widget of @self.

To remove the existing center widget, pass %NULL.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterLayout`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the new center widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_center_layout_set_end_widget">
<description>
Sets the new end widget of @self.

To remove the existing center widget, pass %NULL.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterLayout`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the new end widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_center_layout_set_orientation">
<description>
Sets the orientation of @self.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterLayout`
</parameter_description>
</parameter>
<parameter name="orientation">
<parameter_description> the new orientation
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_center_layout_set_shrink_center_last">
<description>
Sets whether to shrink the center widget after other children.

By default, when there's no space to give all three children their
natural widths, the start and end widgets start shrinking and the
center child keeps natural width until they reach minimum width.

If set to `FALSE`, start and end widgets keep natural width and the
center widget starts shrinking instead.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterLayout`
</parameter_description>
</parameter>
<parameter name="shrink_center_last">
<parameter_description> whether to shrink the center widget after others
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_center_layout_set_start_widget">
<description>
Sets the new start widget of @self.

To remove the existing start widget, pass %NULL.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCenterLayout`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the new start widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_check_button_get_active">
<description>
Returns whether the check button is active.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCheckButton`
</parameter_description>
</parameter>
</parameters>
<return> whether the check button is active
</return>
</function>

<function name="gtk_check_button_get_child">
<description>
Gets the child widget of @button or `NULL` if [property@CheckButton:label] is set.

Since: 4.8

</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkCheckButton`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @button

</return>
</function>

<function name="gtk_check_button_get_inconsistent">
<description>
Returns whether the check button is in an inconsistent state.


</description>
<parameters>
<parameter name="check_button">
<parameter_description> a `GtkCheckButton`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @check_button is currently in an inconsistent state
</return>
</function>

<function name="gtk_check_button_get_label">
<description>
Returns the label of the check button or `NULL` if [property@CheckButton:child] is set.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCheckButton`
</parameter_description>
</parameter>
</parameters>
<return> The label @self shows next
to the indicator. If no label is shown, %NULL will be returned.
</return>
</function>

<function name="gtk_check_button_get_use_underline">
<description>
Returns whether underlines in the label indicate mnemonics.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCheckButton`
</parameter_description>
</parameter>
</parameters>
<return> The value of the [property@Gtk.CheckButton:use-underline] property.
See [method@Gtk.CheckButton.set_use_underline] for details on how to set
a new value.
</return>
</function>

<function name="gtk_check_button_new">
<description>
Creates a new `GtkCheckButton`.


</description>
<parameters>
</parameters>
<return> a new `GtkCheckButton`
</return>
</function>

<function name="gtk_check_button_new_with_label">
<description>
Creates a new `GtkCheckButton` with the given text.


</description>
<parameters>
<parameter name="label">
<parameter_description> the text for the check button.
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkCheckButton`
</return>
</function>

<function name="gtk_check_button_new_with_mnemonic">
<description>
Creates a new `GtkCheckButton` with the given text and a mnemonic.


</description>
<parameters>
<parameter name="label">
<parameter_description> The text of the button, with an underscore
in front of the mnemonic character
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkCheckButton`
</return>
</function>

<function name="gtk_check_button_set_active">
<description>
Changes the check buttons active state.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCheckButton`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the new value to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_check_button_set_child">
<description>
Sets the child widget of @button.

Note that by using this API, you take full responsibility for setting
up the proper accessibility label and description information for @button.
Most likely, you'll either set the accessibility label or description
for @button explicitly, or you'll set a labelled-by or described-by
relations from @child to @button.

Since: 4.8

</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkCheckButton`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_check_button_set_group">
<description>
Adds @self to the group of @group.

In a group of multiple check buttons, only one button can be active
at a time. The behavior of a checkbutton in a group is also commonly
known as a *radio button*.

Setting the group of a check button also changes the css name of the
indicator widget's CSS node to 'radio'.

Setting up groups in a cycle leads to undefined behavior.

Note that the same effect can be achieved via the [iface@Gtk.Actionable]
API, by using the same action with parameter type and state type 's'
for all buttons in the group, and giving each button its own target
value.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCheckButton`
</parameter_description>
</parameter>
<parameter name="group">
<parameter_description> another `GtkCheckButton` to
form a group with
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_check_button_set_inconsistent">
<description>
Sets the `GtkCheckButton` to inconsistent state.

You should turn off the inconsistent state again if the user checks
the check button. This has to be done manually.

</description>
<parameters>
<parameter name="check_button">
<parameter_description> a `GtkCheckButton`
</parameter_description>
</parameter>
<parameter name="inconsistent">
<parameter_description> %TRUE if state is inconsistent
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_check_button_set_label">
<description>
Sets the text of @self.

If [property@Gtk.CheckButton:use-underline] is %TRUE, an underscore
in @label is interpreted as mnemonic indicator, see
[method@Gtk.CheckButton.set_use_underline] for details on this behavior.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCheckButton`
</parameter_description>
</parameter>
<parameter name="label">
<parameter_description> The text shown next to the indicator, or %NULL
to show no text
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_check_button_set_use_underline">
<description>
Sets whether underlines in the label indicate mnemonics.

If @setting is %TRUE, an underscore character in @self's label
indicates a mnemonic accelerator key. This behavior is similar
to [property@Gtk.Label:use-underline].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCheckButton`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the new value to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_check_version">
<description>
Checks that the GTK library in use is compatible with the
given version.

Generally you would pass in the constants %GTK_MAJOR_VERSION,
%GTK_MINOR_VERSION, %GTK_MICRO_VERSION as the three arguments
to this function; that produces a check that the library in
use is compatible with the version of GTK the application or
module was compiled against.

Compatibility is defined by two things: first the version
of the running library is newer than the version
@required_major.required_minor.@required_micro. Second
the running library must be binary compatible with the
version @required_major.required_minor.@required_micro
(same major version.)

This function is primarily for GTK modules; the module
can call this function to check that it wasn’t loaded
into an incompatible version of GTK. However, such a
check isn’t completely reliable, since the module may be
linked against an old version of GTK and calling the
old version of gtk_check_version(), but still get loaded
into an application using a newer version of GTK.


</description>
<parameters>
<parameter name="required_major">
<parameter_description> the required major version
</parameter_description>
</parameter>
<parameter name="required_minor">
<parameter_description> the required minor version
</parameter_description>
</parameter>
<parameter name="required_micro">
<parameter_description> the required micro version
</parameter_description>
</parameter>
</parameters>
<return> %NULL if the GTK library is compatible with the
given version, or a string describing the version mismatch.
The returned string is owned by GTK and should not be modified
or freed.
</return>
</function>

<function name="gtk_closure_expression_new">
<description>
Creates a `GtkExpression` that calls `closure` when it is evaluated.

`closure` is called with the `this` object and the results of evaluating
the `params` expressions.


</description>
<parameters>
<parameter name="value_type">
<parameter_description> the type of the value that this expression evaluates to
</parameter_description>
</parameter>
<parameter name="closure">
<parameter_description> closure to call when evaluating this expression. If closure is floating, it is adopted
</parameter_description>
</parameter>
<parameter name="n_params">
<parameter_description> the number of params needed for evaluating `closure`
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> expressions for each parameter
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkExpression`
</return>
</function>

<function name="gtk_color_button_get_modal">
<description>
Gets whether the dialog is modal.

Deprecated: 4.10: Use [class@Gtk.ColorDialogButton] instead

</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkColorButton`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the dialog is modal

</return>
</function>

<function name="gtk_color_button_get_title">
<description>
Gets the title of the color chooser dialog.

Deprecated: 4.10: Use [class@Gtk.ColorDialogButton] instead

</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkColorButton`
</parameter_description>
</parameter>
</parameters>
<return> An internal string, do not free the return value

</return>
</function>

<function name="gtk_color_button_new">
<description>
Creates a new color button.

This returns a widget in the form of a small button containing
a swatch representing the current selected color. When the button
is clicked, a color chooser dialog will open, allowing the user
to select a color. The swatch will be updated to reflect the new
color when the user finishes.

Deprecated: 4.10: Use [class@Gtk.ColorDialogButton] instead

</description>
<parameters>
</parameters>
<return> a new color button

</return>
</function>

<function name="gtk_color_button_new_with_rgba">
<description>
Creates a new color button showing the given color.


</description>
<parameters>
<parameter name="rgba">
<parameter_description> A `GdkRGBA` to set the current color with
</parameter_description>
</parameter>
</parameters>
<return> a new color button
</return>
</function>

<function name="gtk_color_button_set_modal">
<description>
Sets whether the dialog should be modal.

Deprecated: 4.10: Use [class@Gtk.ColorDialogButton] instead

</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkColorButton`
</parameter_description>
</parameter>
<parameter name="modal">
<parameter_description> %TRUE to make the dialog modal
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_color_button_set_title">
<description>
Sets the title for the color chooser dialog.

Deprecated: 4.10: Use [class@Gtk.ColorDialogButton] instead

</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkColorButton`
</parameter_description>
</parameter>
<parameter name="title">
<parameter_description> String containing new window title
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_color_chooser_add_palette">
<description>
Adds a palette to the color chooser.

If @orientation is horizontal, the colors are grouped in rows,
with @colors_per_line colors in each row. If @horizontal is %FALSE,
the colors are grouped in columns instead.

The default color palette of [class@Gtk.ColorChooserWidget] has
45 colors, organized in columns of 5 colors (this includes some
grays).

The layout of the color chooser widget works best when the
palettes have 9-10 columns.

Calling this function for the first time has the side effect
of removing the default color palette from the color chooser.

If @colors is %NULL, removes all previously added palettes.

Deprecated: 4.10: Use [class@Gtk.ColorDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkColorChooser`
</parameter_description>
</parameter>
<parameter name="orientation">
<parameter_description> %GTK_ORIENTATION_HORIZONTAL if the palette should
be displayed in rows, %GTK_ORIENTATION_VERTICAL for columns
</parameter_description>
</parameter>
<parameter name="colors_per_line">
<parameter_description> the number of colors to show in each row/column
</parameter_description>
</parameter>
<parameter name="n_colors">
<parameter_description> the total number of elements in @colors
</parameter_description>
</parameter>
<parameter name="colors">
<parameter_description> the colors of the palette
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_color_chooser_dialog_new">
<description>
Creates a new `GtkColorChooserDialog`.

Deprecated: 4.10: Use [class@Gtk.ColorDialog] instead

</description>
<parameters>
<parameter name="title">
<parameter_description> Title of the dialog
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> Transient parent of the dialog
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkColorChooserDialog`

</return>
</function>

<function name="gtk_color_chooser_get_rgba">
<description>
Gets the currently-selected color.

Deprecated: 4.10: Use [class@Gtk.ColorDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkColorChooser`
</parameter_description>
</parameter>
<parameter name="color">
<parameter_description> a `GdkRGBA` to fill in with the current color
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_color_chooser_get_use_alpha">
<description>
Returns whether the color chooser shows the alpha channel.

Deprecated: 4.10: Use [class@Gtk.ColorDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkColorChooser`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the color chooser uses the alpha channel,
%FALSE if not

</return>
</function>

<function name="gtk_color_chooser_set_rgba">
<description>
Sets the color.

Deprecated: 4.10: Use [class@Gtk.ColorDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkColorChooser`
</parameter_description>
</parameter>
<parameter name="color">
<parameter_description> the new color
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_color_chooser_set_use_alpha">
<description>
Sets whether or not the color chooser should use the alpha channel.

Deprecated: 4.10: Use [class@Gtk.ColorDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkColorChooser`
</parameter_description>
</parameter>
<parameter name="use_alpha">
<parameter_description> %TRUE if color chooser should use alpha channel, %FALSE if not
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_color_chooser_widget_new">
<description>
Creates a new `GtkColorChooserWidget`.


</description>
<parameters>
</parameters>
<return> a new `GtkColorChooserWidget`
</return>
</function>

<function name="gtk_color_dialog_button_get_dialog">
<description>
Returns the `GtkColorDialog` of @self.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColorDialogButton`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkColorDialog`

</return>
</function>

<function name="gtk_color_dialog_button_get_rgba">
<description>
Returns the color of the button.

This function is what should be used to obtain
the color that was chosen by the user. To get
informed about changes, listen to &quot;notify::rgba&quot;.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColorDialogButton`
</parameter_description>
</parameter>
</parameters>
<return> the color

</return>
</function>

<function name="gtk_color_dialog_button_new">
<description>
Creates a new `GtkColorDialogButton` with the
given `GtkColorDialog`.

You can pass `NULL` to this function and set a `GtkColorDialog`
later. The button will be insensitive until that happens.

Since: 4.10

</description>
<parameters>
<parameter name="dialog">
<parameter_description> the `GtkColorDialog` to use
</parameter_description>
</parameter>
</parameters>
<return> the new `GtkColorDialogButton`

</return>
</function>

<function name="gtk_color_dialog_button_set_dialog">
<description>
Sets a `GtkColorDialog` object to use for
creating the color chooser dialog that is
presented when the user clicks the button.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColorDialogButton`
</parameter_description>
</parameter>
<parameter name="dialog">
<parameter_description> the new `GtkColorDialog`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_color_dialog_button_set_rgba">
<description>
Sets the color of the button.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColorDialogButton`
</parameter_description>
</parameter>
<parameter name="color">
<parameter_description> the new color
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_color_dialog_choose_rgba">
<description>
This function initiates a color choice operation by
presenting a color chooser dialog to the user.

The @callback will be called when the dialog is dismissed.
It should call [method@Gtk.ColorDialog.choose_rgba_finish]
to obtain the result.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColorDialog`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="initial_color">
<parameter_description> the color to select initially
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_color_dialog_choose_rgba_finish">
<description>
Finishes the [method@Gtk.ColorDialog.choose_rgba] call and
returns the resulting color.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColorDialog`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] error
</parameter_description>
</parameter>
</parameters>
<return> the selected color, or
`NULL` and @error is set

</return>
</function>

<function name="gtk_color_dialog_get_modal">
<description>
Returns whether the color chooser dialog
blocks interaction with the parent window
while it is presented.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColorDialog`
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if the color chooser dialog is modal

</return>
</function>

<function name="gtk_color_dialog_get_title">
<description>
Returns the title that will be shown on the
color chooser dialog.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColorDialog`
</parameter_description>
</parameter>
</parameters>
<return> the title

</return>
</function>

<function name="gtk_color_dialog_get_with_alpha">
<description>
Returns whether colors may have alpha.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColorDialog`
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if colors may have alpha

</return>
</function>

<function name="gtk_color_dialog_new">
<description>
Creates a new `GtkColorDialog` object.

Since: 4.10

</description>
<parameters>
</parameters>
<return> the new `GtkColorDialog`

</return>
</function>

<function name="gtk_color_dialog_set_modal">
<description>
Sets whether the color chooser dialog
blocks interaction with the parent window
while it is presented.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColorDialog`
</parameter_description>
</parameter>
<parameter name="modal">
<parameter_description> the new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_color_dialog_set_title">
<description>
Sets the title that will be shown on the
color chooser dialog.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColorDialog`
</parameter_description>
</parameter>
<parameter name="title">
<parameter_description> the new title
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_color_dialog_set_with_alpha">
<description>
Sets whether colors may have alpha.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColorDialog`
</parameter_description>
</parameter>
<parameter name="with_alpha">
<parameter_description> the new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_append_column">
<description>
Appends the @column to the end of the columns in @self.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> a `GtkColumnViewColumn` that hasn't been added to a
`GtkColumnView` yet
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_cell_get_child">
<description>
Gets the child previously set via gtk_column_view_cell_set_child() or
%NULL if none was set.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewCell`
</parameter_description>
</parameter>
</parameters>
<return> The child

</return>
</function>

<function name="gtk_column_view_cell_get_focusable">
<description>
Checks if a list item has been set to be focusable via
gtk_column_view_cell_set_focusable().

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewCell`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the item is focusable

</return>
</function>

<function name="gtk_column_view_cell_get_item">
<description>
Gets the model item that associated with @self.

If @self is unbound, this function returns %NULL.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewCell`
</parameter_description>
</parameter>
</parameters>
<return> The item displayed

</return>
</function>

<function name="gtk_column_view_cell_get_position">
<description>
Gets the position in the model that @self currently displays.

If @self is unbound, %GTK_INVALID_LIST_POSITION is returned.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewCell`
</parameter_description>
</parameter>
</parameters>
<return> The position of this item

</return>
</function>

<function name="gtk_column_view_cell_get_selected">
<description>
Checks if the item is displayed as selected.

The selected state is maintained by the liste widget and its model
and cannot be set otherwise.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewCell`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the item is selected.

</return>
</function>

<function name="gtk_column_view_cell_set_child">
<description>
Sets the child to be used for this listitem.

This function is typically called by applications when
setting up a listitem so that the widget can be reused when
binding it multiple times.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewCell`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> The list item's child or %NULL to unset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_cell_set_focusable">
<description>
Sets @self to be focusable.

If an item is focusable, it can be focused using the keyboard.
This works similar to [method@Gtk.Widget.set_focusable].

Note that if items are not focusable, the keyboard cannot be used to activate
them and selecting only works if one of the listitem's children is focusable.

By default, list items are focusable.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewCell`
</parameter_description>
</parameter>
<parameter name="focusable">
<parameter_description> if the item should be focusable
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_column_get_column_view">
<description>
Gets the column view that's currently displaying this column.

If @self has not been added to a column view yet, %NULL is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> The column view displaying @self.
</return>
</function>

<function name="gtk_column_view_column_get_expand">
<description>
Returns whether this column should expand.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if this column expands
</return>
</function>

<function name="gtk_column_view_column_get_factory">
<description>
Gets the factory that's currently used to populate list items for
this column.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> The factory in use
</return>
</function>

<function name="gtk_column_view_column_get_fixed_width">
<description>
Gets the fixed width of the column.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> the fixed with of the column
</return>
</function>

<function name="gtk_column_view_column_get_header_menu">
<description>
Gets the menu model that is used to create the context menu
for the column header.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> the `GMenuModel`
</return>
</function>

<function name="gtk_column_view_column_get_id">
<description>
Returns the ID set with gtk_column_view_column_set_id().

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> The column's ID

</return>
</function>

<function name="gtk_column_view_column_get_resizable">
<description>
Returns whether this column is resizable.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if this column is resizable
</return>
</function>

<function name="gtk_column_view_column_get_sorter">
<description>
Returns the sorter that is associated with the column.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkSorter` of @self
</return>
</function>

<function name="gtk_column_view_column_get_title">
<description>
Returns the title set with gtk_column_view_column_set_title().


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> The column's title
</return>
</function>

<function name="gtk_column_view_column_get_visible">
<description>
Returns whether this column is visible.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if this column is visible
</return>
</function>

<function name="gtk_column_view_column_new">
<description>
Creates a new `GtkColumnViewColumn` that uses the given @factory for
mapping items to widgets.

You most likely want to call [method@Gtk.ColumnView.append_column] next.

The function takes ownership of the argument, so you can write code like:

```c
column = gtk_column_view_column_new (_(&quot;Name&quot;),
gtk_builder_list_item_factory_new_from_resource (&quot;/name.ui&quot;));
```


</description>
<parameters>
<parameter name="title">
<parameter_description> Title to use for this column
</parameter_description>
</parameter>
<parameter name="factory">
<parameter_description> The factory to populate items with
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkColumnViewColumn` using the given @factory
</return>
</function>

<function name="gtk_column_view_column_set_expand">
<description>
Sets the column to take available extra space.

The extra space is shared equally amongst all columns that
have the expand set to %TRUE.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
<parameter name="expand">
<parameter_description> %TRUE if this column should expand to fill available sace
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_column_set_factory">
<description>
Sets the `GtkListItemFactory` to use for populating list items for this
column.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
<parameter name="factory">
<parameter_description> the factory to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_column_set_fixed_width">
<description>
If @fixed_width is not -1, sets the fixed width of @column;
otherwise unsets it.

Setting a fixed width overrides the automatically calculated
width. Interactive resizing also sets the “fixed-width” property.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
<parameter name="fixed_width">
<parameter_description> the new fixed width, or -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_column_set_header_menu">
<description>
Sets the menu model that is used to create the context menu
for the column header.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
<parameter name="menu">
<parameter_description> a `GMenuModel`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_column_set_id">
<description>
Sets the id of this column.

GTK makes no use of this, but applications can use it when
storing column view configuration.

It is up to callers to ensure uniqueness of IDs.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> ID to use for this column
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_column_set_resizable">
<description>
Sets whether this column should be resizable by dragging.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
<parameter name="resizable">
<parameter_description> whether this column should be resizable
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_column_set_sorter">
<description>
Associates a sorter with the column.

If @sorter is %NULL, the column will not let users change
the sorting by clicking on its header.

This sorter can be made active by clicking on the column
header, or by calling [method@Gtk.ColumnView.sort_by_column].

See [method@Gtk.ColumnView.get_sorter] for the necessary steps
for setting up customizable sorting for [class@Gtk.ColumnView].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
<parameter name="sorter">
<parameter_description> the `GtkSorter` to associate with @column
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_column_set_title">
<description>
Sets the title of this column.

The title is displayed in the header of a `GtkColumnView`
for this column and is therefore user-facing text that should
be translated.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
<parameter name="title">
<parameter_description> Title to use for this column
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_column_set_visible">
<description>
Sets whether this column should be visible in views.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewColumn`
</parameter_description>
</parameter>
<parameter name="visible">
<parameter_description> whether this column should be visible
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_get_columns">
<description>
Gets the list of columns in this column view.

This list is constant over the lifetime of @self and can be used to
monitor changes to the columns of @self by connecting to the
::items-changed signal.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
</parameters>
<return> The list managing the columns
</return>
</function>

<function name="gtk_column_view_get_enable_rubberband">
<description>
Returns whether rows can be selected by dragging with the mouse.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if rubberband selection is enabled
</return>
</function>

<function name="gtk_column_view_get_header_factory">
<description>
Gets the factory that's currently used to populate section headers.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
</parameters>
<return> The factory in use

</return>
</function>

<function name="gtk_column_view_get_model">
<description>
Gets the model that's currently used to read the items displayed.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
</parameters>
<return> The model in use
</return>
</function>

<function name="gtk_column_view_get_reorderable">
<description>
Returns whether columns are reorderable.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if columns are reorderable
</return>
</function>

<function name="gtk_column_view_get_row_factory">
<description>
Gets the factory set via [method@Gtk.ColumnView.set_row_factory].

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
</parameters>
<return> The factory

</return>
</function>

<function name="gtk_column_view_get_show_column_separators">
<description>
Returns whether the list should show separators
between columns.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the list shows column separators
</return>
</function>

<function name="gtk_column_view_get_show_row_separators">
<description>
Returns whether the list should show separators
between rows.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the list shows separators
</return>
</function>

<function name="gtk_column_view_get_single_click_activate">
<description>
Returns whether rows will be activated on single click and
selected on hover.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if rows are activated on single click
</return>
</function>

<function name="gtk_column_view_get_sorter">
<description>
Returns a special sorter that reflects the users sorting
choices in the column view.

To allow users to customizable sorting by clicking on column
headers, this sorter needs to be set on the sort model underneath
the model that is displayed by the view.

See [method@Gtk.ColumnViewColumn.set_sorter] for setting up
per-column sorting.

Here is an example:
```c
gtk_column_view_column_set_sorter (column, sorter);
gtk_column_view_append_column (view, column);
sorter = g_object_ref (gtk_column_view_get_sorter (view)));
model = gtk_sort_list_model_new (store, sorter);
selection = gtk_no_selection_new (model);
gtk_column_view_set_model (view, selection);
```


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkSorter` of @self
</return>
</function>

<function name="gtk_column_view_get_tab_behavior">
<description>
Gets the behavior set for the &lt;kbd&gt;Tab&lt;/kbd&gt; key.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
</parameters>
<return> The behavior of the &lt;kbd&gt;Tab&lt;/kbd&gt; key

</return>
</function>

<function name="gtk_column_view_insert_column">
<description>
Inserts a column at the given position in the columns of @self.

If @column is already a column of @self, it will be repositioned.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position to insert @column at
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> the `GtkColumnViewColumn` to insert
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_new">
<description>
Creates a new `GtkColumnView`.

You most likely want to call [method@Gtk.ColumnView.append_column]
to add columns next.


</description>
<parameters>
<parameter name="model">
<parameter_description> the list model to use
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkColumnView`
</return>
</function>

<function name="gtk_column_view_remove_column">
<description>
Removes the @column from the list of columns of @self.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> a `GtkColumnViewColumn` that's part of @self
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_row_get_accessible_description">
<description>
Gets the accessible description of @self.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewRow`
</parameter_description>
</parameter>
</parameters>
<return> the accessible description

</return>
</function>

<function name="gtk_column_view_row_get_accessible_label">
<description>
Gets the accessible label of @self.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewRow`
</parameter_description>
</parameter>
</parameters>
<return> the accessible label

</return>
</function>

<function name="gtk_column_view_row_get_activatable">
<description>
Checks if the row has been set to be activatable via
gtk_column_view_row_set_activatable().

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewRow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the row is activatable

</return>
</function>

<function name="gtk_column_view_row_get_focusable">
<description>
Checks if a row item has been set to be focusable via
gtk_column_view_row_set_focusable().

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewRow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the row is focusable

</return>
</function>

<function name="gtk_column_view_row_get_item">
<description>
Gets the model item that associated with @self.

If @self is unbound, this function returns %NULL.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewRow`
</parameter_description>
</parameter>
</parameters>
<return> The item displayed

</return>
</function>

<function name="gtk_column_view_row_get_position">
<description>
Gets the position in the model that @self currently displays.

If @self is unbound, %GTK_INVALID_LIST_POSITION is returned.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewRow`
</parameter_description>
</parameter>
</parameters>
<return> The position of this row 

</return>
</function>

<function name="gtk_column_view_row_get_selectable">
<description>
Checks if the row has been set to be selectable via
gtk_column_view_row_set_selectable().

Do not confuse this function with [method@Gtk.ColumnViewRow.get_selected].

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewRow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the row is selectable

</return>
</function>

<function name="gtk_column_view_row_get_selected">
<description>
Checks if the item is selected that this row corresponds to.

The selected state is maintained by the list widget and its model
and cannot be set otherwise.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewRow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the item is selected.

</return>
</function>

<function name="gtk_column_view_row_set_accessible_description">
<description>
Sets the accessible description for the row,
which may be used by e.g. screen readers.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewRow`
</parameter_description>
</parameter>
<parameter name="description">
<parameter_description> the description
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_row_set_accessible_label">
<description>
Sets the accessible label for the row,
which may be used by e.g. screen readers.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewRow`
</parameter_description>
</parameter>
<parameter name="label">
<parameter_description> the label
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_row_set_activatable">
<description>
Sets @self to be activatable.

If a row is activatable, double-clicking on the row, using
the Return key or calling gtk_widget_activate() will activate
the row. Activating instructs the containing columnview to 
emit the [signal@Gtk.ColumnView::activate] signal.

By default, row are activatable.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewRow`
</parameter_description>
</parameter>
<parameter name="activatable">
<parameter_description> if the row should be activatable
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_row_set_focusable">
<description>
Sets @self to be focusable.

If a row is focusable, it can be focused using the keyboard.
This works similar to [method@Gtk.Widget.set_focusable].

Note that if row are not focusable, the contents of cells can still be focused if
they are focusable.

By default, rows are focusable.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewRow`
</parameter_description>
</parameter>
<parameter name="focusable">
<parameter_description> if the row should be focusable
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_row_set_selectable">
<description>
Sets @self to be selectable.

If a row is selectable, clicking on the row or using the keyboard
will try to select or unselect the row. Whether this succeeds is up to
the model to determine, as it is managing the selected state.

Note that this means that making a row non-selectable has no
influence on the selected state at all. A non-selectable row
may still be selected.

By default, rows are selectable.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewRow`
</parameter_description>
</parameter>
<parameter name="selectable">
<parameter_description> if the row should be selectable
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_scroll_to">
<description>
Scroll to the row at the given position - or cell if a column is
given - and performs the actions specified in @flags.

This function works no matter if the listview is shown or focused.
If it isn't, then the changes will take effect once that happens.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> The columnview to scroll in
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> position of the item
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> The column to scroll to
or %NULL to not scroll columns.
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> actions to perform
</parameter_description>
</parameter>
<parameter name="scroll">
<parameter_description> details of how to perform
the scroll operation or %NULL to scroll into view
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_set_enable_rubberband">
<description>
Sets whether selections can be changed by dragging with the mouse.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
<parameter name="enable_rubberband">
<parameter_description> %TRUE to enable rubberband selection
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_set_header_factory">
<description>
Sets the `GtkListItemFactory` to use for populating the
[class@Gtk.ListHeader] objects used in section headers.

If this factory is set to %NULL, the list will not show
section headers.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
<parameter name="factory">
<parameter_description> the factory to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_set_model">
<description>
Sets the model to use.

This must be a [iface@Gtk.SelectionModel].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> the model to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_set_reorderable">
<description>
Sets whether columns should be reorderable by dragging.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
<parameter name="reorderable">
<parameter_description> whether columns should be reorderable
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_set_row_factory">
<description>
Sets the factory used for configuring rows. The factory must be for configuring
[class@Gtk.ColumnViewRow] objects.

If this factory is not set - which is the default - then the defaults will be used.

This factory is not used to set the widgets displayed in the individual cells. For
that see [method@GtkColumnViewColumn.set_factory] and [class@GtkColumnViewCell].

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
<parameter name="factory">
<parameter_description> The row factory
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_set_show_column_separators">
<description>
Sets whether the list should show separators
between columns.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
<parameter name="show_column_separators">
<parameter_description> %TRUE to show column separators
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_set_show_row_separators">
<description>
Sets whether the list should show separators
between rows.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
<parameter name="show_row_separators">
<parameter_description> %TRUE to show row separators
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_set_single_click_activate">
<description>
Sets whether rows should be activated on single click and
selected on hover.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
<parameter name="single_click_activate">
<parameter_description> %TRUE to activate items on single click
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_set_tab_behavior">
<description>
Sets the behavior of the &lt;kbd&gt;Tab&lt;/kbd&gt; and &lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;Tab&lt;/kbd&gt; keys.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
<parameter name="tab_behavior">
<parameter_description> The desired tab behavior
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_sort_by_column">
<description>
Sets the sorting of the view.

This function should be used to set up the initial sorting.
At runtime, users can change the sorting of a column view
by clicking on the list headers.

This call only has an effect if the sorter returned by
[method@Gtk.ColumnView.get_sorter] is set on a sort model,
and [method@Gtk.ColumnViewColumn.set_sorter] has been called
on @column to associate a sorter with the column.

If @column is %NULL, the view will be unsorted.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnView`
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> the `GtkColumnViewColumn` to sort by
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> the direction to sort in
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_column_view_sorter_get_n_sort_columns">
<description>
Returns the number of columns by which the sorter sorts.

If the sorter of the primary sort column does not determine
a total order, then the secondary sorters are consulted to
break the ties.

Use the [signal@Gtk.Sorter::changed] signal to get notified
when the number of sort columns changes.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewSorter`
</parameter_description>
</parameter>
</parameters>
<return> the number of sort columns

</return>
</function>

<function name="gtk_column_view_sorter_get_nth_sort_column">
<description>
Gets the @position'th sort column and its associated sort order.

Use the [signal@Gtk.Sorter::changed] signal to get notified
when sort columns change.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewSorter`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position of the sort column to retrieve (0 for the
primary sort column)
</parameter_description>
</parameter>
<parameter name="sort_order">
<parameter_description> return location for the sort order
</parameter_description>
</parameter>
</parameters>
<return> the @positions sort column

</return>
</function>

<function name="gtk_column_view_sorter_get_primary_sort_column">
<description>
Returns the primary sort column.

The primary sort column is the one that displays the triangle
in a column view header.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewSorter`
</parameter_description>
</parameter>
</parameters>
<return> the primary sort column

</return>
</function>

<function name="gtk_column_view_sorter_get_primary_sort_order">
<description>
Returns the primary sort order.

The primary sort order determines whether the triangle displayed
in the column view header of the primary sort column points upwards
or downwards.

If there is no primary sort column, then this function returns
`GTK_SORT_ASCENDING`.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkColumnViewSorter`
</parameter_description>
</parameter>
</parameters>
<return> the primary sort order

</return>
</function>

<function name="gtk_combo_box_get_active">
<description>
Returns the index of the currently active item.

If the model is a non-flat treemodel, and the active item is not
an immediate child of the root of the tree, this function returns
`gtk_tree_path_get_indices (path)[0]`, where `path` is the
[struct@Gtk.TreePath] of the active item.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBox`
</parameter_description>
</parameter>
</parameters>
<return> An integer which is the index of the currently active item,
or -1 if there’s no active item

</return>
</function>

<function name="gtk_combo_box_get_active_id">
<description>
Returns the ID of the active row of @combo_box.

This value is taken from the active row and the column specified
by the [property@Gtk.ComboBox:id-column] property of @combo_box
(see [method@Gtk.ComboBox.set_id_column]).

The returned value is an interned string which means that you can
compare the pointer by value to other interned strings and that you
must not free it.

If the [property@Gtk.ComboBox:id-column] property of @combo_box is
not set, or if no row is active, or if the active row has a %NULL
ID value, then %NULL is returned.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> a `GtkComboBox`
</parameter_description>
</parameter>
</parameters>
<return> the ID of the active row

</return>
</function>

<function name="gtk_combo_box_get_active_iter">
<description>
Sets @iter to point to the currently active item.

If no item is active, @iter is left unchanged.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBox`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter was set, %FALSE otherwise

</return>
</function>

<function name="gtk_combo_box_get_button_sensitivity">
<description>
Returns whether the combo box sets the dropdown button
sensitive or not when there are no items in the model.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> a `GtkComboBox`
</parameter_description>
</parameter>
</parameters>
<return> %GTK_SENSITIVITY_ON if the dropdown button
is sensitive when the model is empty, %GTK_SENSITIVITY_OFF
if the button is always insensitive or %GTK_SENSITIVITY_AUTO
if it is only sensitive as long as the model has one item to
be selected.

</return>
</function>

<function name="gtk_combo_box_get_child">
<description>
Gets the child widget of @combo_box.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> a `GtkComboBox`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @combo_box

</return>
</function>

<function name="gtk_combo_box_get_entry_text_column">
<description>
Returns the column which @combo_box is using to get the strings
from to display in the internal entry.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBox`
</parameter_description>
</parameter>
</parameters>
<return> A column in the data source model of @combo_box.

</return>
</function>

<function name="gtk_combo_box_get_has_entry">
<description>
Returns whether the combo box has an entry.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> a `GtkComboBox`
</parameter_description>
</parameter>
</parameters>
<return> whether there is an entry in @combo_box.

</return>
</function>

<function name="gtk_combo_box_get_id_column">
<description>
Returns the column which @combo_box is using to get string IDs
for values from.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBox`
</parameter_description>
</parameter>
</parameters>
<return> A column in the data source model of @combo_box.

</return>
</function>

<function name="gtk_combo_box_get_model">
<description>
Returns the `GtkTreeModel` of @combo_box.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBox`
</parameter_description>
</parameter>
</parameters>
<return> A `GtkTreeModel` which was passed
during construction.

</return>
</function>

<function name="gtk_combo_box_get_popup_fixed_width">
<description>
Gets whether the popup uses a fixed width.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> a `GtkComboBox`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the popup uses a fixed width

</return>
</function>

<function name="gtk_combo_box_get_row_separator_func">
<description>
Returns the current row separator function.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> a `GtkComboBox`
</parameter_description>
</parameter>
</parameters>
<return> the current row separator function.

</return>
</function>

<function name="gtk_combo_box_new">
<description>
Creates a new empty `GtkComboBox`.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
</parameters>
<return> A new `GtkComboBox`

</return>
</function>

<function name="gtk_combo_box_new_with_entry">
<description>
Creates a new empty `GtkComboBox` with an entry.

In order to use a combo box with entry, you need to tell it
which column of the model contains the text for the entry
by calling [method@Gtk.ComboBox.set_entry_text_column].

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
</parameters>
<return> A new `GtkComboBox`

</return>
</function>

<function name="gtk_combo_box_new_with_model">
<description>
Creates a new `GtkComboBox` with a model.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
</parameters>
<return> A new `GtkComboBox`

</return>
</function>

<function name="gtk_combo_box_new_with_model_and_entry">
<description>
Creates a new empty `GtkComboBox` with an entry and a model.

See also [ctor@Gtk.ComboBox.new_with_entry].

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="model">
<parameter_description> A `GtkTreeModel`
</parameter_description>
</parameter>
</parameters>
<return> A new `GtkComboBox`

</return>
</function>

<function name="gtk_combo_box_popdown">
<description>
Hides the menu or dropdown list of @combo_box.

This function is mostly intended for use by accessibility technologies;
applications should have little use for it.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> a `GtkComboBox`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_popup">
<description>
Pops up the menu or dropdown list of @combo_box.

This function is mostly intended for use by accessibility technologies;
applications should have little use for it.

Before calling this, @combo_box must be mapped, or nothing will happen.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> a `GtkComboBox`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_popup_for_device">
<description>
Pops up the menu of @combo_box.

Note that currently this does not do anything with the device, as it was
previously only used for list-mode combo boxes, and those were removed
in GTK 4. However, it is retained in case similar functionality is added
back later.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> a `GtkComboBox`
</parameter_description>
</parameter>
<parameter name="device">
<parameter_description> a `GdkDevice`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_set_active">
<description>
Sets the active item of @combo_box to be the item at @index.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> a `GtkComboBox`
</parameter_description>
</parameter>
<parameter name="index_">
<parameter_description> An index in the model passed during construction,
or -1 to have no active item
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_set_active_id">
<description>
Changes the active row of @combo_box to the one that has an ID equal to
@active_id.

If @active_id is %NULL, the active row is unset. Rows having
a %NULL ID string cannot be made active by this function.

If the [property@Gtk.ComboBox:id-column] property of @combo_box is
unset or if no row has the given ID then the function does nothing
and returns %FALSE.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> a `GtkComboBox`
</parameter_description>
</parameter>
<parameter name="active_id">
<parameter_description> the ID of the row to select
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a row with a matching ID was found. If a %NULL
@active_id was given to unset the active row, the function
always returns %TRUE.

</return>
</function>

<function name="gtk_combo_box_set_active_iter">
<description>
Sets the current active item to be the one referenced by @iter.

If @iter is %NULL, the active item is unset.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBox`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> The `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_set_button_sensitivity">
<description>
Sets whether the dropdown button of the combo box should update
its sensitivity depending on the model contents.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> a `GtkComboBox`
</parameter_description>
</parameter>
<parameter name="sensitivity">
<parameter_description> specify the sensitivity of the dropdown button
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_set_child">
<description>
Sets the child widget of @combo_box.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> a `GtkComboBox`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_set_entry_text_column">
<description>
Sets the model column which @combo_box should use to get strings
from to be @text_column.

For this column no separate
[class@Gtk.CellRenderer] is needed.

The column @text_column in the model of @combo_box must be of
type %G_TYPE_STRING.

This is only relevant if @combo_box has been created with
[property@Gtk.ComboBox:has-entry] as %TRUE.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBox`
</parameter_description>
</parameter>
<parameter name="text_column">
<parameter_description> A column in @model to get the strings from for
the internal entry
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_set_id_column">
<description>
Sets the model column which @combo_box should use to get string IDs
for values from.

The column @id_column in the model of @combo_box must be of type
%G_TYPE_STRING.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBox`
</parameter_description>
</parameter>
<parameter name="id_column">
<parameter_description> A column in @model to get string IDs for values from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_set_model">
<description>
Sets the model used by @combo_box to be @model.

Will unset a previously set model (if applicable). If model is %NULL,
then it will unset the model.

Note that this function does not clear the cell renderers, you have to
call [method@Gtk.CellLayout.clear] yourself if you need to set up different
cell renderers for the new model.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBox`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> A `GtkTreeModel`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_set_popup_fixed_width">
<description>
Specifies whether the popup’s width should be a fixed width.

If @fixed is %TRUE, the popup's width is set to match the
allocated width of the combo box.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> a `GtkComboBox`
</parameter_description>
</parameter>
<parameter name="fixed">
<parameter_description> whether to use a fixed popup width
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_set_row_separator_func">
<description>
Sets the row separator function, which is used to determine
whether a row should be drawn as a separator.

If the row separator function is %NULL, no separators are drawn.
This is the default value.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> a `GtkComboBox`
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> a `GtkTreeViewRowSeparatorFunc`
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> user data to pass to @func
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> destroy notifier for @data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_text_append">
<description>
Appends @text to the list of strings stored in @combo_box.

If @id is non-%NULL then it is used as the ID of the row.

This is the same as calling [method@Gtk.ComboBoxText.insert]
with a position of -1.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBoxText`
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> a string ID for this value
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> A string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_text_append_text">
<description>
Appends @text to the list of strings stored in @combo_box.

This is the same as calling [method@Gtk.ComboBoxText.insert_text]
with a position of -1.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBoxText`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> A string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_text_get_active_text">
<description>
Returns the currently active string in @combo_box.

If no row is currently selected, %NULL is returned.
If @combo_box contains an entry, this function will
return its contents (which will not necessarily
be an item from the list).

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBoxText`
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated
string containing the currently active text.
Must be freed with g_free().

</return>
</function>

<function name="gtk_combo_box_text_insert">
<description>
Inserts @text at @position in the list of strings stored in @combo_box.

If @id is non-%NULL then it is used as the ID of the row.
See [property@Gtk.ComboBox:id-column].

If @position is negative then @text is appended.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBoxText`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> An index to insert @text
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> a string ID for this value
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> A string to display
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_text_insert_text">
<description>
Inserts @text at @position in the list of strings stored in @combo_box.

If @position is negative then @text is appended.

This is the same as calling [method@Gtk.ComboBoxText.insert]
with a %NULL ID string.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBoxText`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> An index to insert @text
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> A string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_text_new">
<description>
Creates a new `GtkComboBoxText`.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
</parameters>
<return> A new `GtkComboBoxText`

</return>
</function>

<function name="gtk_combo_box_text_new_with_entry">
<description>
Creates a new `GtkComboBoxText` with an entry.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
</parameters>
<return> a new `GtkComboBoxText`

</return>
</function>

<function name="gtk_combo_box_text_prepend">
<description>
Prepends @text to the list of strings stored in @combo_box.

If @id is non-%NULL then it is used as the ID of the row.

This is the same as calling [method@Gtk.ComboBoxText.insert]
with a position of 0.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBox`
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> a string ID for this value
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> a string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_text_prepend_text">
<description>
Prepends @text to the list of strings stored in @combo_box.

This is the same as calling [method@Gtk.ComboBoxText.insert_text]
with a position of 0.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBox`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> A string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_text_remove">
<description>
Removes the string at @position from @combo_box.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBox`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> Index of the item to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_combo_box_text_remove_all">
<description>
Removes all the text entries from the combo box.

Deprecated: 4.10: Use [class@Gtk.DropDown]

</description>
<parameters>
<parameter name="combo_box">
<parameter_description> A `GtkComboBoxText`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_constant_expression_get_value">
<description>
Gets the value that a constant expression evaluates to.


</description>
<parameters>
<parameter name="expression">
<parameter_description> a constant `GtkExpression`
</parameter_description>
</parameter>
</parameters>
<return> the value
</return>
</function>

<function name="gtk_constant_expression_new">
<description>
Creates a `GtkExpression` that evaluates to the
object given by the arguments.


</description>
<parameters>
<parameter name="value_type">
<parameter_description> The type of the object
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments to create the object from
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkExpression`
</return>
</function>

<function name="gtk_constant_expression_new_for_value">
<description>
Creates an expression that always evaluates to the given `value`.


</description>
<parameters>
<parameter name="value">
<parameter_description> a `GValue`
</parameter_description>
</parameter>
</parameters>
<return>  a new `GtkExpression`
</return>
</function>

<function name="gtk_constraint_get_constant">
<description>
Retrieves the constant factor added to the source attributes' value.


</description>
<parameters>
<parameter name="constraint">
<parameter_description> a `GtkConstraint`
</parameter_description>
</parameter>
</parameters>
<return> a constant factor
</return>
</function>

<function name="gtk_constraint_get_multiplier">
<description>
Retrieves the multiplication factor applied to the source
attribute's value.


</description>
<parameters>
<parameter name="constraint">
<parameter_description> a `GtkConstraint`
</parameter_description>
</parameter>
</parameters>
<return> a multiplication factor
</return>
</function>

<function name="gtk_constraint_get_relation">
<description>
The order relation between the terms of the constraint.


</description>
<parameters>
<parameter name="constraint">
<parameter_description> a `GtkConstraint`
</parameter_description>
</parameter>
</parameters>
<return> a relation type
</return>
</function>

<function name="gtk_constraint_get_source">
<description>
Retrieves the [iface@Gtk.ConstraintTarget] used as the source for the
constraint.

If the source is set to `NULL` at creation, the constraint will use
the widget using the [class@Gtk.ConstraintLayout] as the source.


</description>
<parameters>
<parameter name="constraint">
<parameter_description> a `GtkConstraint`
</parameter_description>
</parameter>
</parameters>
<return> the source of the constraint
</return>
</function>

<function name="gtk_constraint_get_source_attribute">
<description>
Retrieves the attribute of the source to be read by the constraint.


</description>
<parameters>
<parameter name="constraint">
<parameter_description> a `GtkConstraint`
</parameter_description>
</parameter>
</parameters>
<return> the source's attribute
</return>
</function>

<function name="gtk_constraint_get_strength">
<description>
Retrieves the strength of the constraint.


</description>
<parameters>
<parameter name="constraint">
<parameter_description> a `GtkConstraint`
</parameter_description>
</parameter>
</parameters>
<return> the strength value
</return>
</function>

<function name="gtk_constraint_get_target">
<description>
Retrieves the [iface@Gtk.ConstraintTarget] used as the target for
the constraint.

If the targe is set to `NULL` at creation, the constraint will use
the widget using the [class@Gtk.ConstraintLayout] as the target.


</description>
<parameters>
<parameter name="constraint">
<parameter_description> a `GtkConstraint`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkConstraintTarget`
</return>
</function>

<function name="gtk_constraint_get_target_attribute">
<description>
Retrieves the attribute of the target to be set by the constraint.


</description>
<parameters>
<parameter name="constraint">
<parameter_description> a `GtkConstraint`
</parameter_description>
</parameter>
</parameters>
<return> the target's attribute
</return>
</function>

<function name="gtk_constraint_guide_get_max_size">
<description>
Gets the maximum size of @guide.

</description>
<parameters>
<parameter name="guide">
<parameter_description> a `GtkConstraintGuide` object
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> return location for the maximum width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> return location for the maximum height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_constraint_guide_get_min_size">
<description>
Gets the minimum size of @guide.

</description>
<parameters>
<parameter name="guide">
<parameter_description> a `GtkConstraintGuide` object
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> return location for the minimum width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> return location for the minimum height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_constraint_guide_get_name">
<description>
Retrieves the name set using gtk_constraint_guide_set_name().


</description>
<parameters>
<parameter name="guide">
<parameter_description> a `GtkConstraintGuide`
</parameter_description>
</parameter>
</parameters>
<return> the name of the guide
</return>
</function>

<function name="gtk_constraint_guide_get_nat_size">
<description>
Gets the natural size of @guide.

</description>
<parameters>
<parameter name="guide">
<parameter_description> a `GtkConstraintGuide` object
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> return location for the natural width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> return location for the natural height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_constraint_guide_get_strength">
<description>
Retrieves the strength set using gtk_constraint_guide_set_strength().


</description>
<parameters>
<parameter name="guide">
<parameter_description> a `GtkConstraintGuide`
</parameter_description>
</parameter>
</parameters>
<return> the strength of the constraint on the natural size
</return>
</function>

<function name="gtk_constraint_guide_new">
<description>
Creates a new `GtkConstraintGuide` object.

Return: a new `GtkConstraintGuide` object.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gtk_constraint_guide_set_max_size">
<description>
Sets the maximum size of @guide.

If @guide is attached to a `GtkConstraintLayout`,
the constraints will be updated to reflect the new size.

</description>
<parameters>
<parameter name="guide">
<parameter_description> a `GtkConstraintGuide` object
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the new maximum width, or -1 to not change it
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the new maximum height, or -1 to not change it
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_constraint_guide_set_min_size">
<description>
Sets the minimum size of @guide.

If @guide is attached to a `GtkConstraintLayout`,
the constraints will be updated to reflect the new size.

</description>
<parameters>
<parameter name="guide">
<parameter_description> a `GtkConstraintGuide` object
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the new minimum width, or -1 to not change it
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the new minimum height, or -1 to not change it
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_constraint_guide_set_name">
<description>
Sets a name for the given `GtkConstraintGuide`.

The name is useful for debugging purposes.

</description>
<parameters>
<parameter name="guide">
<parameter_description> a `GtkConstraintGuide`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> a name for the @guide
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_constraint_guide_set_nat_size">
<description>
Sets the natural size of @guide.

If @guide is attached to a `GtkConstraintLayout`,
the constraints will be updated to reflect the new size.

</description>
<parameters>
<parameter name="guide">
<parameter_description> a `GtkConstraintGuide` object
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the new natural width, or -1 to not change it
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the new natural height, or -1 to not change it
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_constraint_guide_set_strength">
<description>
Sets the strength of the constraint on the natural size of the
given `GtkConstraintGuide`.

</description>
<parameters>
<parameter name="guide">
<parameter_description> a `GtkConstraintGuide`
</parameter_description>
</parameter>
<parameter name="strength">
<parameter_description> the strength of the constraint
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_constraint_is_attached">
<description>
Checks whether the constraint is attached to a [class@Gtk.ConstraintLayout],
and it is contributing to the layout.


</description>
<parameters>
<parameter name="constraint">
<parameter_description> a `GtkConstraint`
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if the constraint is attached
</return>
</function>

<function name="gtk_constraint_is_constant">
<description>
Checks whether the constraint describes a relation between an attribute
on the [property@Gtk.Constraint:target] and a constant value.


</description>
<parameters>
<parameter name="constraint">
<parameter_description> a `GtkConstraint`
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if the constraint is a constant relation
</return>
</function>

<function name="gtk_constraint_is_required">
<description>
Checks whether the constraint is a required relation for solving the
constraint layout.


</description>
<parameters>
<parameter name="constraint">
<parameter_description> a `GtkConstraint`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the constraint is required
</return>
</function>

<function name="gtk_constraint_layout_add_constraint">
<description>
Adds a constraint to the layout manager.

The [property@Gtk.Constraint:source] and [property@Gtk.Constraint:target]
properties of `constraint` can be:

- set to `NULL` to indicate that the constraint refers to the
widget using `layout`
- set to the [class@Gtk.Widget] using `layout`
- set to a child of the [class@Gtk.Widget] using `layout`
- set to a [class@Gtk.ConstraintGuide] that is part of `layout`

The @layout acquires the ownership of @constraint after calling
this function.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkConstraintLayout`
</parameter_description>
</parameter>
<parameter name="constraint">
<parameter_description> a [class@Gtk.Constraint]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_constraint_layout_add_constraints_from_description">
<description>
Creates a list of constraints from a VFL description.

This function is a convenience wrapper around
[method@Gtk.ConstraintLayout.add_constraints_from_descriptionv], using
variadic arguments to populate the view/target map.


</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkConstraintLayout`
</parameter_description>
</parameter>
<parameter name="lines">
<parameter_description> an array of Visual Format Language lines
defining a set of constraints
</parameter_description>
</parameter>
<parameter name="n_lines">
<parameter_description> the number of lines
</parameter_description>
</parameter>
<parameter name="hspacing">
<parameter_description> default horizontal spacing value, or -1 for the fallback value
</parameter_description>
</parameter>
<parameter name="vspacing">
<parameter_description> default vertical spacing value, or -1 for the fallback value
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a `GError`
</parameter_description>
</parameter>
<parameter name="first_view">
<parameter_description> the name of a view in the VFL description, followed by the
[iface@Gtk.ConstraintTarget] to which it maps
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> a `NULL`-terminated list of view names and [iface@Gtk.ConstraintTarget]s
</parameter_description>
</parameter>
</parameters>
<return> the list of
[class@Gtk.Constraint]s that were added to the layout
</return>
</function>

<function name="gtk_constraint_layout_add_constraints_from_descriptionv">
<description>
Creates a list of constraints from a VFL description.

The Visual Format Language, VFL, is based on Apple's AutoLayout [VFL](https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/VisualFormatLanguage.html).

The `views` dictionary is used to match [iface@Gtk.ConstraintTarget]
instances to the symbolic view name inside the VFL.

The VFL grammar is:

```
&lt;visualFormatString&gt; = (&lt;orientation&gt;)?
(&lt;superview&gt;&lt;connection&gt;)?
&lt;view&gt;(&lt;connection&gt;&lt;view&gt;)*
(&lt;connection&gt;&lt;superview&gt;)?
&lt;orientation&gt; = 'H' | 'V'
&lt;superview&gt; = '|'
&lt;connection&gt; = '' | '-' &lt;predicateList&gt; '-' | '-'
&lt;predicateList&gt; = &lt;simplePredicate&gt; | &lt;predicateListWithParens&gt;
&lt;simplePredicate&gt; = &lt;metricName&gt; | &lt;positiveNumber&gt;
&lt;predicateListWithParens&gt; = '(' &lt;predicate&gt; (',' &lt;predicate&gt;)* ')'
&lt;predicate&gt; = (&lt;relation&gt;)? &lt;objectOfPredicate&gt; (&lt;operatorList&gt;)? ('@' &lt;priority&gt;)?
&lt;relation&gt; = '==' | '&lt;=' | '&gt;='
&lt;objectOfPredicate&gt; = &lt;constant&gt; | &lt;viewName&gt; | ('.' &lt;attributeName&gt;)?
&lt;priority&gt; = &lt;positiveNumber&gt; | 'required' | 'strong' | 'medium' | 'weak'
&lt;constant&gt; = &lt;number&gt;
&lt;operatorList&gt; = (&lt;multiplyOperator&gt;)? (&lt;addOperator&gt;)?
&lt;multiplyOperator&gt; = [ '*' | '/' ] &lt;positiveNumber&gt;
&lt;addOperator&gt; = [ '+' | '-' ] &lt;positiveNumber&gt;
&lt;viewName&gt; = [A-Za-z_]([A-Za-z0-9_]*) // A C identifier
&lt;metricName&gt; = [A-Za-z_]([A-Za-z0-9_]*) // A C identifier
&lt;attributeName&gt; = 'top' | 'bottom' | 'left' | 'right' | 'width' | 'height' |
'start' | 'end' | 'centerX' | 'centerY' | 'baseline'
&lt;positiveNumber&gt; // A positive real number parseable by g_ascii_strtod()
&lt;number&gt; // A real number parseable by g_ascii_strtod()
```

**Note**: The VFL grammar used by GTK is slightly different than the one
defined by Apple, as it can use symbolic values for the constraint's
strength instead of numeric values; additionally, GTK allows adding
simple arithmetic operations inside predicates.

Examples of VFL descriptions are:

```
// Default spacing
[button]-[textField]

// Width constraint
[button(&gt;=50)]

// Connection to super view
|-50-[purpleBox]-50-|

// Vertical layout
V:[topField]-10-[bottomField]

// Flush views
[maroonView][blueView]

// Priority
[button(100@strong)]

// Equal widths
[button1(==button2)]

// Multiple predicates
[flexibleButton(&gt;=70,&lt;=100)]

// A complete line of layout
|-[find]-[findNext]-[findField(&gt;=20)]-|

// Operators
[button1(button2 / 3 + 50)]

// Named attributes
[button1(==button2.height)]
```


</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkConstraintLayout`
</parameter_description>
</parameter>
<parameter name="lines">
<parameter_description> an array of Visual Format Language lines
defining a set of constraints
</parameter_description>
</parameter>
<parameter name="n_lines">
<parameter_description> the number of lines
</parameter_description>
</parameter>
<parameter name="hspacing">
<parameter_description> default horizontal spacing value, or -1 for the fallback value
</parameter_description>
</parameter>
<parameter name="vspacing">
<parameter_description> default vertical spacing value, or -1 for the fallback value
</parameter_description>
</parameter>
<parameter name="views">
<parameter_description> a dictionary of `[ name, target ]`
pairs; the `name` keys map to the view names in the VFL lines, while
the `target` values map to children of the widget using a `GtkConstraintLayout`,
or guides
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a `GError`
</parameter_description>
</parameter>
</parameters>
<return> the list of
[class@Gtk.Constraint] instances that were added to the layout
</return>
</function>

<function name="gtk_constraint_layout_add_guide">
<description>
Adds a guide to `layout`.

A guide can be used as the source or target of constraints,
like a widget, but it is not visible.

The `layout` acquires the ownership of `guide` after calling
this function.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkConstraintLayout`
</parameter_description>
</parameter>
<parameter name="guide">
<parameter_description> a [class@Gtk.ConstraintGuide] object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_constraint_layout_new">
<description>
Creates a new `GtkConstraintLayout` layout manager.


</description>
<parameters>
</parameters>
<return> the newly created `GtkConstraintLayout`
</return>
</function>

<function name="gtk_constraint_layout_observe_constraints">
<description>
Returns a `GListModel` to track the constraints that are
part of the layout.

Calling this function will enable extra internal bookkeeping
to track constraints and emit signals on the returned listmodel.
It may slow down operations a lot.

Applications should try hard to avoid calling this function
because of the slowdowns.


</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkConstraintLayout`
</parameter_description>
</parameter>
</parameters>
<return> a
`GListModel` tracking the layout's constraints
</return>
</function>

<function name="gtk_constraint_layout_observe_guides">
<description>
Returns a `GListModel` to track the guides that are
part of the layout.

Calling this function will enable extra internal bookkeeping
to track guides and emit signals on the returned listmodel.
It may slow down operations a lot.

Applications should try hard to avoid calling this function
because of the slowdowns.


</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkConstraintLayout`
</parameter_description>
</parameter>
</parameters>
<return> a
`GListModel` tracking the layout's guides
</return>
</function>

<function name="gtk_constraint_layout_remove_all_constraints">
<description>
Removes all constraints from the layout manager.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkConstraintLayout`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_constraint_layout_remove_constraint">
<description>
Removes `constraint` from the layout manager,
so that it no longer influences the layout.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkConstraintLayout`
</parameter_description>
</parameter>
<parameter name="constraint">
<parameter_description> a [class@Gtk.Constraint]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_constraint_layout_remove_guide">
<description>
Removes `guide` from the layout manager,
so that it no longer influences the layout.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkConstraintLayout`
</parameter_description>
</parameter>
<parameter name="guide">
<parameter_description> a [class@Gtk.ConstraintGuide] object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_constraint_new">
<description>
Creates a new constraint representing a relation between a layout
attribute on a source and a layout attribute on a target.


</description>
<parameters>
<parameter name="target">
<parameter_description> the target of the constraint
</parameter_description>
</parameter>
<parameter name="target_attribute">
<parameter_description> the attribute of `target` to be set
</parameter_description>
</parameter>
<parameter name="relation">
<parameter_description> the relation equivalence between `target_attribute` and `source_attribute`
</parameter_description>
</parameter>
<parameter name="source">
<parameter_description> the source of the constraint
</parameter_description>
</parameter>
<parameter name="source_attribute">
<parameter_description> the attribute of `source` to be read
</parameter_description>
</parameter>
<parameter name="multiplier">
<parameter_description> a multiplication factor to be applied to `source_attribute`
</parameter_description>
</parameter>
<parameter name="constant">
<parameter_description> a constant factor to be added to `source_attribute`
</parameter_description>
</parameter>
<parameter name="strength">
<parameter_description> the strength of the constraint
</parameter_description>
</parameter>
</parameters>
<return> the newly created constraint
</return>
</function>

<function name="gtk_constraint_new_constant">
<description>
Creates a new constraint representing a relation between a layout
attribute on a target and a constant value.


</description>
<parameters>
<parameter name="target">
<parameter_description> a the target of the constraint
</parameter_description>
</parameter>
<parameter name="target_attribute">
<parameter_description> the attribute of `target` to be set
</parameter_description>
</parameter>
<parameter name="relation">
<parameter_description> the relation equivalence between `target_attribute` and `constant`
</parameter_description>
</parameter>
<parameter name="constant">
<parameter_description> a constant factor to be set on `target_attribute`
</parameter_description>
</parameter>
<parameter name="strength">
<parameter_description> the strength of the constraint
</parameter_description>
</parameter>
</parameters>
<return> the newly created constraint
</return>
</function>

<function name="gtk_css_node_new">
<description>
Creates a new CSS node.


</description>
<parameters>
</parameters>
<return> the new CSS node
</return>
</function>

<function name="gtk_css_parser_consume_ident">
<description>
If the current token is an identifier, consumes it and returns
its name.

If the current token is not an identifier, an error is emitted
and %NULL is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCssParser`
</parameter_description>
</parameter>
</parameters>
<return> the name of the consumed identifier
</return>
</function>

<function name="gtk_css_parser_consume_string">
<description>
If the current token is a string, consumes it and return the string.

If the current token is not a string, an error is emitted
and %NULL is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCssParser`
</parameter_description>
</parameter>
</parameters>
<return> the name of the consumed string
</return>
</function>

<function name="gtk_css_parser_consume_url">
<description>
If the parser matches the `&lt;url&gt;` token from the [CSS
specification](https://drafts.csswg.org/css-values-4/#url-value),
consumes it, resolves the URL and returns the resulting `GFile`.
On failure, an error is emitted and %NULL is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCssParser`
</parameter_description>
</parameter>
</parameters>
<return> the resulting URL
</return>
</function>

<function name="gtk_css_parser_get_block_location">
<description>
Queries the start location of the token that started the current
block that is being parsed.

If no block is currently parsed, the beginning of the document
is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCssParser`
</parameter_description>
</parameter>
</parameters>
<return> The start location of the current block
</return>
</function>

<function name="gtk_css_parser_get_end_location">
<description>
Queries the location of the current token.

This function will return the location of the end of the
current token. In the case a token has been consumed, but no
new token has been queried yet via gtk_css_parser_peek_token()
or gtk_css_parser_get_token(), the previous token's end location
will be returned.

This function may return the same location as
gtk_css_parser_get_start_location() - in particular at the
beginning and end of the document.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCssParser`
</parameter_description>
</parameter>
<parameter name="out_location">
<parameter_description> (caller-allocates) Place to store the location
</parameter_description>
</parameter>
</parameters>
<return> the end location
</return>
</function>

<function name="gtk_css_parser_get_file">
<description>
Gets the file being parsed. If no file is associated with @self -
for example when raw data is parsed - %NULL is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCssParser`
</parameter_description>
</parameter>
</parameters>
<return> The file being parsed
</return>
</function>

<function name="gtk_css_parser_get_start_location">
<description>
Queries the location of the current token.

This function will return the location of the start of the
current token. In the case a token has been consumed, but no
new token has been queried yet via gtk_css_parser_peek_token()
or gtk_css_parser_get_token(), the previous token's start
location will be returned.

This function may return the same location as
gtk_css_parser_get_end_location() - in particular at the
beginning and end of the document.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCssParser`
</parameter_description>
</parameter>
</parameters>
<return> the start location
</return>
</function>

<function name="gtk_css_parser_has_function">
<description>
Checks if the next token is a function with the given @name.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCssParser`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name of function
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the next token is a function with the given @name
</return>
</function>

<function name="gtk_css_parser_has_ident">
<description>
Checks if the next token is an identifier with the given @name.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCssParser`
</parameter_description>
</parameter>
<parameter name="ident">
<parameter_description> name of identifier
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the next token is an identifier with the given @name
</return>
</function>

<function name="gtk_css_parser_has_token">
<description>
Checks if the next token is of @token_type.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCssParser`
</parameter_description>
</parameter>
<parameter name="token_type">
<parameter_description> type of the token to check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the next token is of @token_type
</return>
</function>

<function name="gtk_css_parser_resolve_url">
<description>
Resolves a given URL against the parser's location.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCssParser`
</parameter_description>
</parameter>
<parameter name="url">
<parameter_description> the URL to resolve
</parameter_description>
</parameter>
</parameters>
<return> a new `GFile` for the
resolved URL
</return>
</function>

<function name="gtk_css_parser_try_at_keyword">
<description>
Checks if the current token is an at-keyword token with the
given @keyword. If that is the case, the token is consumed
and %TRUE is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCssParser`
</parameter_description>
</parameter>
<parameter name="keyword">
<parameter_description> name of keyword to check for
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the token matched and was consumed.
</return>
</function>

<function name="gtk_css_parser_try_delim">
<description>
Checks if the current token is a delimiter matching the given
@codepoint. If that is the case, the token is consumed and
%TRUE is returned.

Keep in mind that not every unicode codepoint can be a delim
token.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCssParser`
</parameter_description>
</parameter>
<parameter name="codepoint">
<parameter_description> unicode character codepoint to check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the token matched and was consumed.
</return>
</function>

<function name="gtk_css_parser_try_ident">
<description>
Checks if the current token is an identifier matching the given
@ident string. If that is the case, the token is consumed
and %TRUE is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCssParser`
</parameter_description>
</parameter>
<parameter name="ident">
<parameter_description> identifier to check for
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the token matched and was consumed.
</return>
</function>

<function name="gtk_css_parser_try_token">
<description>
Consumes the next token if it matches the given @token_type.

This function can be used in loops like this:
do {
... parse one element ...
} while (gtk_css_parser_try_token (parser, GTK_CSS_TOKEN_COMMA);


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCssParser`
</parameter_description>
</parameter>
<parameter name="token_type">
<parameter_description> type of token to try
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a token was consumed
</return>
</function>

<function name="gtk_css_provider_load_from_bytes">
<description>
Loads @data into @css_provider.

This clears any previously loaded information.

Since: 4.12

</description>
<parameters>
<parameter name="css_provider">
<parameter_description> a `GtkCssProvider`
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> `GBytes` containing the data to load
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_css_provider_load_from_data">
<description>
Loads @data into @css_provider.

This clears any previously loaded information.

Deprecated: 4.12: Use [method@Gtk.CssProvider.load_from_string]
or [method@Gtk.CssProvider.load_from_bytes] instead

</description>
<parameters>
<parameter name="css_provider">
<parameter_description> a `GtkCssProvider`
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> CSS data to be parsed
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> the length of @data in bytes, or -1 for NUL terminated strings
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_css_provider_load_from_file">
<description>
Loads the data contained in @file into @css_provider.

This clears any previously loaded information.

</description>
<parameters>
<parameter name="css_provider">
<parameter_description> a `GtkCssProvider`
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description> `GFile` pointing to a file to load
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_css_provider_load_from_path">
<description>
Loads the data contained in @path into @css_provider.

This clears any previously loaded information.

</description>
<parameters>
<parameter name="css_provider">
<parameter_description> a `GtkCssProvider`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> the path of a filename to load, in the GLib filename encoding
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_css_provider_load_from_resource">
<description>
Loads the data contained in the resource at @resource_path into
the @css_provider.

This clears any previously loaded information.

</description>
<parameters>
<parameter name="css_provider">
<parameter_description> a `GtkCssProvider`
</parameter_description>
</parameter>
<parameter name="resource_path">
<parameter_description> a `GResource` resource path
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_css_provider_load_from_string">
<description>
Loads @string into @css_provider.

This clears any previously loaded information.

Since: 4.12

</description>
<parameters>
<parameter name="css_provider">
<parameter_description> a `GtkCssProvider`
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> the CSS to load
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_css_provider_load_named">
<description>
Loads a theme from the usual theme paths.

The actual process of finding the theme might change between
releases, but it is guaranteed that this function uses the same
mechanism to load the theme that GTK uses for loading its own theme.

</description>
<parameters>
<parameter name="provider">
<parameter_description> a `GtkCssProvider`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> A theme name
</parameter_description>
</parameter>
<parameter name="variant">
<parameter_description> variant to load, for example, &quot;dark&quot;, or
%NULL for the default
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_css_provider_new">
<description>
Returns a newly created `GtkCssProvider`.


</description>
<parameters>
</parameters>
<return> A new `GtkCssProvider`
</return>
</function>

<function name="gtk_css_provider_to_string">
<description>
Converts the @provider into a string representation in CSS
format.

Using [method@Gtk.CssProvider.load_from_data] with the return
value from this function on a new provider created with
[ctor@Gtk.CssProvider.new] will basically create a duplicate
of this @provider.


</description>
<parameters>
<parameter name="provider">
<parameter_description> the provider to write to a string
</parameter_description>
</parameter>
</parameters>
<return> a new string representing the @provider.
</return>
</function>

<function name="gtk_css_section_get_end_location">
<description>
Returns the location in the CSS document where this section ends.


</description>
<parameters>
<parameter name="section">
<parameter_description> the section
</parameter_description>
</parameter>
</parameters>
<return> The end location of
this section
</return>
</function>

<function name="gtk_css_section_get_file">
<description>
Gets the file that @section was parsed from.

If no such file exists, for example because the CSS was loaded via
[method@Gtk.CssProvider.load_from_data], then `NULL` is returned.


</description>
<parameters>
<parameter name="section">
<parameter_description> the section
</parameter_description>
</parameter>
</parameters>
<return> the `GFile` from which the `section`
was parsed
</return>
</function>

<function name="gtk_css_section_get_parent">
<description>
Gets the parent section for the given `section`.

The parent section is the section that contains this `section`. A special
case are sections of  type `GTK_CSS_SECTION_DOCUMEN`T. Their parent will
either be `NULL` if they are the original CSS document that was loaded by
[method@Gtk.CssProvider.load_from_file] or a section of type
`GTK_CSS_SECTION_IMPORT` if it was loaded with an `@import` rule from
a different file.


</description>
<parameters>
<parameter name="section">
<parameter_description> the section
</parameter_description>
</parameter>
</parameters>
<return> the parent section
</return>
</function>

<function name="gtk_css_section_get_start_location">
<description>
Returns the location in the CSS document where this section starts.


</description>
<parameters>
<parameter name="section">
<parameter_description> the section
</parameter_description>
</parameter>
</parameters>
<return> The start location of
this section
</return>
</function>

<function name="gtk_css_section_new">
<description>
Creates a new `GtkCssSection` referring to the section
in the given `file` from the `start` location to the
`end` location.


</description>
<parameters>
<parameter name="file">
<parameter_description> The file this section refers to
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> The start location
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> The end location
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkCssSection`
</return>
</function>

<function name="gtk_css_section_print">
<description>
Prints the `section` into `string` in a human-readable form.

This is a form like `gtk.css:32:1-23` to denote line 32, characters
1 to 23 in the file `gtk.css`.

</description>
<parameters>
<parameter name="section">
<parameter_description> a section
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> a `GString` to print to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_css_section_ref">
<description>
Increments the reference count on `section`.


</description>
<parameters>
<parameter name="section">
<parameter_description> a `GtkCssSection`
</parameter_description>
</parameter>
</parameters>
<return> the CSS section itself.
</return>
</function>

<function name="gtk_css_section_to_string">
<description>
Prints the section into a human-readable text form using
[method@Gtk.CssSection.print].


</description>
<parameters>
<parameter name="section">
<parameter_description> a `GtkCssSection`
</parameter_description>
</parameter>
</parameters>
<return> A new string.
</return>
</function>

<function name="gtk_css_section_unref">
<description>
Decrements the reference count on `section`, freeing the
structure if the reference count reaches 0.

</description>
<parameters>
<parameter name="section">
<parameter_description> a `GtkCssSection`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_css_selector_matches">
<description>
Checks if the @selector matches the given @node.


</description>
<parameters>
<parameter name="selector">
<parameter_description> the selector
</parameter_description>
</parameter>
<parameter name="node">
<parameter_description> The node to match
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the selector matches @node
</return>
</function>

<function name="gtk_css_value_get_dynamic_value">
<description>
Gets the dynamic value for a given timestamp. If @monotonic_time is 0,
the default value is returned.

See gtk_css_value_is_dynamic() for details about dynamic values.


</description>
<parameters>
<parameter name="value">
<parameter_description> a `GtkCssValue`
</parameter_description>
</parameter>
<parameter name="monotonic_time">
<parameter_description> the timestamp for which to get the dynamic value
</parameter_description>
</parameter>
</parameters>
<return> The dynamic value for @value at the given
timestamp
</return>
</function>

<function name="gtk_css_value_is_dynamic">
<description>
A &quot;dynamic&quot; value has a different value at different times. This means that
the value needs to be animated when time is progressing.

Examples of dynamic values are animated images, such as videos or dynamic shaders.

Use gtk_css_value_get_dynamic_value() to get the value for a given timestamp.


</description>
<parameters>
<parameter name="value">
<parameter_description> a `GtkCssValue`
</parameter_description>
</parameter>
</parameters>
<return>%TRUE if the value is dynamic
</return>
</function>

<function name="gtk_custom_filter_new">
<description>
Creates a new filter using the given @match_func to filter
items.

If @match_func is %NULL, the filter matches all items.

If the filter func changes its filtering behavior,
gtk_filter_changed() needs to be called.


</description>
<parameters>
<parameter name="match_func">
<parameter_description> function to filter items
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data to pass to @match_func
</parameter_description>
</parameter>
<parameter name="user_destroy">
<parameter_description> destroy notify for @user_data
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkCustomFilter`
</return>
</function>

<function name="gtk_custom_filter_set_filter_func">
<description>
Sets the function used for filtering items.

If @match_func is %NULL, the filter matches all items.

If the filter func changes its filtering behavior,
gtk_filter_changed() needs to be called.

If a previous function was set, its @user_destroy will be
called now.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCustomFilter`
</parameter_description>
</parameter>
<parameter name="match_func">
<parameter_description> function to filter items
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data to pass to @match_func
</parameter_description>
</parameter>
<parameter name="user_destroy">
<parameter_description> destroy notify for @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_custom_layout_new">
<description>
Creates a new legacy layout manager.

Legacy layout managers map to the old `GtkWidget` size negotiation
virtual functions, and are meant to be used during the transition
from layout containers to layout manager delegates.


</description>
<parameters>
<parameter name="request_mode">
<parameter_description> a function to retrieve
the `GtkSizeRequestMode` of the widget using the layout; the
default request mode is %GTK_SIZE_REQUEST_CONSTANT_SIZE
</parameter_description>
</parameter>
<parameter name="measure">
<parameter_description> a function to measure the widget using the layout manager
</parameter_description>
</parameter>
<parameter name="allocate">
<parameter_description> a function to allocate the children of the widget using
the layout manager
</parameter_description>
</parameter>
</parameters>
<return> the newly created `GtkCustomLayout`
</return>
</function>

<function name="gtk_custom_paper_unix_dialog_new">
<description>
Creates a new custom paper dialog.


</description>
<parameters>
<parameter name="title">
<parameter_description> the title of the dialog
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> transient parent of the dialog
</parameter_description>
</parameter>
</parameters>
<return> the new `GtkCustomPaperUnixDialog`
</return>
</function>

<function name="gtk_custom_sorter_new">
<description>
Creates a new `GtkSorter` that works by calling
@sort_func to compare items.

If @sort_func is %NULL, all items are considered equal.


</description>
<parameters>
<parameter name="sort_func">
<parameter_description> the `GCompareDataFunc` to use for sorting
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data to pass to @sort_func
</parameter_description>
</parameter>
<parameter name="user_destroy">
<parameter_description> destroy notify for @user_data
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkCustomSorter`
</return>
</function>

<function name="gtk_custom_sorter_set_sort_func">
<description>
Sets (or unsets) the function used for sorting items.

If @sort_func is %NULL, all items are considered equal.

If the sort func changes its sorting behavior,
gtk_sorter_changed() needs to be called.

If a previous function was set, its @user_destroy will be
called now.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkCustomSorter`
</parameter_description>
</parameter>
<parameter name="sort_func">
<parameter_description> function to sort items
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data to pass to @match_func
</parameter_description>
</parameter>
<parameter name="user_destroy">
<parameter_description> destroy notify for @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_dialog_add_action_widget">
<description>
Adds an activatable widget to the action area of a `GtkDialog`.

GTK connects a signal handler that will emit the
[signal@Gtk.Dialog::response] signal on the dialog when the widget
is activated. The widget is appended to the end of the dialog’s action
area.

If you want to add a non-activatable widget, simply pack it into
the @action_area field of the `GtkDialog` struct.

Deprecated: 4.10: Use [class@Gtk.Window] instead

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkDialog`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> an activatable widget
</parameter_description>
</parameter>
<parameter name="response_id">
<parameter_description> response ID for @child
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_dialog_add_button">
<description>
Adds a button with the given text.

GTK arranges things so that clicking the button will emit the
[signal@Gtk.Dialog::response] signal with the given @response_id.
The button is appended to the end of the dialog’s action area.
The button widget is returned, but usually you don’t need it.

Deprecated: 4.10: Use [class@Gtk.Window] instead

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkDialog`
</parameter_description>
</parameter>
<parameter name="button_text">
<parameter_description> text of button
</parameter_description>
</parameter>
<parameter name="response_id">
<parameter_description> response ID for the button
</parameter_description>
</parameter>
</parameters>
<return> the `GtkButton` widget that was added

</return>
</function>

<function name="gtk_dialog_add_buttons">
<description>
Adds multiple buttons.

This is the same as calling [method@Gtk.Dialog.add_button]
repeatedly. The variable argument list should be %NULL-terminated
as with [ctor@Gtk.Dialog.new_with_buttons]. Each button must have both
text and response ID.

Deprecated: 4.10: Use [class@Gtk.Window] instead

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkDialog`
</parameter_description>
</parameter>
<parameter name="first_button_text">
<parameter_description> button text
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> response ID for first button, then more text-response_id pairs
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_dialog_get_content_area">
<description>
Returns the content area of @dialog.

Deprecated: 4.10: Use [class@Gtk.Window] instead

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkDialog`
</parameter_description>
</parameter>
</parameters>
<return> the content area `GtkBox`.

</return>
</function>

<function name="gtk_dialog_get_header_bar">
<description>
Returns the header bar of @dialog.

Note that the headerbar is only used by the dialog if the
[property@Gtk.Dialog:use-header-bar] property is %TRUE.

Deprecated: 4.10: Use [class@Gtk.Window] instead

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkDialog`
</parameter_description>
</parameter>
</parameters>
<return> the header bar

</return>
</function>

<function name="gtk_dialog_get_response_for_widget">
<description>
Gets the response id of a widget in the action area
of a dialog.

Deprecated: 4.10: Use [class@Gtk.Window] instead

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkDialog`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> a widget in the action area of @dialog
</parameter_description>
</parameter>
</parameters>
<return> the response id of @widget, or %GTK_RESPONSE_NONE
if @widget doesn’t have a response id set.

</return>
</function>

<function name="gtk_dialog_get_widget_for_response">
<description>
Gets the widget button that uses the given response ID in the action area
of a dialog.

Deprecated: 4.10: Use [class@Gtk.Window] instead

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkDialog`
</parameter_description>
</parameter>
<parameter name="response_id">
<parameter_description> the response ID used by the @dialog widget
</parameter_description>
</parameter>
</parameters>
<return> the @widget button that uses the given
@response_id

</return>
</function>

<function name="gtk_dialog_new">
<description>
Creates a new dialog box.

Widgets should not be packed into the `GtkWindow`
directly, but into the @content_area and @action_area,
as described above.

Deprecated: 4.10: Use [class@Gtk.Window] instead

</description>
<parameters>
</parameters>
<return> the new dialog as a `GtkWidget`

</return>
</function>

<function name="gtk_dialog_new_with_buttons">
<description>
Creates a new `GtkDialog` with the given title and transient parent.

The @flags argument can be used to make the dialog modal, have it
destroyed along with its transient parent, or make it use a headerbar.

Button text/response ID pairs should be listed in pairs, with a %NULL
pointer ending the list. Button text can be arbitrary text. A response
ID can be any positive number, or one of the values in the
[enum@Gtk.ResponseType] enumeration. If the user clicks one of these
buttons, `GtkDialog` will emit the [signal@Gtk.Dialog::response] signal
with the corresponding response ID.

If a `GtkDialog` receives a delete event, it will emit ::response with a
response ID of %GTK_RESPONSE_DELETE_EVENT.

However, destroying a dialog does not emit the ::response signal;
so be careful relying on ::response when using the
%GTK_DIALOG_DESTROY_WITH_PARENT flag.

Here’s a simple example:
```c
GtkWindow *main_app_window; // Window the dialog should show up on
GtkWidget *dialog;
GtkDialogFlags flags = GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT;
dialog = gtk_dialog_new_with_buttons (&quot;My dialog&quot;,
main_app_window,
flags,
_(&quot;_OK&quot;),
GTK_RESPONSE_ACCEPT,
_(&quot;_Cancel&quot;),
GTK_RESPONSE_REJECT,
NULL);
```

Deprecated: 4.10: Use [class@Gtk.Window] instead

</description>
<parameters>
<parameter name="title">
<parameter_description> Title of the dialog
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> Transient parent of the dialog
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> from `GtkDialogFlags`
</parameter_description>
</parameter>
<parameter name="first_button_text">
<parameter_description> text to go in first button
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> response ID for first button, then additional buttons, ending with %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkDialog`

</return>
</function>

<function name="gtk_dialog_response">
<description>
Emits the ::response signal with the given response ID.

Used to indicate that the user has responded to the dialog in some way.

Deprecated: 4.10: Use [class@Gtk.Window] instead

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkDialog`
</parameter_description>
</parameter>
<parameter name="response_id">
<parameter_description> response ID
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_dialog_set_default_response">
<description>
Sets the default widget for the dialog based on the response ID.

Pressing “Enter” normally activates the default widget.

Deprecated: 4.10: Use [class@Gtk.Window] instead

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkDialog`
</parameter_description>
</parameter>
<parameter name="response_id">
<parameter_description> a response ID
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_dialog_set_response_sensitive">
<description>
A convenient way to sensitize/desensitize dialog buttons.

Calls `gtk_widget_set_sensitive (widget, @setting)`
for each widget in the dialog’s action area with the given @response_id.

Deprecated: 4.10: Use [class@Gtk.Window] instead

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkDialog`
</parameter_description>
</parameter>
<parameter name="response_id">
<parameter_description> a response ID
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> %TRUE for sensitive
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_directory_list_get_attributes">
<description>
Gets the attributes queried on the children.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDirectoryList`
</parameter_description>
</parameter>
</parameters>
<return> The queried attributes
</return>
</function>

<function name="gtk_directory_list_get_error">
<description>
Gets the loading error, if any.

If an error occurs during the loading process, the loading process
will finish and this property allows querying the error that happened.
This error will persist until a file is loaded again.

An error being set does not mean that no files were loaded, and all
successfully queried files will remain in the list.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDirectoryList`
</parameter_description>
</parameter>
</parameters>
<return> The loading error or %NULL if
loading finished successfully
</return>
</function>

<function name="gtk_directory_list_get_file">
<description>
Gets the file whose children are currently enumerated.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDirectoryList`
</parameter_description>
</parameter>
</parameters>
<return> The file whose children are enumerated
</return>
</function>

<function name="gtk_directory_list_get_io_priority">
<description>
Gets the IO priority set via gtk_directory_list_set_io_priority().


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDirectoryList`
</parameter_description>
</parameter>
</parameters>
<return> The IO priority.
</return>
</function>

<function name="gtk_directory_list_get_monitored">
<description>
Returns whether the directory list is monitoring
the directory for changes.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDirectoryList`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the directory is monitored
</return>
</function>

<function name="gtk_directory_list_is_loading">
<description>
Returns %TRUE if the children enumeration is currently in
progress.

Files will be added to @self from time to time while loading is
going on. The order in which are added is undefined and may change
in between runs.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDirectoryList`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @self is loading
</return>
</function>

<function name="gtk_directory_list_new">
<description>
Creates a new `GtkDirectoryList`.

The `GtkDirectoryList` is querying the given @file
with the given @attributes.


</description>
<parameters>
<parameter name="file">
<parameter_description> The file to query
</parameter_description>
</parameter>
<parameter name="attributes">
<parameter_description> The attributes to query with
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkDirectoryList`
</return>
</function>

<function name="gtk_directory_list_set_attributes">
<description>
Sets the @attributes to be enumerated and starts the enumeration.

If @attributes is %NULL, the list of file infos will still be created, it will just
not contain any extra attributes.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDirectoryList`
</parameter_description>
</parameter>
<parameter name="attributes">
<parameter_description> the attributes to enumerate
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_directory_list_set_file">
<description>
Sets the @file to be enumerated and starts the enumeration.

If @file is %NULL, the result will be an empty list.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDirectoryList`
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description> the `GFile` to be enumerated
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_directory_list_set_io_priority">
<description>
Sets the IO priority to use while loading directories.

Setting the priority while @self is loading will reprioritize the
ongoing load as soon as possible.

The default IO priority is %G_PRIORITY_DEFAULT, which is higher than
the GTK redraw priority. If you are loading a lot of directories in
parallel, lowering it to something like %G_PRIORITY_DEFAULT_IDLE
may increase responsiveness.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDirectoryList`
</parameter_description>
</parameter>
<parameter name="io_priority">
<parameter_description> IO priority to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_directory_list_set_monitored">
<description>
Sets whether the directory list will monitor the directory
for changes.

If monitoring is enabled, the ::items-changed signal will
be emitted when the directory contents change.


When monitoring is turned on after the initial creation
of the directory list, the directory is reloaded to avoid
missing files that appeared between the initial loading
and when monitoring was turned on.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDirectoryList`
</parameter_description>
</parameter>
<parameter name="monitored">
<parameter_description> %TRUE to monitor the directory for changes
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_disable_setlocale">
<description>
Prevents [func@Gtk.init] and [func@Gtk.init_check] from automatically calling
`setlocale (LC_ALL, &quot;&quot;)`.

You would want to use this function if you wanted to set the locale for
your program to something other than the user’s locale, or if
you wanted to set different values for different locale categories.

Most programs should not need to call this function.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gtk_distribute_natural_allocation">
<description>
Distributes @extra_space to child @sizes by bringing smaller
children up to natural size first.

The remaining space will be added to the @minimum_size member of the
`GtkRequestedSize` struct. If all sizes reach their natural size then
the remaining space is returned.


</description>
<parameters>
<parameter name="extra_space">
<parameter_description> Extra space to redistribute among children after subtracting
minimum sizes and any child padding from the overall allocation
</parameter_description>
</parameter>
<parameter name="n_requested_sizes">
<parameter_description> Number of requests to fit into the allocation
</parameter_description>
</parameter>
<parameter name="sizes">
<parameter_description> An array of structs with a client pointer and a minimum/natural size
in the orientation of the allocation.
</parameter_description>
</parameter>
</parameters>
<return> The remainder of @extra_space after redistributing space
to @sizes.
</return>
</function>

<function name="gtk_drag_check_threshold">
<description>
Checks to see if a drag movement has passed the GTK drag threshold.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="start_x">
<parameter_description> X coordinate of start of drag
</parameter_description>
</parameter>
<parameter name="start_y">
<parameter_description> Y coordinate of start of drag
</parameter_description>
</parameter>
<parameter name="current_x">
<parameter_description> current X coordinate
</parameter_description>
</parameter>
<parameter name="current_y">
<parameter_description> current Y coordinate
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the drag threshold has been passed.
</return>
</function>

<function name="gtk_drag_icon_create_widget_for_value">
<description>
Creates a widget that can be used as a drag icon for the given
@value.

Supported types include strings, `GdkRGBA` and `GtkTextBuffer`.
If GTK does not know how to create a widget for a given value,
it will return %NULL.

This method is used to set the default drag icon on drag-and-drop
operations started by `GtkDragSource`, so you don't need to set
a drag icon using this function there.


</description>
<parameters>
<parameter name="value">
<parameter_description> a `GValue`
</parameter_description>
</parameter>
</parameters>
<return> A new `GtkWidget`
for displaying @value as a drag icon.
</return>
</function>

<function name="gtk_drag_icon_get_child">
<description>
Gets the widget currently used as drag icon.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDragIcon`
</parameter_description>
</parameter>
</parameters>
<return> The drag icon
</return>
</function>

<function name="gtk_drag_icon_get_for_drag">
<description>
Gets the `GtkDragIcon` in use with @drag.

If no drag icon exists yet, a new one will be created
and shown.


</description>
<parameters>
<parameter name="drag">
<parameter_description> a `GdkDrag`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkDragIcon`
</return>
</function>

<function name="gtk_drag_icon_set_child">
<description>
Sets the widget to display as the drag icon.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDragIcon`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drag_icon_set_from_paintable">
<description>
Creates a `GtkDragIcon` that shows @paintable, and associates
it with the drag operation.

The hotspot position on the paintable is aligned with the
hotspot of the cursor.

</description>
<parameters>
<parameter name="drag">
<parameter_description> a `GdkDrag`
</parameter_description>
</parameter>
<parameter name="paintable">
<parameter_description> a `GdkPaintable` to display
</parameter_description>
</parameter>
<parameter name="hot_x">
<parameter_description> X coordinate of the hotspot
</parameter_description>
</parameter>
<parameter name="hot_y">
<parameter_description> Y coordinate of the hotspot
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drag_source_drag_cancel">
<description>
Cancels a currently ongoing drag operation.

</description>
<parameters>
<parameter name="source">
<parameter_description> a `GtkDragSource`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drag_source_get_actions">
<description>
Gets the actions that are currently set on the `GtkDragSource`.


</description>
<parameters>
<parameter name="source">
<parameter_description> a `GtkDragSource`
</parameter_description>
</parameter>
</parameters>
<return> the actions set on @source
</return>
</function>

<function name="gtk_drag_source_get_content">
<description>
Gets the current content provider of a `GtkDragSource`.


</description>
<parameters>
<parameter name="source">
<parameter_description> a `GtkDragSource`
</parameter_description>
</parameter>
</parameters>
<return> the `GdkContentProvider` of @source
</return>
</function>

<function name="gtk_drag_source_get_drag">
<description>
Returns the underlying `GdkDrag` object for an ongoing drag.


</description>
<parameters>
<parameter name="source">
<parameter_description> a `GtkDragSource`
</parameter_description>
</parameter>
</parameters>
<return> the `GdkDrag` of the current
drag operation
</return>
</function>

<function name="gtk_drag_source_new">
<description>
Creates a new `GtkDragSource` object.


</description>
<parameters>
</parameters>
<return> the new `GtkDragSource`
</return>
</function>

<function name="gtk_drag_source_set_actions">
<description>
Sets the actions on the `GtkDragSource`.

During a DND operation, the actions are offered to potential
drop targets. If @actions include %GDK_ACTION_MOVE, you need
to listen to the [signal@Gtk.DragSource::drag-end] signal and
handle @delete_data being %TRUE.

This function can be called before a drag is started,
or in a handler for the [signal@Gtk.DragSource::prepare] signal.

</description>
<parameters>
<parameter name="source">
<parameter_description> a `GtkDragSource`
</parameter_description>
</parameter>
<parameter name="actions">
<parameter_description> the actions to offer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drag_source_set_content">
<description>
Sets a content provider on a `GtkDragSource`.

When the data is requested in the cause of a DND operation,
it will be obtained from the content provider.

This function can be called before a drag is started,
or in a handler for the [signal@Gtk.DragSource::prepare] signal.

You may consider setting the content provider back to
%NULL in a [signal@Gtk.DragSource::drag-end] signal handler.

</description>
<parameters>
<parameter name="source">
<parameter_description> a `GtkDragSource`
</parameter_description>
</parameter>
<parameter name="content">
<parameter_description> a `GdkContentProvider`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drag_source_set_icon">
<description>
Sets a paintable to use as icon during DND operations.

The hotspot coordinates determine the point on the icon
that gets aligned with the hotspot of the cursor.

If @paintable is %NULL, a default icon is used.

This function can be called before a drag is started, or in
a [signal@Gtk.DragSource::prepare] or
[signal@Gtk.DragSource::drag-begin] signal handler.

</description>
<parameters>
<parameter name="source">
<parameter_description> a `GtkDragSource`
</parameter_description>
</parameter>
<parameter name="paintable">
<parameter_description> the `GdkPaintable` to use as icon
</parameter_description>
</parameter>
<parameter name="hot_x">
<parameter_description> the hotspot X coordinate on the icon
</parameter_description>
</parameter>
<parameter name="hot_y">
<parameter_description> the hotspot Y coordinate on the icon
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drawing_area_get_content_height">
<description>
Retrieves the content height of the `GtkDrawingArea`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDrawingArea`
</parameter_description>
</parameter>
</parameters>
<return> The height requested for content of the drawing area
</return>
</function>

<function name="gtk_drawing_area_get_content_width">
<description>
Retrieves the content width of the `GtkDrawingArea`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDrawingArea`
</parameter_description>
</parameter>
</parameters>
<return> The width requested for content of the drawing area
</return>
</function>

<function name="gtk_drawing_area_new">
<description>
Creates a new drawing area.


</description>
<parameters>
</parameters>
<return> a new `GtkDrawingArea`
</return>
</function>

<function name="gtk_drawing_area_set_content_height">
<description>
Sets the desired height of the contents of the drawing area.

Note that because widgets may be allocated larger sizes than they
requested, it is possible that the actual height passed to your draw
function is larger than the height set here. You can use
[method@Gtk.Widget.set_valign] to avoid that.

If the height is set to 0 (the default), the drawing area may disappear.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDrawingArea`
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the height of contents
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drawing_area_set_content_width">
<description>
Sets the desired width of the contents of the drawing area.

Note that because widgets may be allocated larger sizes than they
requested, it is possible that the actual width passed to your draw
function is larger than the width set here. You can use
[method@Gtk.Widget.set_halign] to avoid that.

If the width is set to 0 (the default), the drawing area may disappear.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDrawingArea`
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the width of contents
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drawing_area_set_draw_func">
<description>
Setting a draw function is the main thing you want to do when using
a drawing area.

The draw function is called whenever GTK needs to draw the contents
of the drawing area to the screen.

The draw function will be called during the drawing stage of GTK.
In the drawing stage it is not allowed to change properties of any
GTK widgets or call any functions that would cause any properties
to be changed. You should restrict yourself exclusively to drawing
your contents in the draw function.

If what you are drawing does change, call [method@Gtk.Widget.queue_draw]
on the drawing area. This will cause a redraw and will call @draw_func again.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDrawingArea`
</parameter_description>
</parameter>
<parameter name="draw_func">
<parameter_description> callback that lets you draw
the drawing area's contents
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @draw_func
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> destroy notifier for @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drop_controller_motion_contains_pointer">
<description>
Returns if a Drag-and-Drop operation is within the widget
@self or one of its children.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropControllerMotion`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a dragging pointer is within @self or one of its children.
</return>
</function>

<function name="gtk_drop_controller_motion_get_drop">
<description>
Returns the `GdkDrop` of a current Drag-and-Drop operation
over the widget of @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropControllerMotion`
</parameter_description>
</parameter>
</parameters>
<return> The `GdkDrop` currently
happening within @self
</return>
</function>

<function name="gtk_drop_controller_motion_is_pointer">
<description>
Returns if a Drag-and-Drop operation is within the widget
@self, not one of its children.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropControllerMotion`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a dragging pointer is within @self but
not one of its children
</return>
</function>

<function name="gtk_drop_controller_motion_new">
<description>
Creates a new event controller that will handle pointer motion
events during drag and drop.


</description>
<parameters>
</parameters>
<return> a new `GtkDropControllerMotion`
</return>
</function>

<function name="gtk_drop_down_get_enable_search">
<description>
Returns whether search is enabled.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the popup includes a search entry
</return>
</function>

<function name="gtk_drop_down_get_expression">
<description>
Gets the expression set that is used to obtain strings from items.

See [method@Gtk.DropDown.set_expression].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkExpression`
</return>
</function>

<function name="gtk_drop_down_get_factory">
<description>
Gets the factory that's currently used to populate list items.

The factory returned by this function is always used for the
item in the button. It is also used for items in the popup
if [property@Gtk.DropDown:list-factory] is not set.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
</parameters>
<return> The factory in use
</return>
</function>

<function name="gtk_drop_down_get_header_factory">
<description>
Gets the factory that's currently used to create header widgets for the popup.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
</parameters>
<return> The factory in use

</return>
</function>

<function name="gtk_drop_down_get_list_factory">
<description>
Gets the factory that's currently used to populate list items in the popup.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
</parameters>
<return> The factory in use
</return>
</function>

<function name="gtk_drop_down_get_model">
<description>
Gets the model that provides the displayed items.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
</parameters>
<return> The model in use
</return>
</function>

<function name="gtk_drop_down_get_search_match_mode">
<description>
Returns the match mode that the search filter is using.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
</parameters>
<return> the match mode of the search filter

</return>
</function>

<function name="gtk_drop_down_get_selected">
<description>
Gets the position of the selected item.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
</parameters>
<return> the position of the selected item, or %GTK_INVALID_LIST_POSITION
if not item is selected
</return>
</function>

<function name="gtk_drop_down_get_selected_item">
<description>
Gets the selected item. If no item is selected, %NULL is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
</parameters>
<return> The selected item
</return>
</function>

<function name="gtk_drop_down_get_show_arrow">
<description>
Returns whether to show an arrow within the widget.

Since: 4.6

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if an arrow will be shown.

</return>
</function>

<function name="gtk_drop_down_new">
<description>
Creates a new `GtkDropDown`.

You may want to call [method@Gtk.DropDown.set_factory]
to set up a way to map its items to widgets.


</description>
<parameters>
<parameter name="model">
<parameter_description> the model to use
</parameter_description>
</parameter>
<parameter name="expression">
<parameter_description> the expression to use
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkDropDown`
</return>
</function>

<function name="gtk_drop_down_new_from_strings">
<description>
Creates a new `GtkDropDown` that is populated with
the strings.


</description>
<parameters>
<parameter name="strings">
<parameter_description> The strings to put in the dropdown
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkDropDown`
</return>
</function>

<function name="gtk_drop_down_set_enable_search">
<description>
Sets whether a search entry will be shown in the popup that
allows to search for items in the list.

Note that [property@Gtk.DropDown:expression] must be set for
search to work.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
<parameter name="enable_search">
<parameter_description> whether to enable search
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drop_down_set_expression">
<description>
Sets the expression that gets evaluated to obtain strings from items.

This is used for search in the popup. The expression must have
a value type of %G_TYPE_STRING.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
<parameter name="expression">
<parameter_description> a `GtkExpression`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drop_down_set_factory">
<description>
Sets the `GtkListItemFactory` to use for populating list items.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
<parameter name="factory">
<parameter_description> the factory to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drop_down_set_header_factory">
<description>
Sets the `GtkListItemFactory` to use for creating header widgets for the popup.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
<parameter name="factory">
<parameter_description> the factory to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drop_down_set_list_factory">
<description>
Sets the `GtkListItemFactory` to use for populating list items in the popup.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
<parameter name="factory">
<parameter_description> the factory to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drop_down_set_model">
<description>
Sets the `GListModel` to use.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> the model to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drop_down_set_search_match_mode">
<description>
Sets the match mode for the search filter.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
<parameter name="search_match_mode">
<parameter_description> the new match mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drop_down_set_selected">
<description>
Selects the item at the given position.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position of the item to select, or %GTK_INVALID_LIST_POSITION
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drop_down_set_show_arrow">
<description>
Sets whether an arrow will be displayed within the widget.

Since: 4.6

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropDown`
</parameter_description>
</parameter>
<parameter name="show_arrow">
<parameter_description> whether to show an arrow within the widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drop_target_async_get_actions">
<description>
Gets the actions that this drop target supports.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropTargetAsync`
</parameter_description>
</parameter>
</parameters>
<return> the actions that this drop target supports
</return>
</function>

<function name="gtk_drop_target_async_get_formats">
<description>
Gets the data formats that this drop target accepts.

If the result is %NULL, all formats are expected to be supported.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropTargetAsync`
</parameter_description>
</parameter>
</parameters>
<return> the supported data formats
</return>
</function>

<function name="gtk_drop_target_async_new">
<description>
Creates a new `GtkDropTargetAsync` object.


</description>
<parameters>
<parameter name="formats">
<parameter_description> the supported data formats
</parameter_description>
</parameter>
<parameter name="actions">
<parameter_description> the supported actions
</parameter_description>
</parameter>
</parameters>
<return> the new `GtkDropTargetAsync`
</return>
</function>

<function name="gtk_drop_target_async_reject_drop">
<description>
Sets the @drop as not accepted on this drag site.

This function should be used when delaying the decision
on whether to accept a drag or not until after reading
the data.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropTargetAsync`
</parameter_description>
</parameter>
<parameter name="drop">
<parameter_description> the `GdkDrop` of an ongoing drag operation
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drop_target_async_set_actions">
<description>
Sets the actions that this drop target supports.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropTargetAsync`
</parameter_description>
</parameter>
<parameter name="actions">
<parameter_description> the supported actions
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drop_target_async_set_formats">
<description>
Sets the data formats that this drop target will accept.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropTargetAsync`
</parameter_description>
</parameter>
<parameter name="formats">
<parameter_description> the supported data formats or %NULL for any format
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drop_target_get_actions">
<description>
Gets the actions that this drop target supports.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropTarget`
</parameter_description>
</parameter>
</parameters>
<return> the actions that this drop target supports
</return>
</function>

<function name="gtk_drop_target_get_current_drop">
<description>
Gets the currently handled drop operation.

If no drop operation is going on, %NULL is returned.

Since: 4.4

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropTarget`
</parameter_description>
</parameter>
</parameters>
<return> The current drop

</return>
</function>

<function name="gtk_drop_target_get_drop">
<description>
Gets the currently handled drop operation.

If no drop operation is going on, %NULL is returned.

Deprecated: 4.4: Use [method@Gtk.DropTarget.get_current_drop] instead

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropTarget`
</parameter_description>
</parameter>
</parameters>
<return> The current drop

</return>
</function>

<function name="gtk_drop_target_get_formats">
<description>
Gets the data formats that this drop target accepts.

If the result is %NULL, all formats are expected to be supported.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropTarget`
</parameter_description>
</parameter>
</parameters>
<return> the supported data formats
</return>
</function>

<function name="gtk_drop_target_get_gtypes">
<description>
Gets the list of supported `GType`s that can be dropped on the target.

If no types have been set, `NULL` will be returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropTarget`
</parameter_description>
</parameter>
<parameter name="n_types">
<parameter_description> the number of `GType`s contained in the
return value
</parameter_description>
</parameter>
</parameters>
<return>
the `G_TYPE_INVALID`-terminated array of types included in
formats
</return>
</function>

<function name="gtk_drop_target_get_preload">
<description>
Gets whether data should be preloaded on hover.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropTarget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if drop data should be preloaded
</return>
</function>

<function name="gtk_drop_target_get_value">
<description>
Gets the current drop data, as a `GValue`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropTarget`
</parameter_description>
</parameter>
</parameters>
<return> The current drop data
</return>
</function>

<function name="gtk_drop_target_new">
<description>
Creates a new `GtkDropTarget` object.

If the drop target should support more than 1 type, pass
%G_TYPE_INVALID for @type and then call
[method@Gtk.DropTarget.set_gtypes].


</description>
<parameters>
<parameter name="type">
<parameter_description> The supported type or %G_TYPE_INVALID
</parameter_description>
</parameter>
<parameter name="actions">
<parameter_description> the supported actions
</parameter_description>
</parameter>
</parameters>
<return> the new `GtkDropTarget`
</return>
</function>

<function name="gtk_drop_target_reject">
<description>
Rejects the ongoing drop operation.

If no drop operation is ongoing, i.e when [property@Gtk.DropTarget:current-drop]
is %NULL, this function does nothing.

This function should be used when delaying the decision
on whether to accept a drag or not until after reading
the data.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropTarget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drop_target_set_actions">
<description>
Sets the actions that this drop target supports.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropTarget`
</parameter_description>
</parameter>
<parameter name="actions">
<parameter_description> the supported actions
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drop_target_set_gtypes">
<description>
Sets the supported `GTypes` for this drop target.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropTarget`
</parameter_description>
</parameter>
<parameter name="types">
<parameter_description> all supported `GType`s
that can be dropped on the target
</parameter_description>
</parameter>
<parameter name="n_types">
<parameter_description> number of @types
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_drop_target_set_preload">
<description>
Sets whether data should be preloaded on hover.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkDropTarget`
</parameter_description>
</parameter>
<parameter name="preload">
<parameter_description> %TRUE to preload drop data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_editable_delegate_get_accessible_platform_state">
<description>
Retrieves the accessible platform state from the editable delegate.

This is an helper function to retrieve the accessible state for
`GtkEditable` interface implementations using a delegate pattern.

You should call this function in your editable widget implementation
of the [vfunc@Gtk.Accessible.get_platform_state] virtual function, for
instance:

```c
static void
accessible_interface_init (GtkAccessibleInterface *iface)
{
iface-&gt;get_platform_state = your_editable_get_accessible_platform_state;
}

static gboolean
your_editable_get_accessible_platform_state (GtkAccessible *accessible,
GtkAccessiblePlatformState state)
{
return gtk_editable_delegate_get_accessible_platform_state (GTK_EDITABLE (accessible), state);
}
```

Since: 4.10

</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable` implementation
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> what kind of accessible state to retrieve
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_editable_delegate_get_property">
<description>
Gets a property of the `GtkEditable` delegate for @object.

This is helper function that should be called in the `get_property`
function of your `GtkEditable` implementation, before handling your
own properties.


</description>
<parameters>
<parameter name="object">
<parameter_description> a `GObject`
</parameter_description>
</parameter>
<parameter name="prop_id">
<parameter_description> a property ID
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> value to set
</parameter_description>
</parameter>
<parameter name="pspec">
<parameter_description> the `GParamSpec` for the property
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the property was found
</return>
</function>

<function name="gtk_editable_delegate_set_property">
<description>
Sets a property on the `GtkEditable` delegate for @object.

This is a helper function that should be called in the `set_property`
function of your `GtkEditable` implementation, before handling your
own properties.


</description>
<parameters>
<parameter name="object">
<parameter_description> a `GObject`
</parameter_description>
</parameter>
<parameter name="prop_id">
<parameter_description> a property ID
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> value to set
</parameter_description>
</parameter>
<parameter name="pspec">
<parameter_description> the `GParamSpec` for the property
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the property was found
</return>
</function>

<function name="gtk_editable_delete_selection">
<description>
Deletes the currently selected text of the editable.

This call doesn’t do anything if there is no selected text.

</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_editable_delete_text">
<description>
Deletes a sequence of characters.

The characters that are deleted are those characters at positions
from @start_pos up to, but not including @end_pos. If @end_pos is
negative, then the characters deleted are those from @start_pos to
the end of the text.

Note that the positions are specified in characters, not bytes.

</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
<parameter name="start_pos">
<parameter_description> start position
</parameter_description>
</parameter>
<parameter name="end_pos">
<parameter_description> end position
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_editable_finish_delegate">
<description>
Undoes the setup done by [method@Gtk.Editable.init_delegate].

This is a helper function that should be called from dispose,
before removing the delegate object.

</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_editable_get_alignment">
<description>
Gets the alignment of the editable.


</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
</parameters>
<return> the alignment
</return>
</function>

<function name="gtk_editable_get_chars">
<description>
Retrieves a sequence of characters.

The characters that are retrieved are those characters at positions
from @start_pos up to, but not including @end_pos. If @end_pos is negative,
then the characters retrieved are those characters from @start_pos to
the end of the text.

Note that positions are specified in characters, not bytes.


</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
<parameter name="start_pos">
<parameter_description> start of text
</parameter_description>
</parameter>
<parameter name="end_pos">
<parameter_description> end of text
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the contents of the widget as a
string. This string is allocated by the `GtkEditable` implementation
and should be freed by the caller.
</return>
</function>

<function name="gtk_editable_get_delegate">
<description>
Gets the `GtkEditable` that @editable is delegating its
implementation to.

Typically, the delegate is a [class@Gtk.Text] widget.


</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
</parameters>
<return> the delegate `GtkEditable`
</return>
</function>

<function name="gtk_editable_get_editable">
<description>
Retrieves whether @editable is editable.


</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @editable is editable.
</return>
</function>

<function name="gtk_editable_get_enable_undo">
<description>
Gets if undo/redo actions are enabled for @editable


</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if undo is enabled
</return>
</function>

<function name="gtk_editable_get_max_width_chars">
<description>
Retrieves the desired maximum width of @editable, in characters.


</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
</parameters>
<return> the maximum width of the entry, in characters
</return>
</function>

<function name="gtk_editable_get_position">
<description>
Retrieves the current position of the cursor relative
to the start of the content of the editable.

Note that this position is in characters, not in bytes.


</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
</parameters>
<return> the cursor position
</return>
</function>

<function name="gtk_editable_get_selection_bounds">
<description>
Retrieves the selection bound of the editable.

@start_pos will be filled with the start of the selection and
@end_pos with end. If no text was selected both will be identical
and %FALSE will be returned.

Note that positions are specified in characters, not bytes.


</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
<parameter name="start_pos">
<parameter_description> location to store the starting position
</parameter_description>
</parameter>
<parameter name="end_pos">
<parameter_description> location to store the end position
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if there is a non-empty selection, %FALSE otherwise
</return>
</function>

<function name="gtk_editable_get_text">
<description>
Retrieves the contents of @editable.

The returned string is owned by GTK and must not be modified or freed.


</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the contents of the editable
</return>
</function>

<function name="gtk_editable_get_width_chars">
<description>
Gets the number of characters of space reserved
for the contents of the editable.


</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
</parameters>
<return> number of chars to request space for, or negative if unset
</return>
</function>

<function name="gtk_editable_init_delegate">
<description>
Sets up a delegate for `GtkEditable`.

This is assuming that the get_delegate vfunc in the `GtkEditable`
interface has been set up for the @editable's type.

This is a helper function that should be called in instance init,
after creating the delegate object.

</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_editable_insert_text">
<description>
Inserts @length bytes of @text into the contents of the
widget, at position @position.

Note that the position is in characters, not in bytes.
The function updates @position to point after the newly
inserted text.

</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> the text to insert
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> the length of the text in bytes, or -1
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> location of the position text will be inserted at
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_editable_install_properties">
<description>
Overrides the `GtkEditable` properties for @class.

This is a helper function that should be called in class_init,
after installing your own properties.

Note that your class must have &quot;text&quot;, &quot;cursor-position&quot;,
&quot;selection-bound&quot;, &quot;editable&quot;, &quot;width-chars&quot;, &quot;max-width-chars&quot;,
&quot;xalign&quot; and &quot;enable-undo&quot; properties for this function to work.

To handle the properties in your set_property and get_property
functions, you can either use [func@Gtk.Editable.delegate_set_property]
and [func@Gtk.Editable.delegate_get_property] (if you are using
a delegate), or remember the @first_prop offset and add it to the
values in the [enum@Gtk.EditableProperties] enumeration to get the
property IDs for these properties.


</description>
<parameters>
<parameter name="object_class">
<parameter_description> a `GObjectClass`
</parameter_description>
</parameter>
<parameter name="first_prop">
<parameter_description> property ID to use for the first property
</parameter_description>
</parameter>
</parameters>
<return> the number of properties that were installed
</return>
</function>

<function name="gtk_editable_label_get_editing">
<description>
Returns whether the label is currently in “editing mode”.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkEditableLabel`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @self is currently in editing mode
</return>
</function>

<function name="gtk_editable_label_new">
<description>
Creates a new `GtkEditableLabel` widget.


</description>
<parameters>
<parameter name="str">
<parameter_description> the text for the label
</parameter_description>
</parameter>
</parameters>
<return> the new `GtkEditableLabel`
</return>
</function>

<function name="gtk_editable_label_start_editing">
<description>
Switches the label into “editing mode”.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkEditableLabel`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_editable_label_stop_editing">
<description>
Switches the label out of “editing mode”.

If @commit is %TRUE, the resulting text is kept as the
[property@Gtk.Editable:text] property value, otherwise the
resulting text is discarded and the label will keep its
previous [property@Gtk.Editable:text] property value.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkEditableLabel`
</parameter_description>
</parameter>
<parameter name="commit">
<parameter_description> whether to set the edited text on the label
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_editable_select_region">
<description>
Selects a region of text.

The characters that are selected are those characters at positions
from @start_pos up to, but not including @end_pos. If @end_pos is
negative, then the characters selected are those characters from
@start_pos to  the end of the text.

Note that positions are specified in characters, not bytes.

</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
<parameter name="start_pos">
<parameter_description> start of region
</parameter_description>
</parameter>
<parameter name="end_pos">
<parameter_description> end of region
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_editable_set_alignment">
<description>
Sets the alignment for the contents of the editable.

This controls the horizontal positioning of the contents when
the displayed text is shorter than the width of the editable.

</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
<parameter name="xalign">
<parameter_description> The horizontal alignment, from 0 (left) to 1 (right).
Reversed for RTL layouts
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_editable_set_editable">
<description>
Determines if the user can edit the text in the editable widget.

</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
<parameter name="is_editable">
<parameter_description> %TRUE if the user is allowed to edit the text
in the widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_editable_set_enable_undo">
<description>
If enabled, changes to @editable will be saved for undo/redo
actions.

This results in an additional copy of text changes and are not
stored in secure memory. As such, undo is forcefully disabled
when [property@Gtk.Text:visibility] is set to %FALSE.

</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
<parameter name="enable_undo">
<parameter_description> if undo/redo should be enabled
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_editable_set_max_width_chars">
<description>
Sets the desired maximum width in characters of @editable.

</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
<parameter name="n_chars">
<parameter_description> the new desired maximum width, in characters
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_editable_set_position">
<description>
Sets the cursor position in the editable to the given value.

The cursor is displayed before the character with the given (base 0)
index in the contents of the editable. The value must be less than
or equal to the number of characters in the editable. A value of -1
indicates that the position should be set after the last character
of the editable. Note that @position is in characters, not in bytes.

</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position of the cursor
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_editable_set_text">
<description>
Sets the text in the editable to the given value.

This is replacing the current contents.

</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> the text to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_editable_set_width_chars">
<description>
Changes the size request of the editable to be about the
right size for @n_chars characters.

Note that it changes the size request, the size can still
be affected by how you pack the widget into containers.
If @n_chars is -1, the size reverts to the default size.

</description>
<parameters>
<parameter name="editable">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
<parameter name="n_chars">
<parameter_description> width in chars
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_emoji_chooser_new">
<description>
Creates a new `GtkEmojiChooser`.


</description>
<parameters>
</parameters>
<return> a new `GtkEmojiChooser`
</return>
</function>

<function name="gtk_entry_buffer_delete_text">
<description>
Deletes a sequence of characters from the buffer.

@n_chars characters are deleted starting at @position.
If @n_chars is negative, then all characters until the
end of the text are deleted.

If @position or @n_chars are out of bounds, then they
are coerced to sane values.

Note that the positions are specified in characters,
not bytes.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkEntryBuffer`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position at which to delete text
</parameter_description>
</parameter>
<parameter name="n_chars">
<parameter_description> number of characters to delete
</parameter_description>
</parameter>
</parameters>
<return> The number of characters deleted.
</return>
</function>

<function name="gtk_entry_buffer_emit_deleted_text">
<description>
Used when subclassing `GtkEntryBuffer`.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkEntryBuffer`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position at which text was deleted
</parameter_description>
</parameter>
<parameter name="n_chars">
<parameter_description> number of characters deleted
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_buffer_emit_inserted_text">
<description>
Used when subclassing `GtkEntryBuffer`.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkEntryBuffer`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position at which text was inserted
</parameter_description>
</parameter>
<parameter name="chars">
<parameter_description> text that was inserted
</parameter_description>
</parameter>
<parameter name="n_chars">
<parameter_description> number of characters inserted
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_buffer_get_bytes">
<description>
Retrieves the length in bytes of the buffer.

See [method@Gtk.EntryBuffer.get_length].


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkEntryBuffer`
</parameter_description>
</parameter>
</parameters>
<return> The byte length of the buffer.
</return>
</function>

<function name="gtk_entry_buffer_get_length">
<description>
Retrieves the length in characters of the buffer.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkEntryBuffer`
</parameter_description>
</parameter>
</parameters>
<return> The number of characters in the buffer.
</return>
</function>

<function name="gtk_entry_buffer_get_max_length">
<description>
Retrieves the maximum allowed length of the text in @buffer.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkEntryBuffer`
</parameter_description>
</parameter>
</parameters>
<return> the maximum allowed number of characters
in `GtkEntryBuffer`, or 0 if there is no maximum.
</return>
</function>

<function name="gtk_entry_buffer_get_text">
<description>
Retrieves the contents of the buffer.

The memory pointer returned by this call will not change
unless this object emits a signal, or is finalized.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkEntryBuffer`
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the contents of the widget as a
string. This string points to internally allocated storage
in the buffer and must not be freed, modified or stored.
</return>
</function>

<function name="gtk_entry_buffer_insert_text">
<description>
Inserts @n_chars characters of @chars into the contents of the
buffer, at position @position.

If @n_chars is negative, then characters from chars will be inserted
until a null-terminator is found. If @position or @n_chars are out of
bounds, or the maximum buffer text length is exceeded, then they are
coerced to sane values.

Note that the position and length are in characters, not in bytes.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkEntryBuffer`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position at which to insert text.
</parameter_description>
</parameter>
<parameter name="chars">
<parameter_description> the text to insert into the buffer.
</parameter_description>
</parameter>
<parameter name="n_chars">
<parameter_description> the length of the text in characters, or -1
</parameter_description>
</parameter>
</parameters>
<return> The number of characters actually inserted.
</return>
</function>

<function name="gtk_entry_buffer_new">
<description>
Create a new `GtkEntryBuffer` object.

Optionally, specify initial text to set in the buffer.


</description>
<parameters>
<parameter name="initial_chars">
<parameter_description> initial buffer text
</parameter_description>
</parameter>
<parameter name="n_initial_chars">
<parameter_description> number of characters in @initial_chars, or -1
</parameter_description>
</parameter>
</parameters>
<return> A new `GtkEntryBuffer` object.
</return>
</function>

<function name="gtk_entry_buffer_set_max_length">
<description>
Sets the maximum allowed length of the contents of the buffer.

If the current contents are longer than the given length, then
they will be truncated to fit.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkEntryBuffer`
</parameter_description>
</parameter>
<parameter name="max_length">
<parameter_description> the maximum length of the entry buffer, or 0 for no maximum.
(other than the maximum length of entries.) The value passed in will
be clamped to the range 0-65536.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_buffer_set_text">
<description>
Sets the text in the buffer.

This is roughly equivalent to calling
[method@Gtk.EntryBuffer.delete_text] and
[method@Gtk.EntryBuffer.insert_text].

Note that @n_chars is in characters, not in bytes.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkEntryBuffer`
</parameter_description>
</parameter>
<parameter name="chars">
<parameter_description> the new text
</parameter_description>
</parameter>
<parameter name="n_chars">
<parameter_description> the number of characters in @text, or -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_completion_complete">
<description>
Requests a completion operation, or in other words a refiltering of the
current list with completions, using the current key.

The completion list view will be updated accordingly.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_completion_compute_prefix">
<description>
Computes the common prefix that is shared by all rows in @completion
that start with @key.

If no row matches @key, %NULL will be returned.
Note that a text column must have been set for this function to work,
see [method@Gtk.EntryCompletion.set_text_column] for details.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> the entry completion
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> The text to complete for
</parameter_description>
</parameter>
</parameters>
<return> The common prefix all rows
starting with @key

</return>
</function>

<function name="gtk_entry_completion_get_completion_prefix">
<description>
Get the original text entered by the user that triggered
the completion or %NULL if there’s no completion ongoing.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
</parameters>
<return> the prefix for the current completion

</return>
</function>

<function name="gtk_entry_completion_get_entry">
<description>
Gets the entry @completion has been attached to.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
</parameters>
<return> The entry @completion has been attached to

</return>
</function>

<function name="gtk_entry_completion_get_inline_completion">
<description>
Returns whether the common prefix of the possible completions should
be automatically inserted in the entry.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if inline completion is turned on

</return>
</function>

<function name="gtk_entry_completion_get_inline_selection">
<description>
Returns %TRUE if inline-selection mode is turned on.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if inline-selection mode is on

</return>
</function>

<function name="gtk_entry_completion_get_minimum_key_length">
<description>
Returns the minimum key length as set for @completion.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
</parameters>
<return> The currently used minimum key length

</return>
</function>

<function name="gtk_entry_completion_get_model">
<description>
Returns the model the `GtkEntryCompletion` is using as data source.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
</parameters>
<return> A `GtkTreeModel`

</return>
</function>

<function name="gtk_entry_completion_get_popup_completion">
<description>
Returns whether the completions should be presented in a popup window.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if popup completion is turned on

</return>
</function>

<function name="gtk_entry_completion_get_popup_set_width">
<description>
Returns whether the completion popup window will be resized to the
width of the entry.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the popup window will be resized to the width of
the entry

</return>
</function>

<function name="gtk_entry_completion_get_popup_single_match">
<description>
Returns whether the completion popup window will appear even if there is
only a single match.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the popup window will appear regardless of the
number of matches

</return>
</function>

<function name="gtk_entry_completion_get_text_column">
<description>
Returns the column in the model of @completion to get strings from.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
</parameters>
<return> the column containing the strings

</return>
</function>

<function name="gtk_entry_completion_insert_prefix">
<description>
Requests a prefix insertion.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_completion_new">
<description>
Creates a new `GtkEntryCompletion` object.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
</parameters>
<return> A newly created `GtkEntryCompletion` object

</return>
</function>

<function name="gtk_entry_completion_new_with_area">
<description>
Creates a new `GtkEntryCompletion` object using the
specified @area.

The `GtkCellArea` is used to layout cells in the underlying
`GtkTreeViewColumn` for the drop-down menu.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="area">
<parameter_description> the `GtkCellArea` used to layout cells
</parameter_description>
</parameter>
</parameters>
<return> A newly created `GtkEntryCompletion` object

</return>
</function>

<function name="gtk_entry_completion_set_inline_completion">
<description>
Sets whether the common prefix of the possible completions should
be automatically inserted in the entry.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
<parameter name="inline_completion">
<parameter_description> %TRUE to do inline completion
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_completion_set_inline_selection">
<description>
Sets whether it is possible to cycle through the possible completions
inside the entry.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
<parameter name="inline_selection">
<parameter_description> %TRUE to do inline selection
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_completion_set_match_func">
<description>
Sets the match function for @completion to be @func.

The match function is used to determine if a row should or
should not be in the completion list.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the `GtkEntryCompletion`MatchFunc to use
</parameter_description>
</parameter>
<parameter name="func_data">
<parameter_description> user data for @func
</parameter_description>
</parameter>
<parameter name="func_notify">
<parameter_description> destroy notify for @func_data.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_completion_set_minimum_key_length">
<description>
Requires the length of the search key for @completion to be at least
@length.

This is useful for long lists, where completing using a small
key takes a lot of time and will come up with meaningless results anyway
(ie, a too large dataset).

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> the minimum length of the key in order to start completing
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_completion_set_model">
<description>
Sets the model for a `GtkEntryCompletion`.

If @completion already has a model set, it will remove it
before setting the new model. If model is %NULL, then it
will unset the model.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> the `GtkTreeModel`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_completion_set_popup_completion">
<description>
Sets whether the completions should be presented in a popup window.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
<parameter name="popup_completion">
<parameter_description> %TRUE to do popup completion
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_completion_set_popup_set_width">
<description>
Sets whether the completion popup window will be resized to be the same
width as the entry.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
<parameter name="popup_set_width">
<parameter_description> %TRUE to make the width of the popup the same as the entry
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_completion_set_popup_single_match">
<description>
Sets whether the completion popup window will appear even if there is
only a single match.

You may want to set this to %FALSE if you
are using [property@Gtk.EntryCompletion:inline-completion].

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
<parameter name="popup_single_match">
<parameter_description> %TRUE if the popup should appear even for a single match
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_completion_set_text_column">
<description>
Convenience function for setting up the most used case of this code: a
completion list with just strings.

This function will set up @completion
to have a list displaying all (and just) strings in the completion list,
and to get those strings from @column in the model of @completion.

This functions creates and adds a `GtkCellRendererText` for the selected
column. If you need to set the text column, but don't want the cell
renderer, use g_object_set() to set the
[property@Gtk.EntryCompletion:text-column] property directly.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="completion">
<parameter_description> a `GtkEntryCompletion`
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> the column in the model of @completion to get strings from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_get_activates_default">
<description>
Retrieves the value set by gtk_entry_set_activates_default().


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the entry will activate the default widget
</return>
</function>

<function name="gtk_entry_get_alignment">
<description>
Gets the value set by gtk_entry_set_alignment().

See also: [property@Gtk.Editable:xalign]


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> the alignment
</return>
</function>

<function name="gtk_entry_get_attributes">
<description>
Gets the attribute list of the `GtkEntry`.

See [method@Gtk.Entry.set_attributes].


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> the attribute list
</return>
</function>

<function name="gtk_entry_get_buffer">
<description>
Get the `GtkEntryBuffer` object which holds the text for
this widget.


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> A `GtkEntryBuffer` object.
</return>
</function>

<function name="gtk_entry_get_completion">
<description>
Returns the auxiliary completion object currently
in use by @entry.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="entry">
<parameter_description> A `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> The auxiliary
completion object currently in use by @entry

</return>
</function>

<function name="gtk_entry_get_current_icon_drag_source">
<description>
Returns the index of the icon which is the source of the
current  DND operation, or -1.


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> index of the icon which is the source of the
current DND operation, or -1.
</return>
</function>

<function name="gtk_entry_get_extra_menu">
<description>
Gets the menu model set with gtk_entry_set_extra_menu().


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> the menu model
</return>
</function>

<function name="gtk_entry_get_has_frame">
<description>
Gets the value set by gtk_entry_set_has_frame().


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> whether the entry has a beveled frame
</return>
</function>

<function name="gtk_entry_get_icon_activatable">
<description>
Returns whether the icon is activatable.


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> Icon position
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the icon is activatable.
</return>
</function>

<function name="gtk_entry_get_icon_area">
<description>
Gets the area where entry’s icon at @icon_pos is drawn.

This function is useful when drawing something to the
entry in a draw callback.

If the entry is not realized or has no icon at the given
position, @icon_area is filled with zeros. Otherwise,
@icon_area will be filled with the icon's allocation,
relative to @entry's allocation.

</description>
<parameters>
<parameter name="entry">
<parameter_description> A `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> Icon position
</parameter_description>
</parameter>
<parameter name="icon_area">
<parameter_description> Return location for the icon’s area
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_get_icon_at_pos">
<description>
Finds the icon at the given position and return its index.

The position’s coordinates are relative to the @entry’s
top left corner. If @x, @y doesn’t lie inside an icon,
-1 is returned. This function is intended for use in a
[signal@Gtk.Widget::query-tooltip] signal handler.


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the position to find, relative to @entry
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the position to find, relative to @entry
</parameter_description>
</parameter>
</parameters>
<return> the index of the icon at the given position, or -1
</return>
</function>

<function name="gtk_entry_get_icon_gicon">
<description>
Retrieves the `GIcon` used for the icon.

%NULL will be returned if there is no icon or if the icon was
set by some other method (e.g., by `GdkPaintable` or icon name).


</description>
<parameters>
<parameter name="entry">
<parameter_description> A `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> Icon position
</parameter_description>
</parameter>
</parameters>
<return> A `GIcon`
</return>
</function>

<function name="gtk_entry_get_icon_name">
<description>
Retrieves the icon name used for the icon.

%NULL is returned if there is no icon or if the icon was set
by some other method (e.g., by `GdkPaintable` or gicon).


</description>
<parameters>
<parameter name="entry">
<parameter_description> A `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> Icon position
</parameter_description>
</parameter>
</parameters>
<return> An icon name
</return>
</function>

<function name="gtk_entry_get_icon_paintable">
<description>
Retrieves the `GdkPaintable` used for the icon.

If no `GdkPaintable` was used for the icon, %NULL is returned.


</description>
<parameters>
<parameter name="entry">
<parameter_description> A `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> Icon position
</parameter_description>
</parameter>
</parameters>
<return> A `GdkPaintable`
if no icon is set for this position or the icon set is not
a `GdkPaintable`.
</return>
</function>

<function name="gtk_entry_get_icon_sensitive">
<description>
Returns whether the icon appears sensitive or insensitive.


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> Icon position
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the icon is sensitive.
</return>
</function>

<function name="gtk_entry_get_icon_storage_type">
<description>
Gets the type of representation being used by the icon
to store image data.

If the icon has no image data, the return value will
be %GTK_IMAGE_EMPTY.


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> Icon position
</parameter_description>
</parameter>
</parameters>
<return> image representation being used
</return>
</function>

<function name="gtk_entry_get_icon_tooltip_markup">
<description>
Gets the contents of the tooltip on the icon at the specified
position in @entry.


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> the icon position
</parameter_description>
</parameter>
</parameters>
<return> the tooltip text
</return>
</function>

<function name="gtk_entry_get_icon_tooltip_text">
<description>
Gets the contents of the tooltip on the icon at the specified
position in @entry.


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> the icon position
</parameter_description>
</parameter>
</parameters>
<return> the tooltip text
</return>
</function>

<function name="gtk_entry_get_input_hints">
<description>
Gets the input hints of this `GtkEntry`.


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> the input hints
</return>
</function>

<function name="gtk_entry_get_input_purpose">
<description>
Gets the input purpose of the `GtkEntry`.


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> the input purpose
</return>
</function>

<function name="gtk_entry_get_invisible_char">
<description>
Retrieves the character displayed in place of the actual text
in “password mode”.


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> the current invisible char, or 0, if the entry does not
show invisible text at all.
</return>
</function>

<function name="gtk_entry_get_max_length">
<description>
Retrieves the maximum allowed length of the text in @entry.

See [method@Gtk.Entry.set_max_length].


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> the maximum allowed number of characters
in `GtkEntry`, or 0 if there is no maximum.
</return>
</function>

<function name="gtk_entry_get_overwrite_mode">
<description>
Gets whether the `GtkEntry` is in overwrite mode.


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> whether the text is overwritten when typing.
</return>
</function>

<function name="gtk_entry_get_placeholder_text">
<description>
Retrieves the text that will be displayed when @entry
is empty and unfocused


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return>a pointer to the
placeholder text as a string. This string points to
internally allocated storage in the widget and must
not be freed, modified or stored. If no placeholder
text has been set, %NULL will be returned.
</return>
</function>

<function name="gtk_entry_get_progress_fraction">
<description>
Returns the current fraction of the task that’s been completed.

See [method@Gtk.Entry.set_progress_fraction].


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> a fraction from 0.0 to 1.0
</return>
</function>

<function name="gtk_entry_get_progress_pulse_step">
<description>
Retrieves the pulse step set with
gtk_entry_set_progress_pulse_step().


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> a fraction from 0.0 to 1.0
</return>
</function>

<function name="gtk_entry_get_tabs">
<description>
Gets the tabstops of the `GtkEntry`.

See [method@Gtk.Entry.set_tabs].


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> the tabstops
</return>
</function>

<function name="gtk_entry_get_text_length">
<description>
Retrieves the current length of the text in @entry.

This is equivalent to getting @entry's `GtkEntryBuffer`
and calling [method@Gtk.EntryBuffer.get_length] on it.


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> the current number of characters
in `GtkEntry`, or 0 if there are none.
</return>
</function>

<function name="gtk_entry_get_visibility">
<description>
Retrieves whether the text in @entry is visible.

See [method@Gtk.Entry.set_visibility].


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the text is currently visible
</return>
</function>

<function name="gtk_entry_grab_focus_without_selecting">
<description>
Causes @entry to have keyboard focus.

It behaves like [method@Gtk.Widget.grab_focus], except that it doesn't
select the contents of the entry. You only want to call this on some
special entries which the user usually doesn't want to replace all text
in, such as search-as-you-type entries.


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if focus is now inside @self
</return>
</function>

<function name="gtk_entry_new">
<description>
Creates a new entry.


</description>
<parameters>
</parameters>
<return> a new `GtkEntry`.
</return>
</function>

<function name="gtk_entry_new_with_buffer">
<description>
Creates a new entry with the specified text buffer.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> The buffer to use for the new `GtkEntry`.
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkEntry`
</return>
</function>

<function name="gtk_entry_progress_pulse">
<description>
Indicates that some progress is made, but you don’t
know how much.

Causes the entry’s progress indicator to enter “activity
mode”, where a block bounces back and forth. Each call to
gtk_entry_progress_pulse() causes the block to move by a
little bit (the amount of movement per pulse is determined
by [method@Gtk.Entry.set_progress_pulse_step]).

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_reset_im_context">
<description>
Reset the input method context of the entry if needed.

This can be necessary in the case where modifying the buffer
would confuse on-going input method behavior.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_activates_default">
<description>
Sets whether pressing Enter in the @entry will activate the default
widget for the window containing the entry.

This usually means that the dialog containing the entry will be closed,
since the default widget is usually one of the dialog buttons.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> %TRUE to activate window’s default widget on Enter keypress
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_alignment">
<description>
Sets the alignment for the contents of the entry.

This controls the horizontal positioning of the contents when
the displayed text is shorter than the width of the entry.

See also: [property@Gtk.Editable:xalign]

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="xalign">
<parameter_description> The horizontal alignment, from 0 (left) to 1 (right).
Reversed for RTL layouts
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_attributes">
<description>
Sets a `PangoAttrList`.

The attributes in the list are applied to the entry text.

Since the attributes will be applied to text that changes
as the user types, it makes most sense to use attributes
with unlimited extent.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="attrs">
<parameter_description> a `PangoAttrList`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_buffer">
<description>
Set the `GtkEntryBuffer` object which holds the text for
this widget.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> a `GtkEntryBuffer`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_completion">
<description>
Sets @completion to be the auxiliary completion object
to use with @entry.

All further configuration of the completion mechanism is
done on @completion using the `GtkEntryCompletion` API.
Completion is disabled if @completion is set to %NULL.

Deprecated: 4.10: GtkEntryCompletion will be removed in GTK 5.

</description>
<parameters>
<parameter name="entry">
<parameter_description> A `GtkEntry`
</parameter_description>
</parameter>
<parameter name="completion">
<parameter_description> The `GtkEntryCompletion`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_extra_menu">
<description>
Sets a menu model to add when constructing
the context menu for @entry.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a `GMenuModel`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_has_frame">
<description>
Sets whether the entry has a beveled frame around it.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_icon_activatable">
<description>
Sets whether the icon is activatable.

</description>
<parameters>
<parameter name="entry">
<parameter_description> A `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> Icon position
</parameter_description>
</parameter>
<parameter name="activatable">
<parameter_description> %TRUE if the icon should be activatable
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_icon_drag_source">
<description>
Sets up the icon at the given position as drag source.

This makes it so that GTK will start a drag
operation when the user clicks and drags the icon.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> icon position
</parameter_description>
</parameter>
<parameter name="provider">
<parameter_description> a `GdkContentProvider`
</parameter_description>
</parameter>
<parameter name="actions">
<parameter_description> a bitmask of the allowed drag actions
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_icon_from_gicon">
<description>
Sets the icon shown in the entry at the specified position
from the current icon theme.

If the icon isn’t known, a “broken image” icon will be
displayed instead.

If @icon is %NULL, no icon will be shown in the
specified position.

</description>
<parameters>
<parameter name="entry">
<parameter_description> A `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> The position at which to set the icon
</parameter_description>
</parameter>
<parameter name="icon">
<parameter_description> The icon to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_icon_from_icon_name">
<description>
Sets the icon shown in the entry at the specified position
from the current icon theme.

If the icon name isn’t known, a “broken image” icon will be
displayed instead.

If @icon_name is %NULL, no icon will be shown in the
specified position.

</description>
<parameters>
<parameter name="entry">
<parameter_description> A `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> The position at which to set the icon
</parameter_description>
</parameter>
<parameter name="icon_name">
<parameter_description> An icon name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_icon_from_paintable">
<description>
Sets the icon shown in the specified position using a `GdkPaintable`.

If @paintable is %NULL, no icon will be shown in the specified position.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> Icon position
</parameter_description>
</parameter>
<parameter name="paintable">
<parameter_description> A `GdkPaintable`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_icon_sensitive">
<description>
Sets the sensitivity for the specified icon.

</description>
<parameters>
<parameter name="entry">
<parameter_description> A `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> Icon position
</parameter_description>
</parameter>
<parameter name="sensitive">
<parameter_description> Specifies whether the icon should appear
sensitive or insensitive
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_icon_tooltip_markup">
<description>
Sets @tooltip as the contents of the tooltip for the icon at
the specified position.

@tooltip is assumed to be marked up with Pango Markup.

Use %NULL for @tooltip to remove an existing tooltip.

See also [method@Gtk.Widget.set_tooltip_markup] and
[method@Gtk.Entry.set_icon_tooltip_text].

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> the icon position
</parameter_description>
</parameter>
<parameter name="tooltip">
<parameter_description> the contents of the tooltip for the icon
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_icon_tooltip_text">
<description>
Sets @tooltip as the contents of the tooltip for the icon
at the specified position.

Use %NULL for @tooltip to remove an existing tooltip.

See also [method@Gtk.Widget.set_tooltip_text] and
[method@Gtk.Entry.set_icon_tooltip_markup].

If you unset the widget tooltip via
[method@Gtk.Widget.set_tooltip_text] or
[method@Gtk.Widget.set_tooltip_markup], this sets
[property@Gtk.Widget:has-tooltip] to %FALSE, which suppresses
icon tooltips too. You can resolve this by then calling
[method@Gtk.Widget.set_has_tooltip] to set
[property@Gtk.Widget:has-tooltip] back to %TRUE, or
setting at least one non-empty tooltip on any icon
achieves the same result.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="icon_pos">
<parameter_description> the icon position
</parameter_description>
</parameter>
<parameter name="tooltip">
<parameter_description> the contents of the tooltip for the icon
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_input_hints">
<description>
Set additional hints which allow input methods to
fine-tune their behavior.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="hints">
<parameter_description> the hints
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_input_purpose">
<description>
Sets the input purpose which can be used by input methods
to adjust their behavior.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="purpose">
<parameter_description> the purpose
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_invisible_char">
<description>
Sets the character to use in place of the actual text
in “password mode”.

See [method@Gtk.Entry.set_visibility] for how to enable
“password mode”.

By default, GTK picks the best invisible char available in
the current font. If you set the invisible char to 0, then
the user will get no feedback at all; there will be no text
on the screen as they type.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="ch">
<parameter_description> a Unicode character
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_max_length">
<description>
Sets the maximum allowed length of the contents of the widget.

If the current contents are longer than the given length, then
they will be truncated to fit. The length is in characters.

This is equivalent to getting @entry's `GtkEntryBuffer` and
calling [method@Gtk.EntryBuffer.set_max_length] on it.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="max">
<parameter_description> the maximum length of the entry, or 0 for no maximum.
(other than the maximum length of entries.) The value passed in will
be clamped to the range 0-65536.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_overwrite_mode">
<description>
Sets whether the text is overwritten when typing in the `GtkEntry`.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="overwrite">
<parameter_description> new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_placeholder_text">
<description>
Sets text to be displayed in @entry when it is empty.

This can be used to give a visual hint of the expected
contents of the `GtkEntry`.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> a string to be displayed when @entry is empty and unfocused
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_progress_fraction">
<description>
Causes the entry’s progress indicator to “fill in” the given
fraction of the bar.

The fraction should be between 0.0 and 1.0, inclusive.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="fraction">
<parameter_description> fraction of the task that’s been completed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_progress_pulse_step">
<description>
Sets the fraction of total entry width to move the progress
bouncing block for each pulse.

Use [method@Gtk.Entry.progress_pulse] to pulse
the progress.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="fraction">
<parameter_description> fraction between 0.0 and 1.0
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_tabs">
<description>
Sets a `PangoTabArray`.

The tabstops in the array are applied to the entry text.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="tabs">
<parameter_description> a `PangoTabArray`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_set_visibility">
<description>
Sets whether the contents of the entry are visible or not.

When visibility is set to %FALSE, characters are displayed
as the invisible char, and will also appear that way when
the text in the entry widget is copied elsewhere.

By default, GTK picks the best invisible character available
in the current font, but it can be changed with
[method@Gtk.Entry.set_invisible_char].

Note that you probably want to set [property@Gtk.Entry:input-purpose]
to %GTK_INPUT_PURPOSE_PASSWORD or %GTK_INPUT_PURPOSE_PIN to
inform input methods about the purpose of this entry,
in addition to setting visibility to %FALSE.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
<parameter name="visible">
<parameter_description> %TRUE if the contents of the entry are displayed as plaintext
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_entry_unset_invisible_char">
<description>
Unsets the invisible char, so that the default invisible char
is used again. See [method@Gtk.Entry.set_invisible_char].

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkEntry`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_enumerate_printers">
<description>
Calls a function for all `GtkPrinter`s.

If @func returns %TRUE, the enumeration is stopped.

</description>
<parameters>
<parameter name="func">
<parameter_description> a function to call for each printer
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> user data to pass to @func
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> function to call if @data is no longer needed
</parameter_description>
</parameter>
<parameter name="wait">
<parameter_description> if %TRUE, wait in a recursive mainloop until
all printers are enumerated; otherwise return early
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_event_controller_focus_contains_focus">
<description>
Returns %TRUE if focus is within @self or one of its children.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkEventControllerFocus`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if focus is within @self or one of its children
</return>
</function>

<function name="gtk_event_controller_focus_is_focus">
<description>
Returns %TRUE if focus is within @self, but not one of its children.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkEventControllerFocus`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if focus is within @self, but not one of its children
</return>
</function>

<function name="gtk_event_controller_focus_new">
<description>
Creates a new event controller that will handle focus events.


</description>
<parameters>
</parameters>
<return> a new `GtkEventControllerFocus`
</return>
</function>

<function name="gtk_event_controller_get_current_event">
<description>
Returns the event that is currently being handled by the controller.

At other times, %NULL is returned.


</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventController`
</parameter_description>
</parameter>
</parameters>
<return> the event that is currently
handled by @controller
</return>
</function>

<function name="gtk_event_controller_get_current_event_device">
<description>
Returns the device of the event that is currently being
handled by the controller.

At other times, %NULL is returned.


</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventController`
</parameter_description>
</parameter>
</parameters>
<return> device of the event is
currently handled by @controller
</return>
</function>

<function name="gtk_event_controller_get_current_event_state">
<description>
Returns the modifier state of the event that is currently being
handled by the controller.

At other times, 0 is returned.


</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventController`
</parameter_description>
</parameter>
</parameters>
<return> modifier state of the event is currently handled by @controller
</return>
</function>

<function name="gtk_event_controller_get_current_event_time">
<description>
Returns the timestamp of the event that is currently being
handled by the controller.

At other times, 0 is returned.


</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventController`
</parameter_description>
</parameter>
</parameters>
<return> timestamp of the event is currently handled by @controller
</return>
</function>

<function name="gtk_event_controller_get_name">
<description>
Gets the name of @controller.


</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventController`
</parameter_description>
</parameter>
</parameters>
<return> The controller name
</return>
</function>

<function name="gtk_event_controller_get_propagation_limit">
<description>
Gets the propagation limit of the event controller.


</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventController`
</parameter_description>
</parameter>
</parameters>
<return> the propagation limit
</return>
</function>

<function name="gtk_event_controller_get_propagation_phase">
<description>
Gets the propagation phase at which @controller handles events.


</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventController`
</parameter_description>
</parameter>
</parameters>
<return> the propagation phase
</return>
</function>

<function name="gtk_event_controller_get_widget">
<description>
Returns the `GtkWidget` this controller relates to.


</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventController`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkWidget`
</return>
</function>

<function name="gtk_event_controller_key_forward">
<description>
Forwards the current event of this @controller to a @widget.

This function can only be used in handlers for the
[signal@Gtk.EventControllerKey::key-pressed],
[signal@Gtk.EventControllerKey::key-released]
or [signal@Gtk.EventControllerKey::modifiers] signals.


</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventControllerKey`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> whether the @widget handled the event
</return>
</function>

<function name="gtk_event_controller_key_get_group">
<description>
Gets the key group of the current event of this @controller.

See [method@Gdk.KeyEvent.get_layout].


</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventControllerKey`
</parameter_description>
</parameter>
</parameters>
<return> the key group
</return>
</function>

<function name="gtk_event_controller_key_get_im_context">
<description>
Gets the input method context of the key @controller.


</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventControllerKey`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkIMContext`
</return>
</function>

<function name="gtk_event_controller_key_new">
<description>
Creates a new event controller that will handle key events.


</description>
<parameters>
</parameters>
<return> a new `GtkEventControllerKey`
</return>
</function>

<function name="gtk_event_controller_key_set_im_context">
<description>
Sets the input method context of the key @controller.

</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventControllerKey`
</parameter_description>
</parameter>
<parameter name="im_context">
<parameter_description> a `GtkIMContext`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_event_controller_legacy_new">
<description>
Creates a new legacy event controller.


</description>
<parameters>
</parameters>
<return> the newly created event controller.
</return>
</function>

<function name="gtk_event_controller_motion_contains_pointer">
<description>
Returns if a pointer is within @self or one of its children.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkEventControllerMotion`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a pointer is within @self or one of its children
</return>
</function>

<function name="gtk_event_controller_motion_is_pointer">
<description>
Returns if a pointer is within @self, but not one of its children.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkEventControllerMotion`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a pointer is within @self but not one of its children
</return>
</function>

<function name="gtk_event_controller_motion_new">
<description>
Creates a new event controller that will handle motion events.


</description>
<parameters>
</parameters>
<return> a new `GtkEventControllerMotion`
</return>
</function>

<function name="gtk_event_controller_reset">
<description>
Resets the @controller to a clean state.

</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventController`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_event_controller_scroll_get_flags">
<description>
Gets the flags conditioning the scroll controller behavior.


</description>
<parameters>
<parameter name="scroll">
<parameter_description> a `GtkEventControllerScroll`
</parameter_description>
</parameter>
</parameters>
<return> the controller flags.
</return>
</function>

<function name="gtk_event_controller_scroll_get_unit">
<description>
Gets the scroll unit of the last
[signal@Gtk.EventControllerScroll::scroll] signal received.

Always returns %GDK_SCROLL_UNIT_WHEEL if the
%GTK_EVENT_CONTROLLER_SCROLL_DISCRETE flag is set.

Since: 4.8

</description>
<parameters>
<parameter name="scroll">
<parameter_description> a `GtkEventControllerScroll`.
</parameter_description>
</parameter>
</parameters>
<return> the scroll unit.

</return>
</function>

<function name="gtk_event_controller_scroll_new">
<description>
Creates a new event controller that will handle scroll events.


</description>
<parameters>
<parameter name="flags">
<parameter_description> flags affecting the controller behavior
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkEventControllerScroll`
</return>
</function>

<function name="gtk_event_controller_scroll_set_flags">
<description>
Sets the flags conditioning scroll controller behavior.

</description>
<parameters>
<parameter name="scroll">
<parameter_description> a `GtkEventControllerScroll`
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags affecting the controller behavior
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_event_controller_set_name">
<description>
Sets a name on the controller that can be used for debugging.

</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventController`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> a name for @controller
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_event_controller_set_propagation_limit">
<description>
Sets the event propagation limit on the event controller.

If the limit is set to %GTK_LIMIT_SAME_NATIVE, the controller
won't handle events that are targeted at widgets on a different
surface, such as popovers.

</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventController`
</parameter_description>
</parameter>
<parameter name="limit">
<parameter_description> the propagation limit
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_event_controller_set_propagation_phase">
<description>
Sets the propagation phase at which a controller handles events.

If @phase is %GTK_PHASE_NONE, no automatic event handling will be
performed, but other additional gesture maintenance will.

</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventController`
</parameter_description>
</parameter>
<parameter name="phase">
<parameter_description> a propagation phase
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_event_controller_set_static_name">
<description>
Sets a name on the controller that can be used for debugging.

Since: 4.8

</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkEventController`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> a name for @controller, must be a static string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_every_filter_new">
<description>
Creates a new empty &quot;every&quot; filter.

Use [method@Gtk.MultiFilter.append] to add filters to it.

This filter matches an item if each of the filters added to it
matches the item. In particular, this means that if no filter
has been added to it, the filter matches every item.


</description>
<parameters>
</parameters>
<return> a new `GtkEveryFilter`
</return>
</function>

<function name="gtk_expander_get_child">
<description>
Gets the child widget of @expander.


</description>
<parameters>
<parameter name="expander">
<parameter_description> a `GtkExpander`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @expander
</return>
</function>

<function name="gtk_expander_get_expanded">
<description>
Queries a `GtkExpander` and returns its current state.


</description>
<parameters>
<parameter name="expander">
<parameter_description>a `GtkExpander`
</parameter_description>
</parameter>
</parameters>
<return> the current state of the expander
</return>
</function>

<function name="gtk_expander_get_label">
<description>
Fetches the text from a label widget.

This is including any embedded underlines indicating mnemonics and
Pango markup, as set by [method@Gtk.Expander.set_label]. If the label
text has not been set the return value will be %NULL. This will be the
case if you create an empty button with gtk_button_new() to use as a
container.


</description>
<parameters>
<parameter name="expander">
<parameter_description> a `GtkExpander`
</parameter_description>
</parameter>
</parameters>
<return> The text of the label widget. This string is owned
by the widget and must not be modified or freed.
</return>
</function>

<function name="gtk_expander_get_label_widget">
<description>
Retrieves the label widget for the frame.


</description>
<parameters>
<parameter name="expander">
<parameter_description> a `GtkExpander`
</parameter_description>
</parameter>
</parameters>
<return> the label widget
</return>
</function>

<function name="gtk_expander_get_resize_toplevel">
<description>
Returns whether the expander will resize the toplevel widget
containing the expander upon resizing and collapsing.


</description>
<parameters>
<parameter name="expander">
<parameter_description> a `GtkExpander`
</parameter_description>
</parameter>
</parameters>
<return> the “resize toplevel” setting.
</return>
</function>

<function name="gtk_expander_get_use_markup">
<description>
Returns whether the label’s text is interpreted as Pango markup.


</description>
<parameters>
<parameter name="expander">
<parameter_description> a `GtkExpander`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the label’s text will be parsed for markup
</return>
</function>

<function name="gtk_expander_get_use_underline">
<description>
Returns whether an underline in the text indicates a mnemonic.


</description>
<parameters>
<parameter name="expander">
<parameter_description> a `GtkExpander`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if an embedded underline in the expander
label indicates the mnemonic accelerator keys
</return>
</function>

<function name="gtk_expander_new">
<description>
Creates a new expander using @label as the text of the label.


</description>
<parameters>
<parameter name="label">
<parameter_description> the text of the label
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkExpander` widget.
</return>
</function>

<function name="gtk_expander_new_with_mnemonic">
<description>
Creates a new expander using @label as the text of the label.

If characters in @label are preceded by an underscore, they are
underlined. If you need a literal underscore character in a label,
use “__” (two underscores). The first underlined character represents
a keyboard accelerator called a mnemonic.

Pressing Alt and that key activates the button.


</description>
<parameters>
<parameter name="label">
<parameter_description> the text of the label with an underscore
in front of the mnemonic character
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkExpander` widget.
</return>
</function>

<function name="gtk_expander_set_child">
<description>
Sets the child widget of @expander.

</description>
<parameters>
<parameter name="expander">
<parameter_description> a `GtkExpander`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_expander_set_expanded">
<description>
Sets the state of the expander.

Set to %TRUE, if you want the child widget to be revealed,
and %FALSE if you want the child widget to be hidden.

</description>
<parameters>
<parameter name="expander">
<parameter_description> a `GtkExpander`
</parameter_description>
</parameter>
<parameter name="expanded">
<parameter_description> whether the child widget is revealed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_expander_set_label">
<description>
Sets the text of the label of the expander to @label.

This will also clear any previously set labels.

</description>
<parameters>
<parameter name="expander">
<parameter_description> a `GtkExpander`
</parameter_description>
</parameter>
<parameter name="label">
<parameter_description> a string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_expander_set_label_widget">
<description>
Set the label widget for the expander.

This is the widget that will appear embedded alongside
the expander arrow.

</description>
<parameters>
<parameter name="expander">
<parameter_description> a `GtkExpander`
</parameter_description>
</parameter>
<parameter name="label_widget">
<parameter_description> the new label widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_expander_set_resize_toplevel">
<description>
Sets whether the expander will resize the toplevel widget
containing the expander upon resizing and collapsing.

</description>
<parameters>
<parameter name="expander">
<parameter_description> a `GtkExpander`
</parameter_description>
</parameter>
<parameter name="resize_toplevel">
<parameter_description> whether to resize the toplevel
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_expander_set_use_markup">
<description>
Sets whether the text of the label contains Pango markup.

</description>
<parameters>
<parameter name="expander">
<parameter_description> a `GtkExpander`
</parameter_description>
</parameter>
<parameter name="use_markup">
<parameter_description> %TRUE if the label’s text should be parsed for markup
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_expander_set_use_underline">
<description>
If true, an underline in the text indicates a mnemonic.

</description>
<parameters>
<parameter name="expander">
<parameter_description> a `GtkExpander`
</parameter_description>
</parameter>
<parameter name="use_underline">
<parameter_description> %TRUE if underlines in the text indicate mnemonics
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_expression_bind">
<description>
Bind `target`'s property named `property` to `self`.

The value that `self` evaluates to is set via `g_object_set()` on
`target`. This is repeated whenever `self` changes to ensure that
the object's property stays synchronized with `self`.

If `self`'s evaluation fails, `target`'s `property` is not updated.
You can ensure that this doesn't happen by using a fallback
expression.

Note that this function takes ownership of `self`. If you want
to keep it around, you should [method@Gtk.Expression.ref] it beforehand.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkExpression`
</parameter_description>
</parameter>
<parameter name="target">
<parameter_description> the target object to bind to
</parameter_description>
</parameter>
<parameter name="property">
<parameter_description> name of the property on `target` to bind to
</parameter_description>
</parameter>
<parameter name="this_">
<parameter_description> the this argument for
the evaluation of `self`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkExpressionWatch`
</return>
</function>

<function name="gtk_expression_evaluate">
<description>
Evaluates the given expression and on success stores the result
in @value.

The `GType` of `value` will be the type given by
[method@Gtk.Expression.get_value_type].

It is possible that expressions cannot be evaluated - for example
when the expression references objects that have been destroyed or
set to `NULL`. In that case `value` will remain empty and `FALSE`
will be returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkExpression`
</parameter_description>
</parameter>
<parameter name="this_">
<parameter_description> the this argument for the evaluation
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> an empty `GValue`
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if the expression could be evaluated
</return>
</function>

<function name="gtk_expression_get_value_type">
<description>
Gets the `GType` that this expression evaluates to.

This type is constant and will not change over the lifetime
of this expression.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkExpression`
</parameter_description>
</parameter>
</parameters>
<return> The type returned from [method@Gtk.Expression.evaluate]
</return>
</function>

<function name="gtk_expression_is_static">
<description>
Checks if the expression is static.

A static expression will never change its result when
[method@Gtk.Expression.evaluate] is called on it with the same arguments.

That means a call to [method@Gtk.Expression.watch] is not necessary because
it will never trigger a notify.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkExpression`
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if the expression is static
</return>
</function>

<function name="gtk_expression_ref">
<description>
Acquires a reference on the given `GtkExpression`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkExpression`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkExpression` with an additional reference
</return>
</function>

<function name="gtk_expression_unref">
<description>
Releases a reference on the given `GtkExpression`.

If the reference was the last, the resources associated to the `self` are
freed.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkExpression`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_expression_watch">
<description>
Watch the given `expression` for changes.

The @notify function will be called whenever the evaluation of `self`
may have changed.

GTK cannot guarantee that the evaluation did indeed change when the @notify
gets invoked, but it guarantees the opposite: When it did in fact change,
the @notify will be invoked.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkExpression`
</parameter_description>
</parameter>
<parameter name="this_">
<parameter_description> the `this` argument to
watch
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> callback to invoke when the expression changes
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data to pass to the `notify` callback
</parameter_description>
</parameter>
<parameter name="user_destroy">
<parameter_description> destroy notify for `user_data`
</parameter_description>
</parameter>
</parameters>
<return> The newly installed watch. Note that the only
reference held to the watch will be released when the watch is unwatched
which can happen automatically, and not just via
[method@Gtk.ExpressionWatch.unwatch]. You should call [method@Gtk.ExpressionWatch.ref]
if you want to keep the watch around.
</return>
</function>

<function name="gtk_expression_watch_evaluate">
<description>
Evaluates the watched expression and on success stores the result
in `value`.

This is equivalent to calling [method@Gtk.Expression.evaluate] with the
expression and this pointer originally used to create `watch`.


</description>
<parameters>
<parameter name="watch">
<parameter_description> a `GtkExpressionWatch`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> an empty `GValue` to be set
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if the expression could be evaluated and `value` was set
</return>
</function>

<function name="gtk_expression_watch_ref">
<description>
Acquires a reference on the given `GtkExpressionWatch`.


</description>
<parameters>
<parameter name="watch">
<parameter_description> a `GtkExpressionWatch`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkExpressionWatch` with an additional reference
</return>
</function>

<function name="gtk_expression_watch_unref">
<description>
Releases a reference on the given `GtkExpressionWatch`.

If the reference was the last, the resources associated to `self` are
freed.

</description>
<parameters>
<parameter name="watch">
<parameter_description> a `GtkExpressionWatch`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_expression_watch_unwatch">
<description>
Stops watching an expression.

See [method@Gtk.Expression.watch] for how the watch
was established.

</description>
<parameters>
<parameter name="watch">
<parameter_description> watch to release
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_chooser_add_choice">
<description>
Adds a 'choice' to the file chooser.

This is typically implemented as a combobox or, for boolean choices,
as a checkbutton. You can select a value using
[method@Gtk.FileChooser.set_choice] before the dialog is shown,
and you can obtain the user-selected value in the
[signal@Gtk.Dialog::response] signal handler using
[method@Gtk.FileChooser.get_choice].

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> id for the added choice
</parameter_description>
</parameter>
<parameter name="label">
<parameter_description> user-visible label for the added choice
</parameter_description>
</parameter>
<parameter name="options">
<parameter_description> ids for the options of the choice, or %NULL for a boolean choice
</parameter_description>
</parameter>
<parameter name="option_labels">
<parameter_description> user-visible labels for the options, must be the same length as @options
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_chooser_add_filter">
<description>
Adds @filter to the list of filters that the user can select between.

When a filter is selected, only files that are passed by that
filter are displayed.

Note that the @chooser takes ownership of the filter if it is floating,
so you have to ref and sink it if you want to keep a reference.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> a `GtkFileFilter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_chooser_add_shortcut_folder">
<description>
Adds a folder to be displayed with the shortcut folders
in a file chooser.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
<parameter name="folder">
<parameter_description> a `GFile` for the folder to add
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> location to store error
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the folder could be added successfully,
%FALSE otherwise.

</return>
</function>

<function name="gtk_file_chooser_dialog_new">
<description>
Creates a new `GtkFileChooserDialog`.

This function is analogous to [ctor@Gtk.Dialog.new_with_buttons].

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="title">
<parameter_description> Title of the dialog
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> Transient parent of the dialog
</parameter_description>
</parameter>
<parameter name="action">
<parameter_description> Open or save mode for the dialog
</parameter_description>
</parameter>
<parameter name="first_button_text">
<parameter_description> text to go in the first button
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> response ID for the first button, then additional (button, id) pairs, ending with %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkFileChooserDialog`

</return>
</function>

<function name="gtk_file_chooser_error_quark">
<description>
Registers an error quark for `GtkFileChooser` errors.


</description>
<parameters>
</parameters>
<return> The error quark used for `GtkFileChooser` errors.
</return>
</function>

<function name="gtk_file_chooser_get_action">
<description>
Gets the type of operation that the file chooser is performing.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
</parameters>
<return> the action that the file selector is performing

</return>
</function>

<function name="gtk_file_chooser_get_choice">
<description>
Gets the currently selected option in the 'choice' with the given ID.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the ID of the choice to get
</parameter_description>
</parameter>
</parameters>
<return> the ID of the currently selected option

</return>
</function>

<function name="gtk_file_chooser_get_create_folders">
<description>
Gets whether file chooser will offer to create new folders.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the Create Folder button should be displayed.

</return>
</function>

<function name="gtk_file_chooser_get_current_folder">
<description>
Gets the current folder of @chooser as `GFile`.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
</parameters>
<return> the `GFile` for the current folder.

</return>
</function>

<function name="gtk_file_chooser_get_current_name">
<description>
Gets the current name in the file selector, as entered by the user.

This is meant to be used in save dialogs, to get the currently typed
filename when the file itself does not exist yet.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
</parameters>
<return> The raw text from the file chooser’s “Name” entry. Free with
g_free(). Note that this string is not a full pathname or URI; it is
whatever the contents of the entry are. Note also that this string is
in UTF-8 encoding, which is not necessarily the system’s encoding for
filenames.

</return>
</function>

<function name="gtk_file_chooser_get_file">
<description>
Gets the `GFile` for the currently selected file in
the file selector.

If multiple files are selected, one of the files will be
returned at random.

If the file chooser is in folder mode, this function returns
the selected folder.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
</parameters>
<return> a selected `GFile`. You own the
returned file; use g_object_unref() to release it.

</return>
</function>

<function name="gtk_file_chooser_get_files">
<description>
Lists all the selected files and subfolders in the current folder
of @chooser as `GFile`.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
</parameters>
<return> a list model containing a `GFile` for each
selected file and subfolder in the current folder. Free the returned
list with g_object_unref().

</return>
</function>

<function name="gtk_file_chooser_get_filter">
<description>
Gets the current filter.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
</parameters>
<return> the current filter

</return>
</function>

<function name="gtk_file_chooser_get_filters">
<description>
Gets the current set of user-selectable filters, as a list model.

See [method@Gtk.FileChooser.add_filter] and
[method@Gtk.FileChooser.remove_filter] for changing individual filters.

You should not modify the returned list model. Future changes to
@chooser may or may not affect the returned model.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
</parameters>
<return> a `GListModel` containing the current set
of user-selectable filters.

</return>
</function>

<function name="gtk_file_chooser_get_select_multiple">
<description>
Gets whether multiple files can be selected in the file
chooser.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if multiple files can be selected.

</return>
</function>

<function name="gtk_file_chooser_get_shortcut_folders">
<description>
Queries the list of shortcut folders in the file chooser.

You should not modify the returned list model. Future changes to
@chooser may or may not affect the returned model.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
</parameters>
<return> A list model of `GFile`s

</return>
</function>

<function name="gtk_file_chooser_native_get_accept_label">
<description>
Retrieves the custom label text for the accept button.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileChooserNative`
</parameter_description>
</parameter>
</parameters>
<return> The custom label

</return>
</function>

<function name="gtk_file_chooser_native_get_cancel_label">
<description>
Retrieves the custom label text for the cancel button.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileChooserNative`
</parameter_description>
</parameter>
</parameters>
<return> The custom label

</return>
</function>

<function name="gtk_file_chooser_native_new">
<description>
Creates a new `GtkFileChooserNative`.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="title">
<parameter_description> Title of the native
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> Transient parent of the native
</parameter_description>
</parameter>
<parameter name="action">
<parameter_description> Open or save mode for the dialog
</parameter_description>
</parameter>
<parameter name="accept_label">
<parameter_description> text to go in the accept button, or %NULL for the default
</parameter_description>
</parameter>
<parameter name="cancel_label">
<parameter_description> text to go in the cancel button, or %NULL for the default
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkFileChooserNative`

</return>
</function>

<function name="gtk_file_chooser_native_set_accept_label">
<description>
Sets the custom label text for the accept button.

If characters in @label are preceded by an underscore, they are
underlined. If you need a literal underscore character in a label,
use “__” (two underscores). The first underlined character represents
a keyboard accelerator called a mnemonic.

Pressing Alt and that key should activate the button.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileChooserNative`
</parameter_description>
</parameter>
<parameter name="accept_label">
<parameter_description> custom label
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_chooser_native_set_cancel_label">
<description>
Sets the custom label text for the cancel button.

If characters in @label are preceded by an underscore, they are
underlined. If you need a literal underscore character in a label,
use “__” (two underscores). The first underlined character represents
a keyboard accelerator called a mnemonic.

Pressing Alt and that key should activate the button.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileChooserNative`
</parameter_description>
</parameter>
<parameter name="cancel_label">
<parameter_description> custom label
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_chooser_remove_choice">
<description>
Removes a 'choice' that has been added with gtk_file_chooser_add_choice().

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the ID of the choice to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_chooser_remove_filter">
<description>
Removes @filter from the list of filters that the user can select between.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> a `GtkFileFilter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_chooser_remove_shortcut_folder">
<description>
Removes a folder from the shortcut folders in a file chooser.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
<parameter name="folder">
<parameter_description> a `GFile` for the folder to remove
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> location to store error
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the folder could be removed successfully,
%FALSE otherwise.

</return>
</function>

<function name="gtk_file_chooser_set_action">
<description>
Sets the type of operation that the chooser is performing.

The user interface is adapted to suit the selected action.

For example, an option to create a new folder might be shown
if the action is %GTK_FILE_CHOOSER_ACTION_SAVE but not if the
action is %GTK_FILE_CHOOSER_ACTION_OPEN.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
<parameter name="action">
<parameter_description> the action that the file selector is performing
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_chooser_set_choice">
<description>
Selects an option in a 'choice' that has been added with
gtk_file_chooser_add_choice().

For a boolean choice, the possible options are &quot;true&quot; and &quot;false&quot;.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the ID of the choice to set
</parameter_description>
</parameter>
<parameter name="option">
<parameter_description> the ID of the option to select
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_chooser_set_create_folders">
<description>
Sets whether file chooser will offer to create new folders.

This is only relevant if the action is not set to be
%GTK_FILE_CHOOSER_ACTION_OPEN.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
<parameter name="create_folders">
<parameter_description> %TRUE if the Create Folder button should be displayed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_chooser_set_current_folder">
<description>
Sets the current folder for @chooser from a `GFile`.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description> the `GFile` for the new folder
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> location to store error
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the folder could be changed successfully, %FALSE
otherwise.

</return>
</function>

<function name="gtk_file_chooser_set_current_name">
<description>
Sets the current name in the file selector, as if entered
by the user.

Note that the name passed in here is a UTF-8 string rather
than a filename. This function is meant for such uses as a
suggested name in a “Save As...” dialog.  You can pass
“Untitled.doc” or a similarly suitable suggestion for the @name.

If you want to preselect a particular existing file, you should
use [method@Gtk.FileChooser.set_file] instead.

Please see the documentation for those functions for an example
of using [method@Gtk.FileChooser.set_current_name] as well.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the filename to use, as a UTF-8 string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_chooser_set_file">
<description>
Sets @file as the current filename for the file chooser.

This includes changing to the file’s parent folder and actually selecting
the file in list. If the @chooser is in %GTK_FILE_CHOOSER_ACTION_SAVE mode,
the file’s base name will also appear in the dialog’s file name entry.

If the file name isn’t in the current folder of @chooser, then the current
folder of @chooser will be changed to the folder containing @file.

Note that the file must exist, or nothing will be done except
for the directory change.

If you are implementing a save dialog, you should use this function if
you already have a file name to which the user may save; for example,
when the user opens an existing file and then does “Save As…”. If you
don’t have a file name already — for example, if the user just created
a new file and is saving it for the first time, do not call this function.

Instead, use something similar to this:

```c
static void
prepare_file_chooser (GtkFileChooser *chooser,
GFile          *existing_file)
{
gboolean document_is_new = (existing_file == NULL);

if (document_is_new)
{
GFile *default_file_for_saving = g_file_new_for_path (&quot;./out.txt&quot;);
// the user just created a new document
gtk_file_chooser_set_current_folder (chooser, default_file_for_saving, NULL);
gtk_file_chooser_set_current_name (chooser, &quot;Untitled document&quot;);
g_object_unref (default_file_for_saving);
}
else
{
// the user edited an existing document
gtk_file_chooser_set_file (chooser, existing_file, NULL);
}
}
```

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description> the `GFile` to set as current
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> location to store the error
</parameter_description>
</parameter>
</parameters>
<return> Not useful

</return>
</function>

<function name="gtk_file_chooser_set_filter">
<description>
Sets the current filter.

Only the files that pass the filter will be displayed.
If the user-selectable list of filters is non-empty, then
the filter should be one of the filters in that list.

Setting the current filter when the list of filters is
empty is useful if you want to restrict the displayed
set of files without letting the user change it.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> a `GtkFileFilter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_chooser_set_select_multiple">
<description>
Sets whether multiple files can be selected in the file chooser.

This is only relevant if the action is set to be
%GTK_FILE_CHOOSER_ACTION_OPEN or
%GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.

Deprecated: 4.10: Use [class@Gtk.FileDialog] instead

</description>
<parameters>
<parameter name="chooser">
<parameter_description> a `GtkFileChooser`
</parameter_description>
</parameter>
<parameter name="select_multiple">
<parameter_description> %TRUE if multiple files can be selected.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_chooser_widget_new">
<description>
Creates a new `GtkFileChooserWidget`.

This is a file chooser widget that can be embedded in custom
windows, and it is the same widget that is used by
`GtkFileChooserDialog`.

Deprecated: 4.10: Direct use of `GtkFileChooserWidget` is deprecated

</description>
<parameters>
<parameter name="action">
<parameter_description> Open or save mode for the widget
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkFileChooserWidget`

</return>
</function>

<function name="gtk_file_dialog_get_accept_label">
<description>
Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
</parameters>
<return> the label shown on the file chooser's accept button.

</return>
</function>

<function name="gtk_file_dialog_get_default_filter">
<description>
Gets the filter that will be selected by default
in the file chooser dialog.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
</parameters>
<return> the current filter

</return>
</function>

<function name="gtk_file_dialog_get_filters">
<description>
Gets the filters that will be offered to the user
in the file chooser dialog.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
</parameters>
<return> the filters, as
a `GListModel` of `GtkFileFilters`

</return>
</function>

<function name="gtk_file_dialog_get_initial_file">
<description>
Gets the file that will be initially selected in
the file chooser dialog.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
</parameters>
<return> the file

</return>
</function>

<function name="gtk_file_dialog_get_initial_folder">
<description>
Gets the folder that will be set as the
initial folder in the file chooser dialog.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
</parameters>
<return> the folder

</return>
</function>

<function name="gtk_file_dialog_get_initial_name">
<description>
Gets the name for the file that should be initially set.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
</parameters>
<return> the name

</return>
</function>

<function name="gtk_file_dialog_get_modal">
<description>
Returns whether the file chooser dialog
blocks interaction with the parent window
while it is presented.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if the file chooser dialog is modal

</return>
</function>

<function name="gtk_file_dialog_get_title">
<description>
Returns the title that will be shown on the
file chooser dialog.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
</parameters>
<return> the title

</return>
</function>

<function name="gtk_file_dialog_new">
<description>
Creates a new `GtkFileDialog` object.

Since: 4.10

</description>
<parameters>
</parameters>
<return> the new `GtkFileDialog`

</return>
</function>

<function name="gtk_file_dialog_open">
<description>
This function initiates a file selection operation by
presenting a file chooser dialog to the user.

The @callback will be called when the dialog is dismissed.
It should call [method@Gtk.FileDialog.open_finish]
to obtain the result.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_dialog_open_finish">
<description>
Finishes the [method@Gtk.FileDialog.open] call and
returns the resulting file.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] error
</parameter_description>
</parameter>
</parameters>
<return> the file that was selected.
Otherwise, `NULL` is returned and @error is set

</return>
</function>

<function name="gtk_file_dialog_open_multiple">
<description>
This function initiates a multi-file selection operation by
presenting a file chooser dialog to the user.

The file chooser will initially be opened in the directory
[property@Gtk.FileDialog:initial-folder].

The @callback will be called when the dialog is dismissed.
It should call [method@Gtk.FileDialog.open_multiple_finish]
to obtain the result.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_dialog_open_multiple_finish">
<description>
Finishes the [method@Gtk.FileDialog.open] call and
returns the resulting files in a `GListModel`.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] error
</parameter_description>
</parameter>
</parameters>
<return> the file that was selected,
as a `GListModel` of `GFiles`. Otherwise, `NULL` is returned
and @error is set

</return>
</function>

<function name="gtk_file_dialog_save">
<description>
This function initiates a file save operation by
presenting a file chooser dialog to the user.

The @callback will be called when the dialog is dismissed.
It should call [method@Gtk.FileDialog.save_finish]
to obtain the result.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_dialog_save_finish">
<description>
Finishes the [method@Gtk.FileDialog.save] call and
returns the resulting file.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] error
</parameter_description>
</parameter>
</parameters>
<return> the file that was selected.
Otherwise, `NULL` is returned and @error is set

</return>
</function>

<function name="gtk_file_dialog_select_folder">
<description>
This function initiates a directory selection operation by
presenting a file chooser dialog to the user.

If you pass @initial_folder, the file chooser will initially be
opened in the parent directory of that folder, otherwise, it
will be in the directory [property@Gtk.FileDialog:initial-folder].

The @callback will be called when the dialog is dismissed.
It should call [method@Gtk.FileDialog.select_folder_finish]
to obtain the result.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_dialog_select_folder_finish">
<description>
Finishes the [method@Gtk.FileDialog.select_folder] call and
returns the resulting file.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] error
</parameter_description>
</parameter>
</parameters>
<return> the file that was selected.
Otherwise, `NULL` is returned and @error is set

</return>
</function>

<function name="gtk_file_dialog_select_multiple_folders">
<description>
This function initiates a multi-directory selection operation by
presenting a file chooser dialog to the user.

The file chooser will initially be opened in the directory
[property@Gtk.FileDialog:initial-folder].

The @callback will be called when the dialog is dismissed.
It should call [method@Gtk.FileDialog.select_multiple_folders_finish]
to obtain the result.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_dialog_select_multiple_folders_finish">
<description>
Finishes the [method@Gtk.FileDialog.select_multiple_folders]
call and returns the resulting files in a `GListModel`.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] error
</parameter_description>
</parameter>
</parameters>
<return> the file that was selected,
as a `GListModel` of `GFiles`. Otherwise, `NULL` is returned
and @error is set

</return>
</function>

<function name="gtk_file_dialog_set_accept_label">
<description>
Sets the label shown on the file chooser's accept button.

Leaving the accept label unset or setting it as `NULL` will fall back to
a default label, depending on what API is used to launch the file dialog.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="accept_label">
<parameter_description> the new accept label
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_dialog_set_default_filter">
<description>
Sets the filter that will be selected by default
in the file chooser dialog.

If set to %NULL, the first item in [property@Gtk.FileDialog:filters]
will be used as the default filter. If that list is empty, the dialog
will be unfiltered.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> a `GtkFileFilter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_dialog_set_filters">
<description>
Sets the filters that will be offered to the user
in the file chooser dialog.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="filters">
<parameter_description> a `GListModel` of `GtkFileFilters`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_dialog_set_initial_file">
<description>
Sets the file that will be initially selected in
the file chooser dialog.

This function is a shortcut for calling both
gtk_file_dialog_set_initial_folder() and
gtk_file_dialog_set_initial_name() with the directory and
name of @file respectively.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description> a `GFile`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_dialog_set_initial_folder">
<description>
Sets the folder that will be set as the
initial folder in the file chooser dialog.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="folder">
<parameter_description> a `GFile`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_dialog_set_initial_name">
<description>
Sets the name for the file that should be initially set.
For saving dialogs, this will usually be pre-entered into the name field.

If a file with this name already exists in the directory set via
[property@Gtk.FileDialog:initial-folder], the dialog should preselect it.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> a UTF8 string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_dialog_set_modal">
<description>
Sets whether the file chooser dialog
blocks interaction with the parent window
while it is presented.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="modal">
<parameter_description> the new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_dialog_set_title">
<description>
Sets the title that will be shown on the
file chooser dialog.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileDialog`
</parameter_description>
</parameter>
<parameter name="title">
<parameter_description> the new title
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_filter_add_mime_type">
<description>
Adds a rule allowing a given mime type to @filter.

</description>
<parameters>
<parameter name="filter">
<parameter_description> A `GtkFileFilter`
</parameter_description>
</parameter>
<parameter name="mime_type">
<parameter_description> name of a MIME type
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_filter_add_pattern">
<description>
Adds a rule allowing a shell style glob to a filter.

Note that it depends on the platform whether pattern
matching ignores case or not. On Windows, it does, on
other platforms, it doesn't.

</description>
<parameters>
<parameter name="filter">
<parameter_description> a `GtkFileFilter`
</parameter_description>
</parameter>
<parameter name="pattern">
<parameter_description> a shell style glob
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_filter_add_pixbuf_formats">
<description>
Adds a rule allowing image files in the formats supported
by GdkPixbuf.

This is equivalent to calling [method@Gtk.FileFilter.add_mime_type]
for all the supported mime types.

</description>
<parameters>
<parameter name="filter">
<parameter_description> a `GtkFileFilter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_filter_add_suffix">
<description>
Adds a suffix match rule to a filter.

This is similar to adding a match for the pattern
&quot;*.@suffix&quot;.

In contrast to pattern matches, suffix matches
are *always* case-insensitive.

Since: 4.4

</description>
<parameters>
<parameter name="filter">
<parameter_description> a `GtkFileFilter`
</parameter_description>
</parameter>
<parameter name="suffix">
<parameter_description> filename suffix to match
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_filter_get_attributes">
<description>
Gets the attributes that need to be filled in for the `GFileInfo`
passed to this filter.

This function will not typically be used by applications;
it is intended principally for use in the implementation
of `GtkFileChooser`.


</description>
<parameters>
<parameter name="filter">
<parameter_description> a `GtkFileFilter`
</parameter_description>
</parameter>
</parameters>
<return> the attributes
</return>
</function>

<function name="gtk_file_filter_get_name">
<description>
Gets the human-readable name for the filter.

See [method@Gtk.FileFilter.set_name].


</description>
<parameters>
<parameter name="filter">
<parameter_description> a `GtkFileFilter`
</parameter_description>
</parameter>
</parameters>
<return> The human-readable name of the filter
</return>
</function>

<function name="gtk_file_filter_new">
<description>
Creates a new `GtkFileFilter` with no rules added to it.

Such a filter doesn’t accept any files, so is not
particularly useful until you add rules with
[method@Gtk.FileFilter.add_mime_type],
[method@Gtk.FileFilter.add_pattern],
[method@Gtk.FileFilter.add_suffix] or
[method@Gtk.FileFilter.add_pixbuf_formats].

To create a filter that accepts any file, use:
```c
GtkFileFilter *filter = gtk_file_filter_new ();
gtk_file_filter_add_pattern (filter, &quot;*&quot;);
```


</description>
<parameters>
</parameters>
<return> a new `GtkFileFilter`
</return>
</function>

<function name="gtk_file_filter_new_from_gvariant">
<description>
Deserialize a file filter from a `GVariant`.

The variant must be in the format produced by
[method@Gtk.FileFilter.to_gvariant].


</description>
<parameters>
<parameter name="variant">
<parameter_description> an `a{sv}` `GVariant`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkFileFilter` object
</return>
</function>

<function name="gtk_file_filter_set_name">
<description>
Sets a human-readable name of the filter.

This is the string that will be displayed in the file chooser
if there is a selectable list of filters.

</description>
<parameters>
<parameter name="filter">
<parameter_description> a `GtkFileFilter`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the human-readable-name for the filter, or %NULL
to remove any existing name.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_filter_to_gvariant">
<description>
Serialize a file filter to an `a{sv}` variant.


</description>
<parameters>
<parameter name="filter">
<parameter_description> a `GtkFileFilter`
</parameter_description>
</parameter>
</parameters>
<return> a new, floating, `GVariant`
</return>
</function>

<function name="gtk_file_launcher_get_always_ask">
<description>
Returns whether to ask the user to choose an app for opening the file.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileLauncher`
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if always asking for app

</return>
</function>

<function name="gtk_file_launcher_get_file">
<description>
Gets the file that will be opened.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileLauncher`
</parameter_description>
</parameter>
</parameters>
<return> the file

</return>
</function>

<function name="gtk_file_launcher_launch">
<description>
Launch an application to open the file.

This may present an app chooser dialog to the user.

The @callback will be called when the operation is completed.
It should call [method@Gtk.FileLauncher.launch_finish] to obtain
the result.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileLauncher`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_launcher_launch_finish">
<description>
Finishes the [method@Gtk.FileLauncher.launch] call and
returns the result.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileLauncher`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] or [enum@Gio.Error] error
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if an application was launched,
or `FALSE` and @error is set

</return>
</function>

<function name="gtk_file_launcher_new">
<description>
Creates a new `GtkFileLauncher` object.

Since: 4.10

</description>
<parameters>
<parameter name="file">
<parameter_description> the file to open
</parameter_description>
</parameter>
</parameters>
<return> the new `GtkFileLauncher`

</return>
</function>

<function name="gtk_file_launcher_open_containing_folder">
<description>
Launch a file manager to show the file in its parent directory.

This is only supported native files. It will fail if @file
is e.g. a http:// uri.

The @callback will be called when the operation is completed.
It should call [method@Gtk.FileLauncher.open_containing_folder_finish]
to obtain the result.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileLauncher`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_launcher_open_containing_folder_finish">
<description>
Finishes the [method@Gtk.FileLauncher.open_containing_folder]
call and returns the result.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileLauncher`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] or [enum@Gio.Error] error
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if an application was launched,
or `FALSE` and @error is set

</return>
</function>

<function name="gtk_file_launcher_set_always_ask">
<description>
Sets whether to awlays ask the user to choose an app for opening the file.
If `FALSE`, the file might be opened with a default app or the previous choice.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileLauncher`
</parameter_description>
</parameter>
<parameter name="always_ask">
<parameter_description> a `gboolean`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_file_launcher_set_file">
<description>
Sets the file that will be opened.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFileLauncher`
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description> a `GFile`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_filter_changed">
<description>
Notifies all users of the filter that it has changed.

This emits the [signal@Gtk.Filter::changed] signal. Users
of the filter should then check items again via
[method@Gtk.Filter.match].

Depending on the @change parameter, not all items need to
be changed, but only some. Refer to the [enum@Gtk.FilterChange]
documentation for details.

This function is intended for implementors of `GtkFilter`
subclasses and should not be called from other functions.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFilter`
</parameter_description>
</parameter>
<parameter name="change">
<parameter_description> How the filter changed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_filter_get_strictness">
<description>
Gets the known strictness of @filters.

If the strictness is not known, %GTK_FILTER_MATCH_SOME is returned.

This value may change after emission of the [signal@Gtk.Filter::changed]
signal.

This function is meant purely for optimization purposes, filters can
choose to omit implementing it, but `GtkFilterListModel` uses it.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFilter`
</parameter_description>
</parameter>
</parameters>
<return> the strictness of @self
</return>
</function>

<function name="gtk_filter_list_model_get_filter">
<description>
Gets the `GtkFilter` currently set on @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFilterListModel`
</parameter_description>
</parameter>
</parameters>
<return> The filter currently in use
</return>
</function>

<function name="gtk_filter_list_model_get_incremental">
<description>
Returns whether incremental filtering is enabled.

See [method@Gtk.FilterListModel.set_incremental].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFilterListModel`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if incremental filtering is enabled
</return>
</function>

<function name="gtk_filter_list_model_get_model">
<description>
Gets the model currently filtered or %NULL if none.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFilterListModel`
</parameter_description>
</parameter>
</parameters>
<return> The model that gets filtered
</return>
</function>

<function name="gtk_filter_list_model_get_pending">
<description>
Returns the number of items that have not been filtered yet.

You can use this value to check if @self is busy filtering by
comparing the return value to 0 or you can compute the percentage
of the filter remaining by dividing the return value by the total
number of items in the underlying model:

```c
pending = gtk_filter_list_model_get_pending (self);
model = gtk_filter_list_model_get_model (self);
percentage = pending / (double) g_list_model_get_n_items (model);
```

If no filter operation is ongoing - in particular when
[property@Gtk.FilterListModel:incremental] is %FALSE - this
function returns 0.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFilterListModel`
</parameter_description>
</parameter>
</parameters>
<return> The number of items not yet filtered
</return>
</function>

<function name="gtk_filter_list_model_new">
<description>
Creates a new `GtkFilterListModel` that will filter @model using the given
@filter.


</description>
<parameters>
<parameter name="model">
<parameter_description> the model to sort
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> filter
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkFilterListModel`
</return>
</function>

<function name="gtk_filter_list_model_set_filter">
<description>
Sets the filter used to filter items.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFilterListModel`
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> filter to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_filter_list_model_set_incremental">
<description>
Sets the filter model to do an incremental sort.

When incremental filtering is enabled, the `GtkFilterListModel` will not
run filters immediately, but will instead queue an idle handler that
incrementally filters the items and adds them to the list. This of course
means that items are not instantly added to the list, but only appear
incrementally.

When your filter blocks the UI while filtering, you might consider
turning this on. Depending on your model and filters, this may become
interesting around 10,000 to 100,000 items.

By default, incremental filtering is disabled.

See [method@Gtk.FilterListModel.get_pending] for progress information
about an ongoing incremental filtering operation.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFilterListModel`
</parameter_description>
</parameter>
<parameter name="incremental">
<parameter_description> %TRUE to enable incremental filtering
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_filter_list_model_set_model">
<description>
Sets the model to be filtered.

Note that GTK makes no effort to ensure that @model conforms to
the item type of @self. It assumes that the caller knows what they
are doing and have set up an appropriate filter to ensure that item
types match.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFilterListModel`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> The model to be filtered
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_filter_match">
<description>
Checks if the given @item is matched by the filter or not.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFilter`
</parameter_description>
</parameter>
<parameter name="item">
<parameter_description> The item to check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the filter matches the item and a filter model should
keep it, %FALSE if not.
</return>
</function>

<function name="gtk_fixed_get_child_position">
<description>
Retrieves the translation transformation of the
given child `GtkWidget` in the `GtkFixed`.

See also: [method@Gtk.Fixed.get_child_transform].

</description>
<parameters>
<parameter name="fixed">
<parameter_description> a `GtkFixed`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> a child of @fixed
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the horizontal position of the @widget
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the vertical position of the @widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_fixed_get_child_transform">
<description>
Retrieves the transformation for @widget set using
gtk_fixed_set_child_transform().


</description>
<parameters>
<parameter name="fixed">
<parameter_description> a `GtkFixed`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> a `GtkWidget`, child of @fixed
</parameter_description>
</parameter>
</parameters>
<return> a `GskTransform`
</return>
</function>

<function name="gtk_fixed_layout_child_get_transform">
<description>
Retrieves the transformation of the child.


</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkFixedLayoutChild`
</parameter_description>
</parameter>
</parameters>
<return> a `GskTransform`
</return>
</function>

<function name="gtk_fixed_layout_child_set_transform">
<description>
Sets the transformation of the child of a `GtkFixedLayout`.

</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkFixedLayoutChild`
</parameter_description>
</parameter>
<parameter name="transform">
<parameter_description> a `GskTransform`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_fixed_layout_new">
<description>
Creates a new `GtkFixedLayout`.


</description>
<parameters>
</parameters>
<return> the newly created `GtkFixedLayout`
</return>
</function>

<function name="gtk_fixed_move">
<description>
Sets a translation transformation to the given @x and @y
coordinates to the child @widget of the `GtkFixed`.

</description>
<parameters>
<parameter name="fixed">
<parameter_description> a `GtkFixed`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the child widget
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the horizontal position to move the widget to
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the vertical position to move the widget to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_fixed_new">
<description>
Creates a new `GtkFixed`.


</description>
<parameters>
</parameters>
<return> a new `GtkFixed`.
</return>
</function>

<function name="gtk_fixed_put">
<description>
Adds a widget to a `GtkFixed` at the given position.

</description>
<parameters>
<parameter name="fixed">
<parameter_description> a `GtkFixed`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the widget to add
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the horizontal position to place the widget at
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the vertical position to place the widget at
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_fixed_remove">
<description>
Removes a child from @fixed.

</description>
<parameters>
<parameter name="fixed">
<parameter_description> a `GtkFixed`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the child widget to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_fixed_set_child_transform">
<description>
Sets the transformation for @widget.

This is a convenience function that retrieves the
[class@Gtk.FixedLayoutChild] instance associated to
@widget and calls [method@Gtk.FixedLayoutChild.set_transform].

</description>
<parameters>
<parameter name="fixed">
<parameter_description> a `GtkFixed`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> a `GtkWidget`, child of @fixed
</parameter_description>
</parameter>
<parameter name="transform">
<parameter_description> the transformation assigned to @widget
to reset @widget's transform
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flatten_list_model_get_model">
<description>
Gets the model set via gtk_flatten_list_model_set_model().


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFlattenListModel`
</parameter_description>
</parameter>
</parameters>
<return> The model flattened by @self
</return>
</function>

<function name="gtk_flatten_list_model_get_model_for_item">
<description>
Returns the model containing the item at the given position.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFlattenListModel`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> a position
</parameter_description>
</parameter>
</parameters>
<return> the model containing the item at @position
</return>
</function>

<function name="gtk_flatten_list_model_new">
<description>
Creates a new `GtkFlattenListModel` that flattens @list.


</description>
<parameters>
<parameter name="model">
<parameter_description> the model to be flattened
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkFlattenListModel`
</return>
</function>

<function name="gtk_flatten_list_model_set_model">
<description>
Sets a new model to be flattened.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFlattenListModel`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> the new model
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_append">
<description>
Adds @child to the end of @self.

If a sort function is set, the widget will
actually be inserted at the calculated position.

See also: [method@Gtk.FlowBox.insert].

Since: 4.6

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFlowBox
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_bind_model">
<description>
Binds @model to @box.

If @box was already bound to a model, that previous binding is
destroyed.

The contents of @box are cleared and then filled with widgets that
represent items from @model. @box is updated whenever @model changes.
If @model is %NULL, @box is left empty.

It is undefined to add or remove widgets directly (for example, with
[method@Gtk.FlowBox.insert]) while @box is bound to a model.

Note that using a model is incompatible with the filtering and sorting
functionality in `GtkFlowBox`. When using a model, filtering and sorting
should be implemented by the model.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> the `GListModel` to be bound to @box
</parameter_description>
</parameter>
<parameter name="create_widget_func">
<parameter_description> a function that creates widgets for items
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @create_widget_func
</parameter_description>
</parameter>
<parameter name="user_data_free_func">
<parameter_description> function for freeing @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_child_changed">
<description>
Marks @child as changed, causing any state that depends on this
to be updated.

This affects sorting and filtering.

Note that calls to this method must be in sync with the data
used for the sorting and filtering functions. For instance, if
the list is mirroring some external data set, and *two* children
changed in the external data set when you call
gtk_flow_box_child_changed() on the first child, the sort function
must only read the new data for the first of the two changed
children, otherwise the resorting of the children will be wrong.

This generally means that if you don’t fully control the data
model, you have to duplicate the data that affects the sorting
and filtering functions into the widgets themselves.

Another alternative is to call [method@Gtk.FlowBox.invalidate_sort]
on any model change, but that is more expensive.

</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkFlowBoxChild`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_child_get_child">
<description>
Gets the child widget of @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFlowBoxChild`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @self
</return>
</function>

<function name="gtk_flow_box_child_get_index">
<description>
Gets the current index of the @child in its `GtkFlowBox` container.


</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkFlowBoxChild`
</parameter_description>
</parameter>
</parameters>
<return> the index of the @child, or -1 if the @child is not
in a flow box
</return>
</function>

<function name="gtk_flow_box_child_is_selected">
<description>
Returns whether the @child is currently selected in its
`GtkFlowBox` container.


</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkFlowBoxChild`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @child is selected
</return>
</function>

<function name="gtk_flow_box_child_new">
<description>
Creates a new `GtkFlowBoxChild`.

This should only be used as a child of a `GtkFlowBox`.


</description>
<parameters>
</parameters>
<return> a new `GtkFlowBoxChild`
</return>
</function>

<function name="gtk_flow_box_child_set_child">
<description>
Sets the child widget of @self.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFlowBoxChild`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_get_activate_on_single_click">
<description>
Returns whether children activate on single clicks.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if children are activated on single click,
%FALSE otherwise
</return>
</function>

<function name="gtk_flow_box_get_child_at_index">
<description>
Gets the nth child in the @box.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="idx">
<parameter_description> the position of the child
</parameter_description>
</parameter>
</parameters>
<return> the child widget, which will
always be a `GtkFlowBoxChild` or %NULL in case no child widget
with the given index exists.
</return>
</function>

<function name="gtk_flow_box_get_child_at_pos">
<description>
Gets the child in the (@x, @y) position.

Both @x and @y are assumed to be relative to the origin of @box.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate of the child
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate of the child
</parameter_description>
</parameter>
</parameters>
<return> the child widget, which will
always be a `GtkFlowBoxChild` or %NULL in case no child widget
exists for the given x and y coordinates.
</return>
</function>

<function name="gtk_flow_box_get_column_spacing">
<description>
Gets the horizontal spacing.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
</parameters>
<return> the horizontal spacing
</return>
</function>

<function name="gtk_flow_box_get_homogeneous">
<description>
Returns whether the box is homogeneous.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the box is homogeneous.
</return>
</function>

<function name="gtk_flow_box_get_max_children_per_line">
<description>
Gets the maximum number of children per line.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
</parameters>
<return> the maximum number of children per line
</return>
</function>

<function name="gtk_flow_box_get_min_children_per_line">
<description>
Gets the minimum number of children per line.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
</parameters>
<return> the minimum number of children per line
</return>
</function>

<function name="gtk_flow_box_get_row_spacing">
<description>
Gets the vertical spacing.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
</parameters>
<return> the vertical spacing
</return>
</function>

<function name="gtk_flow_box_get_selected_children">
<description>
Creates a list of all selected children.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
</parameters>
<return>
A `GList` containing the `GtkWidget` for each selected child.
Free with g_list_free() when done.
</return>
</function>

<function name="gtk_flow_box_get_selection_mode">
<description>
Gets the selection mode of @box.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkSelectionMode`
</return>
</function>

<function name="gtk_flow_box_insert">
<description>
Inserts the @widget into @box at @position.

If a sort function is set, the widget will actually be inserted
at the calculated position.

If @position is -1, or larger than the total number of children
in the @box, then the @widget will be appended to the end.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` to add
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position to insert @child in
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_invalidate_filter">
<description>
Updates the filtering for all children.

Call this function when the result of the filter
function on the @box is changed due to an external
factor. For instance, this would be used if the
filter function just looked for a specific search
term, and the entry with the string has changed.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_invalidate_sort">
<description>
Updates the sorting for all children.

Call this when the result of the sort function on
@box is changed due to an external factor.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_new">
<description>
Creates a `GtkFlowBox`.


</description>
<parameters>
</parameters>
<return> a new `GtkFlowBox`
</return>
</function>

<function name="gtk_flow_box_prepend">
<description>
Adds @child to the start of @self.

If a sort function is set, the widget will
actually be inserted at the calculated position.

See also: [method@Gtk.FlowBox.insert].

Since: 4.6

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFlowBox
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_remove">
<description>
Removes a child from @box.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the child widget to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_remove_all">
<description>
Removes all children from @box.

This function does nothing if @box is backed by a model.

Since: 4.12

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_select_all">
<description>
Select all children of @box, if the selection
mode allows it.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_select_child">
<description>
Selects a single child of @box, if the selection
mode allows it.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child of @box
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_selected_foreach">
<description>
Calls a function for each selected child.

Note that the selection cannot be modified from within
this function.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the function to call for each selected child
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> user data to pass to the function
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_set_activate_on_single_click">
<description>
If @single is %TRUE, children will be activated when you click
on them, otherwise you need to double-click.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="single">
<parameter_description> %TRUE to emit child-activated on a single click
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_set_column_spacing">
<description>
Sets the horizontal space to add between children.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="spacing">
<parameter_description> the spacing to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_set_filter_func">
<description>
By setting a filter function on the @box one can decide dynamically
which of the children to show.

For instance, to implement a search function that only shows the
children matching the search terms.

The @filter_func will be called for each child after the call, and
it will continue to be called each time a child changes (via
[method@Gtk.FlowBoxChild.changed]) or when
[method@Gtk.FlowBox.invalidate_filter] is called.

Note that using a filter function is incompatible with using a model
(see [method@Gtk.FlowBox.bind_model]).

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="filter_func">
<parameter_description> callback that
lets you filter which children to show
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @filter_func
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> destroy notifier for @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_set_hadjustment">
<description>
Hooks up an adjustment to focus handling in @box.

The adjustment is also used for autoscrolling during
rubberband selection. See [method@Gtk.ScrolledWindow.get_hadjustment]
for a typical way of obtaining the adjustment, and
[method@Gtk.FlowBox.set_vadjustment] for setting the vertical
adjustment.

The adjustments have to be in pixel units and in the same
coordinate system as the allocation for immediate children
of the box.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="adjustment">
<parameter_description> an adjustment which should be adjusted
when the focus is moved among the descendents of @container
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_set_homogeneous">
<description>
Sets whether or not all children of @box are given
equal space in the box.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="homogeneous">
<parameter_description> %TRUE to create equal allotments,
%FALSE for variable allotments
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_set_max_children_per_line">
<description>
Sets the maximum number of children to request and
allocate space for in @box’s orientation.

Setting the maximum number of children per line
limits the overall natural size request to be no more
than @n_children children long in the given orientation.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="n_children">
<parameter_description> the maximum number of children per line
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_set_min_children_per_line">
<description>
Sets the minimum number of children to line up
in @box’s orientation before flowing.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="n_children">
<parameter_description> the minimum number of children per line
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_set_row_spacing">
<description>
Sets the vertical space to add between children.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="spacing">
<parameter_description> the spacing to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_set_selection_mode">
<description>
Sets how selection works in @box.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the new selection mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_set_sort_func">
<description>
By setting a sort function on the @box, one can dynamically
reorder the children of the box, based on the contents of
the children.

The @sort_func will be called for each child after the call,
and will continue to be called each time a child changes (via
[method@Gtk.FlowBoxChild.changed]) and when
[method@Gtk.FlowBox.invalidate_sort] is called.

Note that using a sort function is incompatible with using a model
(see [method@Gtk.FlowBox.bind_model]).

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="sort_func">
<parameter_description> the sort function
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @sort_func
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> destroy notifier for @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_set_vadjustment">
<description>
Hooks up an adjustment to focus handling in @box.

The adjustment is also used for autoscrolling during
rubberband selection. See [method@Gtk.ScrolledWindow.get_vadjustment]
for a typical way of obtaining the adjustment, and
[method@Gtk.FlowBox.set_hadjustment] for setting the horizontal
adjustment.

The adjustments have to be in pixel units and in the same
coordinate system as the allocation for immediate children
of the box.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="adjustment">
<parameter_description> an adjustment which should be adjusted
when the focus is moved among the descendents of @container
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_unselect_all">
<description>
Unselect all children of @box, if the selection
mode allows it.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_flow_box_unselect_child">
<description>
Unselects a single child of @box, if the selection
mode allows it.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkFlowBox`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child of @box
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_button_get_modal">
<description>
Gets whether the dialog is modal.

Deprecated: 4.10: Use [class@Gtk.FontDialogButton] instead

</description>
<parameters>
<parameter name="font_button">
<parameter_description> a `GtkFontButton`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the dialog is modal

</return>
</function>

<function name="gtk_font_button_get_title">
<description>
Retrieves the title of the font chooser dialog.

Deprecated: 4.10: Use [class@Gtk.FontDialogButton] instead

</description>
<parameters>
<parameter name="font_button">
<parameter_description> a `GtkFontButton`
</parameter_description>
</parameter>
</parameters>
<return> an internal copy of the title string
which must not be freed.

</return>
</function>

<function name="gtk_font_button_get_use_font">
<description>
Returns whether the selected font is used in the label.

Deprecated: 4.10: Use [class@Gtk.FontDialogButton] instead

</description>
<parameters>
<parameter name="font_button">
<parameter_description> a `GtkFontButton`
</parameter_description>
</parameter>
</parameters>
<return> whether the selected font is used in the label.

</return>
</function>

<function name="gtk_font_button_get_use_size">
<description>
Returns whether the selected size is used in the label.

Deprecated: 4.10: Use [class@Gtk.FontDialogButton] instead

</description>
<parameters>
<parameter name="font_button">
<parameter_description> a `GtkFontButton`
</parameter_description>
</parameter>
</parameters>
<return> whether the selected size is used in the label.

</return>
</function>

<function name="gtk_font_button_new">
<description>
Creates a new font picker widget.

Deprecated: 4.10: Use [class@Gtk.FontDialogButton] instead

</description>
<parameters>
</parameters>
<return> a new font picker widget.

</return>
</function>

<function name="gtk_font_button_new_with_font">
<description>
Creates a new font picker widget showing the given font.

Deprecated: 4.10: Use [class@Gtk.FontDialogButton] instead

</description>
<parameters>
<parameter name="fontname">
<parameter_description> Name of font to display in font chooser dialog
</parameter_description>
</parameter>
</parameters>
<return> a new font picker widget.

</return>
</function>

<function name="gtk_font_button_set_modal">
<description>
Sets whether the dialog should be modal.

Deprecated: 4.10: Use [class@Gtk.FontDialogButton] instead

</description>
<parameters>
<parameter name="font_button">
<parameter_description> a `GtkFontButton`
</parameter_description>
</parameter>
<parameter name="modal">
<parameter_description> %TRUE to make the dialog modal
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_button_set_title">
<description>
Sets the title for the font chooser dialog.

Deprecated: 4.10: Use [class@Gtk.FontDialogButton] instead

</description>
<parameters>
<parameter name="font_button">
<parameter_description> a `GtkFontButton`
</parameter_description>
</parameter>
<parameter name="title">
<parameter_description> a string containing the font chooser dialog title
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_button_set_use_font">
<description>
If @use_font is %TRUE, the font name will be written
using the selected font.

Deprecated: 4.10: Use [class@Gtk.FontDialogButton] instead

</description>
<parameters>
<parameter name="font_button">
<parameter_description> a `GtkFontButton`
</parameter_description>
</parameter>
<parameter name="use_font">
<parameter_description> If %TRUE, font name will be written using font chosen.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_button_set_use_size">
<description>
If @use_size is %TRUE, the font name will be written using
the selected size.

Deprecated: 4.10: Use [class@Gtk.FontDialogButton] instead

</description>
<parameters>
<parameter name="font_button">
<parameter_description> a `GtkFontButton`
</parameter_description>
</parameter>
<parameter name="use_size">
<parameter_description> If %TRUE, font name will be written using the
selected size.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_chooser_dialog_new">
<description>
Creates a new `GtkFontChooserDialog`.

Deprecated: 4.10: Use [class@Gtk.FontDialog] instead

</description>
<parameters>
<parameter name="title">
<parameter_description> Title of the dialog
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> Transient parent of the dialog
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkFontChooserDialog`

</return>
</function>

<function name="gtk_font_chooser_get_font">
<description>
Gets the currently-selected font name.

Note that this can be a different string than what you set with
[method@Gtk.FontChooser.set_font], as the font chooser widget may
normalize font names and thus return a string with a different
structure. For example, “Helvetica Italic Bold 12” could be
normalized to “Helvetica Bold Italic 12”.

Use [method@Pango.FontDescription.equal] if you want to compare two
font descriptions.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
</parameters>
<return> A string with the name
of the current font

</return>
</function>

<function name="gtk_font_chooser_get_font_desc">
<description>
Gets the currently-selected font.

Note that this can be a different string than what you set with
[method@Gtk.FontChooser.set_font], as the font chooser widget may
normalize font names and thus return a string with a different
structure. For example, “Helvetica Italic Bold 12” could be
normalized to “Helvetica Bold Italic 12”.

Use [method@Pango.FontDescription.equal] if you want to compare two
font descriptions.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
</parameters>
<return> A `PangoFontDescription` for the
current font

</return>
</function>

<function name="gtk_font_chooser_get_font_face">
<description>
Gets the `PangoFontFace` representing the selected font group
details (i.e. family, slant, weight, width, etc).

If the selected font is not installed, returns %NULL.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
</parameters>
<return> A `PangoFontFace` representing the
selected font group details

</return>
</function>

<function name="gtk_font_chooser_get_font_family">
<description>
Gets the `PangoFontFamily` representing the selected font family.

Font families are a collection of font faces.

If the selected font is not installed, returns %NULL.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
</parameters>
<return> A `PangoFontFamily` representing the
selected font family

</return>
</function>

<function name="gtk_font_chooser_get_font_features">
<description>
Gets the currently-selected font features.

The format of the returned string is compatible with the
[CSS font-feature-settings property](https://www.w3.org/TR/css-fonts-4/#font-rend-desc).
It can be passed to [func@Pango.AttrFontFeatures.new].

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
</parameters>
<return> the currently selected font features

</return>
</function>

<function name="gtk_font_chooser_get_font_map">
<description>
Gets the custom font map of this font chooser widget,
or %NULL if it does not have one.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
</parameters>
<return> a `PangoFontMap`

</return>
</function>

<function name="gtk_font_chooser_get_font_size">
<description>
The selected font size.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
</parameters>
<return> A n integer representing the selected font size,
or -1 if no font size is selected.

</return>
</function>

<function name="gtk_font_chooser_get_language">
<description>
Gets the language that is used for font features.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
</parameters>
<return> the currently selected language

</return>
</function>

<function name="gtk_font_chooser_get_level">
<description>
Returns the current level of granularity for selecting fonts.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
</parameters>
<return> the current granularity level

</return>
</function>

<function name="gtk_font_chooser_get_preview_text">
<description>
Gets the text displayed in the preview area.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
</parameters>
<return> the text displayed in the preview area

</return>
</function>

<function name="gtk_font_chooser_get_show_preview_entry">
<description>
Returns whether the preview entry is shown or not.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the preview entry is shown or %FALSE if it is hidden.

</return>
</function>

<function name="gtk_font_chooser_set_filter_func">
<description>
Adds a filter function that decides which fonts to display
in the font chooser.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> a `GtkFontFilterFunc`
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @filter
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> function to call to free @data when it is no longer needed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_chooser_set_font">
<description>
Sets the currently-selected font.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
<parameter name="fontname">
<parameter_description> a font name like “Helvetica 12” or “Times Bold 18”
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_chooser_set_font_desc">
<description>
Sets the currently-selected font from @font_desc.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
<parameter name="font_desc">
<parameter_description> a `PangoFontDescription`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_chooser_set_font_map">
<description>
Sets a custom font map to use for this font chooser widget.

A custom font map can be used to present application-specific
fonts instead of or in addition to the normal system fonts.

```c
FcConfig *config;
PangoFontMap *fontmap;

config = FcInitLoadConfigAndFonts ();
FcConfigAppFontAddFile (config, my_app_font_file);

fontmap = pango_cairo_font_map_new_for_font_type (CAIRO_FONT_TYPE_FT);
pango_fc_font_map_set_config (PANGO_FC_FONT_MAP (fontmap), config);

gtk_font_chooser_set_font_map (font_chooser, fontmap);
```

Note that other GTK widgets will only be able to use the
application-specific font if it is present in the font map they use:

```c
context = gtk_widget_get_pango_context (label);
pango_context_set_font_map (context, fontmap);
```

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
<parameter name="fontmap">
<parameter_description> a `PangoFontMap`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_chooser_set_language">
<description>
Sets the language to use for font features.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
<parameter name="language">
<parameter_description> a language
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_chooser_set_level">
<description>
Sets the desired level of granularity for selecting fonts.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
<parameter name="level">
<parameter_description> the desired level of granularity
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_chooser_set_preview_text">
<description>
Sets the text displayed in the preview area.

The @text is used to show how the selected font looks.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> the text to display in the preview area
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_chooser_set_show_preview_entry">
<description>
Shows or hides the editable preview entry.

Deprecated: 4.10: Use [class@Gtk.FontDialog] and [class@Gtk.FontDialogButton]
instead

</description>
<parameters>
<parameter name="fontchooser">
<parameter_description> a `GtkFontChooser`
</parameter_description>
</parameter>
<parameter name="show_preview_entry">
<parameter_description> whether to show the editable preview entry or not
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_chooser_widget_new">
<description>
Creates a new `GtkFontChooserWidget`.

Deprecated: 4.10: Direct use of `GtkFontChooserWidget` is deprecated.

</description>
<parameters>
</parameters>
<return> a new `GtkFontChooserWidget`

</return>
</function>

<function name="gtk_font_dialog_button_get_dialog">
<description>
Returns the `GtkFontDialog` of @self.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialogButton`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkFontDialog`

</return>
</function>

<function name="gtk_font_dialog_button_get_font_desc">
<description>
Returns the font of the button.

This function is what should be used to obtain
the font that was chosen by the user. To get
informed about changes, listen to &quot;notify::font-desc&quot;.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialogButton`
</parameter_description>
</parameter>
</parameters>
<return> the font

</return>
</function>

<function name="gtk_font_dialog_button_get_font_features">
<description>
Returns the font features of the button.

This function is what should be used to obtain the font features
that were chosen by the user. To get informed about changes, listen
to &quot;notify::font-features&quot;.

Note that the button will only let users choose font features
if [property@Gtk.FontDialogButton:level] is set to
`GTK_FONT_LEVEL_FEATURES`.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialogButton`
</parameter_description>
</parameter>
</parameters>
<return> the font features

</return>
</function>

<function name="gtk_font_dialog_button_get_language">
<description>
Returns the language that is used for font features.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialogButton`
</parameter_description>
</parameter>
</parameters>
<return> the language

</return>
</function>

<function name="gtk_font_dialog_button_get_level">
<description>
Returns the level of detail at which this dialog
lets the user select fonts.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialogButton
</parameter_description>
</parameter>
</parameters>
<return> the level of detail

</return>
</function>

<function name="gtk_font_dialog_button_get_use_font">
<description>
Returns whether the selected font is used in the label.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialogButton`
</parameter_description>
</parameter>
</parameters>
<return> whether the selected font is used in the label

</return>
</function>

<function name="gtk_font_dialog_button_get_use_size">
<description>
Returns whether the selected font size is used in the label.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialogButton`
</parameter_description>
</parameter>
</parameters>
<return> whether the selected font size is used in the label

</return>
</function>

<function name="gtk_font_dialog_button_new">
<description>
Creates a new `GtkFontDialogButton` with the
given `GtkFontDialog`.

You can pass `NULL` to this function and set a `GtkFontDialog`
later. The button will be insensitive until that happens.

Since: 4.10

</description>
<parameters>
<parameter name="dialog">
<parameter_description> the `GtkFontDialog` to use
</parameter_description>
</parameter>
</parameters>
<return> the new `GtkFontDialogButton`

</return>
</function>

<function name="gtk_font_dialog_button_set_dialog">
<description>
Sets a `GtkFontDialog` object to use for
creating the font chooser dialog that is
presented when the user clicks the button.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialogButton`
</parameter_description>
</parameter>
<parameter name="dialog">
<parameter_description> the new `GtkFontDialog`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_dialog_button_set_font_desc">
<description>
Sets the font of the button.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialogButton`
</parameter_description>
</parameter>
<parameter name="font_desc">
<parameter_description> the new font
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_dialog_button_set_font_features">
<description>
Sets the font features of the button.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialogButton`
</parameter_description>
</parameter>
<parameter name="font_features">
<parameter_description> the font features
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_dialog_button_set_language">
<description>
Sets the language to use for font features.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialogButton`
</parameter_description>
</parameter>
<parameter name="language">
<parameter_description> the new language
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_dialog_button_set_level">
<description>
Sets the level of detail at which this dialog
lets the user select fonts.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialogButton`
</parameter_description>
</parameter>
<parameter name="level">
<parameter_description> the level of detail
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_dialog_button_set_use_font">
<description>
If @use_font is `TRUE`, the font name will be written
using the selected font.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialogButton`
</parameter_description>
</parameter>
<parameter name="use_font">
<parameter_description> If `TRUE`, font name will be written using
the chosen font
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_dialog_button_set_use_size">
<description>
If @use_size is `TRUE`, the font name will be written
using the selected font size.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialogButton`
</parameter_description>
</parameter>
<parameter name="use_size">
<parameter_description> If `TRUE`, font name will be written using
the chosen font size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_dialog_choose_face">
<description>
This function initiates a font selection operation by
presenting a dialog to the user for selecting a font face
(i.e. a font family and style, but not a specific font size).

The @callback will be called when the dialog is dismissed.
It should call [method@Gtk.FontDialog.choose_face_finish]
to obtain the result.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="initial_value">
<parameter_description> the initial value
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_dialog_choose_face_finish">
<description>
Finishes the [method@Gtk.FontDialog.choose_face] call
and returns the resulting font face.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] error
</parameter_description>
</parameter>
</parameters>
<return> the selected font face

</return>
</function>

<function name="gtk_font_dialog_choose_family">
<description>
This function initiates a font selection operation by
presenting a dialog to the user for selecting a font family.

The @callback will be called when the dialog is dismissed.
It should call [method@Gtk.FontDialog.choose_family_finish]
to obtain the result.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="initial_value">
<parameter_description> the initial value
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_dialog_choose_family_finish">
<description>
Finishes the [method@Gtk.FontDialog.choose_family] call
and returns the resulting family.

This function never returns an error. If the operation is
not finished successfully, the value passed as @initial_value
to [method@Gtk.FontDialog.choose_family] is returned.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] error
</parameter_description>
</parameter>
</parameters>
<return> the selected family

</return>
</function>

<function name="gtk_font_dialog_choose_font">
<description>
This function initiates a font selection operation by
presenting a dialog to the user for selecting a font.

The @callback will be called when the dialog is dismissed.
It should call [method@Gtk.FontDialog.choose_font_finish]
to obtain the result.

If you want to let the user select font features as well,
use [method@Gtk.FontDialog.choose_font_and_features] instead.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="initial_value">
<parameter_description> the font to select initially
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_dialog_choose_font_and_features">
<description>
This function initiates a font selection operation by
presenting a dialog to the user for selecting a font and
font features.

Font features affect how the font is rendered, for example
enabling glyph variants or ligatures.

The @callback will be called when the dialog is dismissed.
It should call [method@Gtk.FontDialog.choose_font_and_features_finish]
to obtain the result.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="initial_value">
<parameter_description> the font to select initially
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_dialog_choose_font_and_features_finish">
<description>
Finishes the [method@Gtk.FontDialog.choose_font_and_features]
call and returns the resulting font description and font features.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="font_desc">
<parameter_description> return location for font description
</parameter_description>
</parameter>
<parameter name="font_features">
<parameter_description> return location for font features
</parameter_description>
</parameter>
<parameter name="language">
<parameter_description> return location for the language
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] error
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if a font was selected. Otherwise `FALSE` is returned
and @error is set

</return>
</function>

<function name="gtk_font_dialog_choose_font_finish">
<description>
Finishes the [method@Gtk.FontDialog.choose_font] call
and returns the resulting font description.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] error
</parameter_description>
</parameter>
</parameters>
<return> the selected font

</return>
</function>

<function name="gtk_font_dialog_get_filter">
<description>
Returns the filter that decides which fonts to display
in the font chooser dialog.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
</parameters>
<return> the filter

</return>
</function>

<function name="gtk_font_dialog_get_font_map">
<description>
Returns the fontmap from which fonts are selected,
or `NULL` for the default fontmap.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
</parameters>
<return> the fontmap

</return>
</function>

<function name="gtk_font_dialog_get_language">
<description>
Returns the language for which font features are applied.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
</parameters>
<return> the language for font features

</return>
</function>

<function name="gtk_font_dialog_get_modal">
<description>
Returns whether the font chooser dialog
blocks interaction with the parent window
while it is presented.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if the font chooser dialog is modal

</return>
</function>

<function name="gtk_font_dialog_get_title">
<description>
Returns the title that will be shown on the
font chooser dialog.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
</parameters>
<return> the title

</return>
</function>

<function name="gtk_font_dialog_new">
<description>
Creates a new `GtkFontDialog` object.

Since: 4.10

</description>
<parameters>
</parameters>
<return> the new `GtkFontDialog`

</return>
</function>

<function name="gtk_font_dialog_set_filter">
<description>
Adds a filter that decides which fonts to display
in the font chooser dialog.

The `GtkFilter` must be able to handle both `PangoFontFamily`
and `PangoFontFace` objects.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> a `GtkFilter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_dialog_set_font_map">
<description>
Sets the fontmap from which fonts are selected.

If @fontmap is `NULL`, the default fontmap is used.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
<parameter name="fontmap">
<parameter_description> the fontmap
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_dialog_set_language">
<description>
Sets the language for which font features are applied.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
<parameter name="language">
<parameter_description> the language for font features
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_dialog_set_modal">
<description>
Sets whether the font chooser dialog
blocks interaction with the parent window
while it is presented.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
<parameter name="modal">
<parameter_description> the new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_font_dialog_set_title">
<description>
Sets the title that will be shown on the
font chooser dialog.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkFontDialog`
</parameter_description>
</parameter>
<parameter name="title">
<parameter_description> the new title
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_frame_get_child">
<description>
Gets the child widget of @frame.


</description>
<parameters>
<parameter name="frame">
<parameter_description> a `GtkFrame`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @frame
</return>
</function>

<function name="gtk_frame_get_label">
<description>
Returns the frame labels text.

If the frame's label widget is not a `GtkLabel`, %NULL
is returned.


</description>
<parameters>
<parameter name="frame">
<parameter_description> a `GtkFrame`
</parameter_description>
</parameter>
</parameters>
<return> the text in the label, or %NULL if there
was no label widget or the label widget was not a `GtkLabel`.
This string is owned by GTK and must not be modified or freed.
</return>
</function>

<function name="gtk_frame_get_label_align">
<description>
Retrieves the X alignment of the frame’s label.


</description>
<parameters>
<parameter name="frame">
<parameter_description> a `GtkFrame`
</parameter_description>
</parameter>
</parameters>
<return> the frames X alignment
</return>
</function>

<function name="gtk_frame_get_label_widget">
<description>
Retrieves the label widget for the frame.


</description>
<parameters>
<parameter name="frame">
<parameter_description> a `GtkFrame`
</parameter_description>
</parameter>
</parameters>
<return> the label widget
</return>
</function>

<function name="gtk_frame_new">
<description>
Creates a new `GtkFrame`, with optional label @label.

If @label is %NULL, the label is omitted.


</description>
<parameters>
<parameter name="label">
<parameter_description> the text to use as the label of the frame
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkFrame` widget
</return>
</function>

<function name="gtk_frame_set_child">
<description>
Sets the child widget of @frame.

</description>
<parameters>
<parameter name="frame">
<parameter_description> a `GtkFrame`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_frame_set_label">
<description>
Creates a new `GtkLabel` with the @label and sets it as the frame's
label widget.

</description>
<parameters>
<parameter name="frame">
<parameter_description> a `GtkFrame`
</parameter_description>
</parameter>
<parameter name="label">
<parameter_description> the text to use as the label of the frame
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_frame_set_label_align">
<description>
Sets the X alignment of the frame widget’s label.

The default value for a newly created frame is 0.0.

</description>
<parameters>
<parameter name="frame">
<parameter_description> a `GtkFrame`
</parameter_description>
</parameter>
<parameter name="xalign">
<parameter_description> The position of the label along the top edge
of the widget. A value of 0.0 represents left alignment;
1.0 represents right alignment.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_frame_set_label_widget">
<description>
Sets the label widget for the frame.

This is the widget that will appear embedded in the top edge
of the frame as a title.

</description>
<parameters>
<parameter name="frame">
<parameter_description> a `GtkFrame`
</parameter_description>
</parameter>
<parameter name="label_widget">
<parameter_description> the new label widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gesture_click_new">
<description>
Returns a newly created `GtkGesture` that recognizes
single and multiple presses.


</description>
<parameters>
</parameters>
<return> a newly created `GtkGestureClick`
</return>
</function>

<function name="gtk_gesture_drag_get_offset">
<description>
Gets the offset from the start point.

If the @gesture is active, this function returns %TRUE and
fills in @x and @y with the coordinates of the current point,
as an offset to the starting drag point.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X offset for the current point
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y offset for the current point
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the gesture is active
</return>
</function>

<function name="gtk_gesture_drag_get_start_point">
<description>
Gets the point where the drag started.

If the @gesture is active, this function returns %TRUE
and fills in @x and @y with the drag start coordinates,
in widget-relative coordinates.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X coordinate for the drag start point
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y coordinate for the drag start point
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the gesture is active
</return>
</function>

<function name="gtk_gesture_drag_new">
<description>
Returns a newly created `GtkGesture` that recognizes drags.


</description>
<parameters>
</parameters>
<return> a newly created `GtkGestureDrag`
</return>
</function>

<function name="gtk_gesture_get_bounding_box">
<description>
If there are touch sequences being currently handled by @gesture,
returns %TRUE and fills in @rect with the bounding box containing
all active touches.

Otherwise, %FALSE will be returned.

Note: This function will yield unexpected results on touchpad
gestures. Since there is no correlation between physical and
pixel distances, these will look as if constrained in an
infinitely small area, @rect width and height will thus be 0
regardless of the number of touchpoints.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
<parameter name="rect">
<parameter_description> bounding box containing all active touches.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if there are active touches, %FALSE otherwise
</return>
</function>

<function name="gtk_gesture_get_bounding_box_center">
<description>
If there are touch sequences being currently handled by @gesture,
returns %TRUE and fills in @x and @y with the center of the bounding
box containing all active touches.

Otherwise, %FALSE will be returned.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X coordinate for the bounding box center
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y coordinate for the bounding box center
</parameter_description>
</parameter>
</parameters>
<return> %FALSE if no active touches are present, %TRUE otherwise
</return>
</function>

<function name="gtk_gesture_get_device">
<description>
Returns the logical `GdkDevice` that is currently operating
on @gesture.

This returns %NULL if the gesture is not being interacted.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
</parameters>
<return> a `GdkDevice`
</return>
</function>

<function name="gtk_gesture_get_group">
<description>
Returns all gestures in the group of @gesture


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
</parameters>
<return> The list
of `GtkGesture`s, free with g_list_free()
</return>
</function>

<function name="gtk_gesture_get_last_event">
<description>
Returns the last event that was processed for @sequence.

Note that the returned pointer is only valid as long as the
@sequence is still interpreted by the @gesture. If in doubt,
you should make a copy of the event.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
<parameter name="sequence">
<parameter_description> a `GdkEventSequence`
</parameter_description>
</parameter>
</parameters>
<return> The last event from @sequence
</return>
</function>

<function name="gtk_gesture_get_last_updated_sequence">
<description>
Returns the `GdkEventSequence` that was last updated on @gesture.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
</parameters>
<return> The last updated sequence
</return>
</function>

<function name="gtk_gesture_get_point">
<description>
If @sequence is currently being interpreted by @gesture,
returns %TRUE and fills in @x and @y with the last coordinates
stored for that event sequence.

The coordinates are always relative to the widget allocation.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
<parameter name="sequence">
<parameter_description> a `GdkEventSequence`, or %NULL for pointer events
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> return location for X axis of the sequence coordinates
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> return location for Y axis of the sequence coordinates
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @sequence is currently interpreted
</return>
</function>

<function name="gtk_gesture_get_sequence_state">
<description>
Returns the @sequence state, as seen by @gesture.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
<parameter name="sequence">
<parameter_description> a `GdkEventSequence`
</parameter_description>
</parameter>
</parameters>
<return> The sequence state in @gesture
</return>
</function>

<function name="gtk_gesture_get_sequences">
<description>
Returns the list of `GdkEventSequences` currently being interpreted
by @gesture.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
</parameters>
<return> A list
of `GdkEventSequence`, the list elements are owned by GTK and must
not be freed or modified, the list itself must be deleted
through g_list_free()
</return>
</function>

<function name="gtk_gesture_group">
<description>
Adds @gesture to the same group than @group_gesture.

Gestures are by default isolated in their own groups.

Both gestures must have been added to the same widget before
they can be grouped.

When gestures are grouped, the state of `GdkEventSequences`
is kept in sync for all of those, so calling
[method@Gtk.Gesture.set_sequence_state], on one will transfer
the same value to the others.

Groups also perform an &quot;implicit grabbing&quot; of sequences, if a
`GdkEventSequence` state is set to %GTK_EVENT_SEQUENCE_CLAIMED
on one group, every other gesture group attached to the same
`GtkWidget` will switch the state for that sequence to
%GTK_EVENT_SEQUENCE_DENIED.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
<parameter name="group_gesture">
<parameter_description> `GtkGesture` to group @gesture with
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gesture_handles_sequence">
<description>
Returns %TRUE if @gesture is currently handling events
corresponding to @sequence.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
<parameter name="sequence">
<parameter_description> a `GdkEventSequence`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @gesture is handling @sequence, %FALSE otherwise
</return>
</function>

<function name="gtk_gesture_is_active">
<description>
Returns %TRUE if the gesture is currently active.

A gesture is active while there are touch sequences
interacting with it.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if gesture is active
</return>
</function>

<function name="gtk_gesture_is_grouped_with">
<description>
Returns %TRUE if both gestures pertain to the same group.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
<parameter name="other">
<parameter_description> another `GtkGesture`
</parameter_description>
</parameter>
</parameters>
<return> whether the gestures are grouped
</return>
</function>

<function name="gtk_gesture_is_recognized">
<description>
Returns %TRUE if the gesture is currently recognized.

A gesture is recognized if there are as many interacting
touch sequences as required by @gesture.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if gesture is recognized
</return>
</function>

<function name="gtk_gesture_long_press_get_delay_factor">
<description>
Returns the delay factor.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> A `GtkGestureLongPress`
</parameter_description>
</parameter>
</parameters>
<return> the delay factor
</return>
</function>

<function name="gtk_gesture_long_press_new">
<description>
Returns a newly created `GtkGesture` that recognizes long presses.


</description>
<parameters>
</parameters>
<return> a newly created `GtkGestureLongPress`.
</return>
</function>

<function name="gtk_gesture_long_press_set_delay_factor">
<description>
Applies the given delay factor.

The default long press time will be multiplied by this value.
Valid values are in the range [0.5..2.0].

</description>
<parameters>
<parameter name="gesture">
<parameter_description> A `GtkGestureLongPress`
</parameter_description>
</parameter>
<parameter name="delay_factor">
<parameter_description> The delay factor to apply
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gesture_pan_get_orientation">
<description>
Returns the orientation of the pan gestures that this @gesture expects.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> A `GtkGesturePan`
</parameter_description>
</parameter>
</parameters>
<return> the expected orientation for pan gestures
</return>
</function>

<function name="gtk_gesture_pan_new">
<description>
Returns a newly created `GtkGesture` that recognizes pan gestures.


</description>
<parameters>
<parameter name="orientation">
<parameter_description> expected orientation
</parameter_description>
</parameter>
</parameters>
<return> a newly created `GtkGesturePan`
</return>
</function>

<function name="gtk_gesture_pan_set_orientation">
<description>
Sets the orientation to be expected on pan gestures.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> A `GtkGesturePan`
</parameter_description>
</parameter>
<parameter name="orientation">
<parameter_description> expected orientation
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gesture_rotate_get_angle_delta">
<description>
Gets the angle delta in radians.

If @gesture is active, this function returns the angle difference
in radians since the gesture was first recognized. If @gesture is
not active, 0 is returned.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGestureRotate`
</parameter_description>
</parameter>
</parameters>
<return> the angle delta in radians
</return>
</function>

<function name="gtk_gesture_rotate_new">
<description>
Returns a newly created `GtkGesture` that recognizes 2-touch
rotation gestures.


</description>
<parameters>
</parameters>
<return> a newly created `GtkGestureRotate`
</return>
</function>

<function name="gtk_gesture_set_sequence_state">
<description>
Sets the state of @sequence in @gesture.

Sequences start in state %GTK_EVENT_SEQUENCE_NONE, and whenever
they change state, they can never go back to that state. Likewise,
sequences in state %GTK_EVENT_SEQUENCE_DENIED cannot turn back to
a not denied state. With these rules, the lifetime of an event
sequence is constrained to the next four:

* None
* None → Denied
* None → Claimed
* None → Claimed → Denied

Note: Due to event handling ordering, it may be unsafe to set the
state on another gesture within a [signal@Gtk.Gesture::begin] signal
handler, as the callback might be executed before the other gesture
knows about the sequence. A safe way to perform this could be:

```c
static void
first_gesture_begin_cb (GtkGesture       *first_gesture,
GdkEventSequence *sequence,
gpointer          user_data)
{
gtk_gesture_set_sequence_state (first_gesture, sequence, GTK_EVENT_SEQUENCE_CLAIMED);
gtk_gesture_set_sequence_state (second_gesture, sequence, GTK_EVENT_SEQUENCE_DENIED);
}

static void
second_gesture_begin_cb (GtkGesture       *second_gesture,
GdkEventSequence *sequence,
gpointer          user_data)
{
if (gtk_gesture_get_sequence_state (first_gesture, sequence) == GTK_EVENT_SEQUENCE_CLAIMED)
gtk_gesture_set_sequence_state (second_gesture, sequence, GTK_EVENT_SEQUENCE_DENIED);
}
```

If both gestures are in the same group, just set the state on
the gesture emitting the event, the sequence will be already
be initialized to the group's global state when the second
gesture processes the event.

Deprecated: 4.10. Use [method@Gtk.Gesture.set_state]

</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
<parameter name="sequence">
<parameter_description> a `GdkEventSequence`
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> the sequence state
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @sequence is handled by @gesture,
and the state is changed successfully

</return>
</function>

<function name="gtk_gesture_set_state">
<description>
Sets the state of all sequences that @gesture is currently
interacting with.

Sequences start in state %GTK_EVENT_SEQUENCE_NONE, and whenever
they change state, they can never go back to that state. Likewise,
sequences in state %GTK_EVENT_SEQUENCE_DENIED cannot turn back to
a not denied state. With these rules, the lifetime of an event
sequence is constrained to the next four:

* None
* None → Denied
* None → Claimed
* None → Claimed → Denied

Note: Due to event handling ordering, it may be unsafe to set the
state on another gesture within a [signal@Gtk.Gesture::begin] signal
handler, as the callback might be executed before the other gesture
knows about the sequence. A safe way to perform this could be:

```c
static void
first_gesture_begin_cb (GtkGesture       *first_gesture,
GdkEventSequence *sequence,
gpointer          user_data)
{
gtk_gesture_set_state (first_gesture, GTK_EVENT_SEQUENCE_CLAIMED);
gtk_gesture_set_state (second_gesture, GTK_EVENT_SEQUENCE_DENIED);
}

static void
second_gesture_begin_cb (GtkGesture       *second_gesture,
GdkEventSequence *sequence,
gpointer          user_data)
{
if (gtk_gesture_get_sequence_state (first_gesture, sequence) == GTK_EVENT_SEQUENCE_CLAIMED)
gtk_gesture_set_state (second_gesture, GTK_EVENT_SEQUENCE_DENIED);
}
```

If both gestures are in the same group, just set the state on
the gesture emitting the event, the sequence will be already
be initialized to the group's global state when the second
gesture processes the event.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> the sequence state
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the state of at least one sequence
was changed successfully
</return>
</function>

<function name="gtk_gesture_single_get_button">
<description>
Returns the button number @gesture listens for.

If this is 0, the gesture reacts to any button press.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGestureSingle`
</parameter_description>
</parameter>
</parameters>
<return> The button number, or 0 for any button
</return>
</function>

<function name="gtk_gesture_single_get_current_button">
<description>
Returns the button number currently interacting
with @gesture, or 0 if there is none.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGestureSingle`
</parameter_description>
</parameter>
</parameters>
<return> The current button number
</return>
</function>

<function name="gtk_gesture_single_get_current_sequence">
<description>
Returns the event sequence currently interacting with @gesture.

This is only meaningful if [method@Gtk.Gesture.is_active]
returns %TRUE.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGestureSingle`
</parameter_description>
</parameter>
</parameters>
<return> the current sequence
</return>
</function>

<function name="gtk_gesture_single_get_exclusive">
<description>
Gets whether a gesture is exclusive.

For more information, see [method@Gtk.GestureSingle.set_exclusive].


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGestureSingle`
</parameter_description>
</parameter>
</parameters>
<return> Whether the gesture is exclusive
</return>
</function>

<function name="gtk_gesture_single_get_touch_only">
<description>
Returns %TRUE if the gesture is only triggered by touch events.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGestureSingle`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the gesture only handles touch events
</return>
</function>

<function name="gtk_gesture_single_set_button">
<description>
Sets the button number @gesture listens to.

If non-0, every button press from a different button
number will be ignored. Touch events implicitly match
with button 1.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGestureSingle`
</parameter_description>
</parameter>
<parameter name="button">
<parameter_description> button number to listen to, or 0 for any button
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gesture_single_set_exclusive">
<description>
Sets whether @gesture is exclusive.

An exclusive gesture will only handle pointer and &quot;pointer emulated&quot;
touch events, so at any given time, there is only one sequence able
to interact with those.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGestureSingle`
</parameter_description>
</parameter>
<parameter name="exclusive">
<parameter_description> %TRUE to make @gesture exclusive
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gesture_single_set_touch_only">
<description>
Sets whether to handle only touch events.

If @touch_only is %TRUE, @gesture will only handle events of type
%GDK_TOUCH_BEGIN, %GDK_TOUCH_UPDATE or %GDK_TOUCH_END. If %FALSE,
mouse events will be handled too.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGestureSingle`
</parameter_description>
</parameter>
<parameter name="touch_only">
<parameter_description> whether @gesture handles only touch events
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gesture_stylus_get_axes">
<description>
Returns the current values for the requested @axes.

This function must be called from the handler of one of the
[signal@Gtk.GestureStylus::down], [signal@Gtk.GestureStylus::motion],
[signal@Gtk.GestureStylus::up] or [signal@Gtk.GestureStylus::proximity]
signals.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGestureStylus`
</parameter_description>
</parameter>
<parameter name="axes">
<parameter_description> array of requested axes, terminated with %GDK_AXIS_IGNORE
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> return location for the axis values
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if there is a current value for the axes
</return>
</function>

<function name="gtk_gesture_stylus_get_axis">
<description>
Returns the current value for the requested @axis.

This function must be called from the handler of one of the
[signal@Gtk.GestureStylus::down], [signal@Gtk.GestureStylus::motion],
[signal@Gtk.GestureStylus::up] or [signal@Gtk.GestureStylus::proximity]
signals.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGestureStylus`
</parameter_description>
</parameter>
<parameter name="axis">
<parameter_description> requested device axis
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> return location for the axis value
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if there is a current value for the axis
</return>
</function>

<function name="gtk_gesture_stylus_get_backlog">
<description>
Returns the accumulated backlog of tracking information.

By default, GTK will limit rate of input events. On stylus input
where accuracy of strokes is paramount, this function returns the
accumulated coordinate/timing state before the emission of the
current [Gtk.GestureStylus::motion] signal.

This function may only be called within a [signal@Gtk.GestureStylus::motion]
signal handler, the state given in this signal and obtainable through
[method@Gtk.GestureStylus.get_axis] express the latest (most up-to-date)
state in motion history.

The @backlog is provided in chronological order.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGestureStylus`
</parameter_description>
</parameter>
<parameter name="backlog">
<parameter_description> coordinates and times for the backlog events
</parameter_description>
</parameter>
<parameter name="n_elems">
<parameter_description> return location for the number of elements
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if there is a backlog to unfold in the current state.
</return>
</function>

<function name="gtk_gesture_stylus_get_device_tool">
<description>
Returns the `GdkDeviceTool` currently driving input through this gesture.

This function must be called from the handler of one of the
[signal@Gtk.GestureStylus::down], [signal@Gtk.GestureStylus::motion],
[signal@Gtk.GestureStylus::up] or [signal@Gtk.GestureStylus::proximity]
signals.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGestureStylus`
</parameter_description>
</parameter>
</parameters>
<return> The current stylus tool
</return>
</function>

<function name="gtk_gesture_stylus_get_stylus_only">
<description>
Checks whether the gesture is for styluses only.

Stylus-only gestures will signal events exclusively from stylus
input devices.

Since: 4.10

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the gesture
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the gesture is only for stylus events

</return>
</function>

<function name="gtk_gesture_stylus_new">
<description>
Creates a new `GtkGestureStylus`.


</description>
<parameters>
</parameters>
<return> a newly created stylus gesture
</return>
</function>

<function name="gtk_gesture_stylus_set_stylus_only">
<description>
Sets the state of stylus-only

If true, the gesture will exclusivly handle events from stylus input deivces,
otherwise it'll handle events from any pointing device.

Since: 4.10

</description>
<parameters>
<parameter name="gesture">
<parameter_description> the gesture
</parameter_description>
</parameter>
<parameter name="stylus_only">
<parameter_description> whether the gesture is used exclusivly for stylus events
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gesture_swipe_get_velocity">
<description>
Gets the current velocity.

If the gesture is recognized, this function returns %TRUE and fills
in @velocity_x and @velocity_y with the recorded velocity, as per the
last events processed.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGestureSwipe`
</parameter_description>
</parameter>
<parameter name="velocity_x">
<parameter_description> return value for the velocity in the X axis, in pixels/sec
</parameter_description>
</parameter>
<parameter name="velocity_y">
<parameter_description> return value for the velocity in the Y axis, in pixels/sec
</parameter_description>
</parameter>
</parameters>
<return> whether velocity could be calculated
</return>
</function>

<function name="gtk_gesture_swipe_new">
<description>
Returns a newly created `GtkGesture` that recognizes swipes.


</description>
<parameters>
</parameters>
<return> a newly created `GtkGestureSwipe`
</return>
</function>

<function name="gtk_gesture_ungroup">
<description>
Separates @gesture into an isolated group.

</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGesture`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gesture_zoom_get_scale_delta">
<description>
Gets the scale delta.

If @gesture is active, this function returns the zooming
difference since the gesture was recognized (hence the
starting point is considered 1:1). If @gesture is not
active, 1 is returned.


</description>
<parameters>
<parameter name="gesture">
<parameter_description> a `GtkGestureZoom`
</parameter_description>
</parameter>
</parameters>
<return> the scale delta
</return>
</function>

<function name="gtk_gesture_zoom_new">
<description>
Returns a newly created `GtkGesture` that recognizes
pinch/zoom gestures.


</description>
<parameters>
</parameters>
<return> a newly created `GtkGestureZoom`
</return>
</function>

<function name="gtk_get_binary_age">
<description>
Returns the binary age as passed to `libtool`.

If `libtool` means nothing to you, don't worry about it.


</description>
<parameters>
</parameters>
<return> the binary age of the GTK library
</return>
</function>

<function name="gtk_get_debug_flags">
<description>
Returns the GTK debug flags that are currently active.

This function is intended for GTK modules that want
to adjust their debug output based on GTK debug flags.


</description>
<parameters>
</parameters>
<return> the GTK debug flags.
</return>
</function>

<function name="gtk_get_default_language">
<description>
Returns the `PangoLanguage` for the default language
currently in effect.

Note that this can change over the life of an
application.

The default language is derived from the current
locale. It determines, for example, whether GTK uses
the right-to-left or left-to-right text direction.

This function is equivalent to [func@Pango.Language.get_default].
See that function for details.


</description>
<parameters>
</parameters>
<return> the default language
</return>
</function>

<function name="gtk_get_event_widget">
<description>
If @event is %NULL or the event was not associated with any widget,
returns %NULL, otherwise returns the widget that received the event
originally.


</description>
<parameters>
<parameter name="event">
<parameter_description> a `GdkEvent`
</parameter_description>
</parameter>
</parameters>
<return> the widget that originally
received @event
</return>
</function>

<function name="gtk_get_interface_age">
<description>
Returns the interface age as passed to `libtool`.

If `libtool` means nothing to you, don't worry about it.


</description>
<parameters>
</parameters>
<return> the interface age of the GTK library
</return>
</function>

<function name="gtk_get_locale_direction">
<description>
Get the direction of the current locale. This is the expected
reading direction for text and UI.

This function depends on the current locale being set with
setlocale() and will default to setting the %GTK_TEXT_DIR_LTR
direction otherwise. %GTK_TEXT_DIR_NONE will never be returned.

GTK sets the default text direction according to the locale
during gtk_init(), and you should normally use
gtk_widget_get_direction() or gtk_widget_get_default_direction()
to obtain the current direction.

This function is only needed rare cases when the locale is
changed after GTK has already been initialized. In this case,
you can use it to update the default text direction as follows:

|[&lt;!-- language=&quot;C&quot; --&gt;
#include &lt;locale.h&gt;

static void
update_locale (const char *new_locale)
{
setlocale (LC_ALL, new_locale);
gtk_widget_set_default_direction (gtk_get_locale_direction ());
}
]|


</description>
<parameters>
</parameters>
<return> the direction of the current locale
</return>
</function>

<function name="gtk_get_major_version">
<description>
Returns the major version number of the GTK library.

For example, in GTK version 3.1.5 this is 3.

This function is in the library, so it represents the GTK library
your code is running against. Contrast with the %GTK_MAJOR_VERSION
macro, which represents the major version of the GTK headers you
have included when compiling your code.


</description>
<parameters>
</parameters>
<return> the major version number of the GTK library
</return>
</function>

<function name="gtk_get_micro_version">
<description>
Returns the micro version number of the GTK library.

For example, in GTK version 3.1.5 this is 5.

This function is in the library, so it represents the GTK library
your code is are running against. Contrast with the
%GTK_MICRO_VERSION macro, which represents the micro version of the
GTK headers you have included when compiling your code.


</description>
<parameters>
</parameters>
<return> the micro version number of the GTK library
</return>
</function>

<function name="gtk_get_minor_version">
<description>
Returns the minor version number of the GTK library.

For example, in GTK version 3.1.5 this is 1.

This function is in the library, so it represents the GTK library
your code is are running against. Contrast with the
%GTK_MINOR_VERSION macro, which represents the minor version of the
GTK headers you have included when compiling your code.


</description>
<parameters>
</parameters>
<return> the minor version number of the GTK library
</return>
</function>

<function name="gtk_gl_area_attach_buffers">
<description>
Binds buffers to the framebuffer.

Ensures that the @area framebuffer object is made the current draw
and read target, and that all the required buffers for the @area
are created and bound to the framebuffer.

This function is automatically called before emitting the
[signal@Gtk.GLArea::render] signal, and doesn't normally need to be
called by application code.

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gl_area_get_allowed_apis">
<description>
Gets the allowed APIs.

See [method@Gtk.GLArea.set_allowed_apis].

Since: 4.12

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
</parameters>
<return> the allowed APIs

</return>
</function>

<function name="gtk_gl_area_get_api">
<description>
Gets the API that is currently in use.

If the GL area has not been realized yet, 0 is returned.

Since: 4.12

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
</parameters>
<return> the currently used API

</return>
</function>

<function name="gtk_gl_area_get_auto_render">
<description>
Returns whether the area is in auto render mode or not.


</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the @area is auto rendering, %FALSE otherwise
</return>
</function>

<function name="gtk_gl_area_get_context">
<description>
Retrieves the `GdkGLContext` used by @area.


</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
</parameters>
<return> the `GdkGLContext`
</return>
</function>

<function name="gtk_gl_area_get_error">
<description>
Gets the current error set on the @area.


</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
</parameters>
<return> the `GError`
</return>
</function>

<function name="gtk_gl_area_get_has_depth_buffer">
<description>
Returns whether the area has a depth buffer.


</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the @area has a depth buffer, %FALSE otherwise
</return>
</function>

<function name="gtk_gl_area_get_has_stencil_buffer">
<description>
Returns whether the area has a stencil buffer.


</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the @area has a stencil buffer, %FALSE otherwise
</return>
</function>

<function name="gtk_gl_area_get_required_version">
<description>
Retrieves the required version of OpenGL.

See [method@Gtk.GLArea.set_required_version].

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
<parameter name="major">
<parameter_description> return location for the required major version
</parameter_description>
</parameter>
<parameter name="minor">
<parameter_description> return location for the required minor version
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gl_area_get_use_es">
<description>
Returns whether the `GtkGLArea` should use OpenGL ES.

See [method@Gtk.GLArea.set_use_es].

Deprecated: 4.12: Use [method@Gtk.GLArea.get_api]

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the `GtkGLArea` should create an OpenGL ES context
and %FALSE otherwise

</return>
</function>

<function name="gtk_gl_area_make_current">
<description>
Ensures that the `GdkGLContext` used by @area is associated with
the `GtkGLArea`.

This function is automatically called before emitting the
[signal@Gtk.GLArea::render] signal, and doesn't normally need
to be called by application code.

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gl_area_new">
<description>
Creates a new `GtkGLArea` widget.


</description>
<parameters>
</parameters>
<return> a new `GtkGLArea`
</return>
</function>

<function name="gtk_gl_area_queue_render">
<description>
Marks the currently rendered data (if any) as invalid, and queues
a redraw of the widget.

This ensures that the [signal@Gtk.GLArea::render] signal
is emitted during the draw.

This is only needed when [method@Gtk.GLArea.set_auto_render] has
been called with a %FALSE value. The default behaviour is to
emit [signal@Gtk.GLArea::render] on each draw.

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gl_area_set_allowed_apis">
<description>
Sets the allowed APIs to create a context with.

You should check [property@Gtk.GLArea:api] before drawing
with either API.

By default, all APIs are allowed.

Since: 4.12

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
<parameter name="apis">
<parameter_description> the allowed APIs
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gl_area_set_auto_render">
<description>
Sets whether the `GtkGLArea` is in auto render mode.

If @auto_render is %TRUE the [signal@Gtk.GLArea::render] signal will
be emitted every time the widget draws. This is the default and is
useful if drawing the widget is faster.

If @auto_render is %FALSE the data from previous rendering is kept
around and will be used for drawing the widget the next time,
unless the window is resized. In order to force a rendering
[method@Gtk.GLArea.queue_render] must be called. This mode is
useful when the scene changes seldom, but takes a long time to redraw.

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
<parameter name="auto_render">
<parameter_description> a boolean
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gl_area_set_error">
<description>
Sets an error on the area which will be shown instead of the
GL rendering.

This is useful in the [signal@Gtk.GLArea::create-context]
signal if GL context creation fails.

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a new `GError`, or %NULL to unset the error
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gl_area_set_has_depth_buffer">
<description>
Sets whether the `GtkGLArea` should use a depth buffer.

If @has_depth_buffer is %TRUE the widget will allocate and
enable a depth buffer for the target framebuffer. Otherwise
there will be none.

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
<parameter name="has_depth_buffer">
<parameter_description> %TRUE to add a depth buffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gl_area_set_has_stencil_buffer">
<description>
Sets whether the `GtkGLArea` should use a stencil buffer.

If @has_stencil_buffer is %TRUE the widget will allocate and
enable a stencil buffer for the target framebuffer. Otherwise
there will be none.

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
<parameter name="has_stencil_buffer">
<parameter_description> %TRUE to add a stencil buffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gl_area_set_required_version">
<description>
Sets the required version of OpenGL to be used when creating
the context for the widget.

This function must be called before the area has been realized.

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
<parameter name="major">
<parameter_description> the major version
</parameter_description>
</parameter>
<parameter name="minor">
<parameter_description> the minor version
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_gl_area_set_use_es">
<description>
Sets whether the @area should create an OpenGL or an OpenGL ES context.

You should check the capabilities of the `GdkGLContext` before drawing
with either API.

Deprecated: 4.12: Use [method@Gtk.GLArea.set_allowed_apis]

</description>
<parameters>
<parameter name="area">
<parameter_description> a `GtkGLArea`
</parameter_description>
</parameter>
<parameter name="use_es">
<parameter_description> whether to use OpenGL or OpenGL ES
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grab_add">
<description>
Makes @widget the current grabbed widget.

This means that interaction with other widgets in the same
application is blocked and mouse as well as keyboard events
are delivered to this widget.

If @widget is not sensitive, it is not set as the current
grabbed widget and this function does nothing.

</description>
<parameters>
<parameter name="widget">
<parameter_description> The widget that grabs keyboard and pointer events
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grab_remove">
<description>
Removes the grab from the given widget.

You have to pair calls to gtk_grab_add() and gtk_grab_remove().

If @widget does not have the grab, this function does nothing.

</description>
<parameters>
<parameter name="widget">
<parameter_description> The widget which gives up the grab
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_graphics_offload_get_child">
<description>
Gets the child of @self.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGraphicsOffload`
</parameter_description>
</parameter>
</parameters>
<return> the child widget

</return>
</function>

<function name="gtk_graphics_offload_get_enabled">
<description>
Returns whether offload is enabled for @self.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGraphicsOffload`
</parameter_description>
</parameter>
</parameters>
<return> whether offload is enabled

</return>
</function>

<function name="gtk_graphics_offload_new">
<description>
Creates a new GtkGraphicsOffload widget.

Since: 4.14

</description>
<parameters>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return> the new widget

</return>
</function>

<function name="gtk_graphics_offload_set_child">
<description>
Sets the child of @self.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGraphicsOffload`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_graphics_offload_set_enabled">
<description>
Sets whether this GtkGraphicsOffload widget will attempt
to offload the content of its child widget.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGraphicsOffload`
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> whether to enable offload
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_attach">
<description>
Adds a widget to the grid.

The position of @child is determined by @column and @row.
The number of “cells” that @child will occupy is determined
by @width and @height.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the widget to add
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> the column number to attach the left side of @child to
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> the row number to attach the top side of @child to
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the number of columns that @child will span
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the number of rows that @child will span
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_attach_next_to">
<description>
Adds a widget to the grid.

The widget is placed next to @sibling, on the side determined by
@side. When @sibling is %NULL, the widget is placed in row (for
left or right placement) or column 0 (for top or bottom placement),
at the end indicated by @side.

Attaching widgets labeled `[1]`, `[2]`, `[3]` with `@sibling == %NULL` and
`@side == %GTK_POS_LEFT` yields a layout of `[3][2][1]`.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the widget to add
</parameter_description>
</parameter>
<parameter name="sibling">
<parameter_description> the child of @grid that @child will be placed
next to, or %NULL to place @child at the beginning or end
</parameter_description>
</parameter>
<parameter name="side">
<parameter_description> the side of @sibling that @child is positioned next to
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the number of columns that @child will span
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the number of rows that @child will span
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_get_baseline_row">
<description>
Returns which row defines the global baseline of @grid.


</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
</parameters>
<return> the row index defining the global baseline
</return>
</function>

<function name="gtk_grid_get_child_at">
<description>
Gets the child of @grid whose area covers the grid
cell at @column, @row.


</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> the left edge of the cell
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> the top edge of the cell
</parameter_description>
</parameter>
</parameters>
<return> the child at the given position
</return>
</function>

<function name="gtk_grid_get_column_homogeneous">
<description>
Returns whether all columns of @grid have the same width.


</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
</parameters>
<return> whether all columns of @grid have the same width.
</return>
</function>

<function name="gtk_grid_get_column_spacing">
<description>
Returns the amount of space between the columns of @grid.


</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
</parameters>
<return> the column spacing of @grid
</return>
</function>

<function name="gtk_grid_get_row_baseline_position">
<description>
Returns the baseline position of @row.

See [method@Gtk.Grid.set_row_baseline_position].


</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> a row index
</parameter_description>
</parameter>
</parameters>
<return> the baseline position of @row
</return>
</function>

<function name="gtk_grid_get_row_homogeneous">
<description>
Returns whether all rows of @grid have the same height.


</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
</parameters>
<return> whether all rows of @grid have the same height.
</return>
</function>

<function name="gtk_grid_get_row_spacing">
<description>
Returns the amount of space between the rows of @grid.


</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
</parameters>
<return> the row spacing of @grid
</return>
</function>

<function name="gtk_grid_insert_column">
<description>
Inserts a column at the specified position.

Children which are attached at or to the right of this position
are moved one column to the right. Children which span across this
position are grown to span the new column.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position to insert the column at
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_insert_next_to">
<description>
Inserts a row or column at the specified position.

The new row or column is placed next to @sibling, on the side
determined by @side. If @side is %GTK_POS_TOP or %GTK_POS_BOTTOM,
a row is inserted. If @side is %GTK_POS_LEFT of %GTK_POS_RIGHT,
a column is inserted.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="sibling">
<parameter_description> the child of @grid that the new row or column will be
placed next to
</parameter_description>
</parameter>
<parameter name="side">
<parameter_description> the side of @sibling that @child is positioned next to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_insert_row">
<description>
Inserts a row at the specified position.

Children which are attached at or below this position
are moved one row down. Children which span across this
position are grown to span the new row.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position to insert the row at
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_layout_child_get_column">
<description>
Retrieves the column number to which @child attaches its left side.


</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkGridLayoutChild`
</parameter_description>
</parameter>
</parameters>
<return> the column number
</return>
</function>

<function name="gtk_grid_layout_child_get_column_span">
<description>
Retrieves the number of columns that @child spans to.


</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkGridLayoutChild`
</parameter_description>
</parameter>
</parameters>
<return> the number of columns
</return>
</function>

<function name="gtk_grid_layout_child_get_row">
<description>
Retrieves the row number to which @child attaches its top side.


</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkGridLayoutChild`
</parameter_description>
</parameter>
</parameters>
<return> the row number
</return>
</function>

<function name="gtk_grid_layout_child_get_row_span">
<description>
Retrieves the number of rows that @child spans to.


</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkGridLayoutChild`
</parameter_description>
</parameter>
</parameters>
<return> the number of row
</return>
</function>

<function name="gtk_grid_layout_child_set_column">
<description>
Sets the column number to attach the left side of @child.

</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkGridLayoutChild`
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> the attach point for @child
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_layout_child_set_column_span">
<description>
Sets the number of columns @child spans to.

</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkGridLayoutChild`
</parameter_description>
</parameter>
<parameter name="span">
<parameter_description> the span of @child
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_layout_child_set_row">
<description>
Sets the row to place @child in.

</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkGridLayoutChild`
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> the row for @child
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_layout_child_set_row_span">
<description>
Sets the number of rows @child spans to.

</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkGridLayoutChild`
</parameter_description>
</parameter>
<parameter name="span">
<parameter_description> the span of @child
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_layout_get_baseline_row">
<description>
Retrieves the row set with gtk_grid_layout_set_baseline_row().


</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGridLayout`
</parameter_description>
</parameter>
</parameters>
<return> the global baseline row
</return>
</function>

<function name="gtk_grid_layout_get_column_homogeneous">
<description>
Checks whether all columns of @grid should have the same width.


</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGridLayout`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the columns are homogeneous, and %FALSE otherwise
</return>
</function>

<function name="gtk_grid_layout_get_column_spacing">
<description>
Retrieves the spacing set with gtk_grid_layout_set_column_spacing().


</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGridLayout`
</parameter_description>
</parameter>
</parameters>
<return> the spacing between consecutive columns
</return>
</function>

<function name="gtk_grid_layout_get_row_baseline_position">
<description>
Returns the baseline position of @row.

If no value has been set with
[method@Gtk.GridLayout.set_row_baseline_position],
the default value of %GTK_BASELINE_POSITION_CENTER
is returned.


</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGridLayout`
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> a row index
</parameter_description>
</parameter>
</parameters>
<return> the baseline position of @row
</return>
</function>

<function name="gtk_grid_layout_get_row_homogeneous">
<description>
Checks whether all rows of @grid should have the same height.


</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGridLayout`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the rows are homogeneous, and %FALSE otherwise
</return>
</function>

<function name="gtk_grid_layout_get_row_spacing">
<description>
Retrieves the spacing set with gtk_grid_layout_set_row_spacing().


</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGridLayout`
</parameter_description>
</parameter>
</parameters>
<return> the spacing between consecutive rows
</return>
</function>

<function name="gtk_grid_layout_new">
<description>
Creates a new `GtkGridLayout`.


</description>
<parameters>
</parameters>
<return> the newly created `GtkGridLayout`
</return>
</function>

<function name="gtk_grid_layout_set_baseline_row">
<description>
Sets which row defines the global baseline for the entire grid.

Each row in the grid can have its own local baseline, but only
one of those is global, meaning it will be the baseline in the
parent of the @grid.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGridLayout`
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> the row index
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_layout_set_column_homogeneous">
<description>
Sets whether all columns of @grid should have the same width.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGridLayout`
</parameter_description>
</parameter>
<parameter name="homogeneous">
<parameter_description> %TRUE to make columns homogeneous
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_layout_set_column_spacing">
<description>
Sets the amount of space to insert between consecutive columns.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGridLayout`
</parameter_description>
</parameter>
<parameter name="spacing">
<parameter_description> the amount of space between columns, in pixels
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_layout_set_row_baseline_position">
<description>
Sets how the baseline should be positioned on @row of the
grid, in case that row is assigned more space than is requested.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGridLayout`
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> a row index
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> a `GtkBaselinePosition`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_layout_set_row_homogeneous">
<description>
Sets whether all rows of @grid should have the same height.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGridLayout`
</parameter_description>
</parameter>
<parameter name="homogeneous">
<parameter_description> %TRUE to make rows homogeneous
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_layout_set_row_spacing">
<description>
Sets the amount of space to insert between consecutive rows.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGridLayout`
</parameter_description>
</parameter>
<parameter name="spacing">
<parameter_description> the amount of space between rows, in pixels
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_new">
<description>
Creates a new grid widget.


</description>
<parameters>
</parameters>
<return> the new `GtkGrid`
</return>
</function>

<function name="gtk_grid_query_child">
<description>
Queries the attach points and spans of @child inside the given `GtkGrid`.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a `GtkWidget` child of @grid
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> the column used to attach the left side of @child
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> the row used to attach the top side of @child
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the number of columns @child spans
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the number of rows @child spans
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_remove">
<description>
Removes a child from @grid.

The child must have been added with
[method@Gtk.Grid.attach] or [method@Gtk.Grid.attach_next_to].

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_remove_column">
<description>
Removes a column from the grid.

Children that are placed in this column are removed,
spanning children that overlap this column have their
width reduced by one, and children after the column
are moved to the left.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position of the column to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_remove_row">
<description>
Removes a row from the grid.

Children that are placed in this row are removed,
spanning children that overlap this row have their
height reduced by one, and children below the row
are moved up.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position of the row to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_set_baseline_row">
<description>
Sets which row defines the global baseline for the entire grid.

Each row in the grid can have its own local baseline, but only
one of those is global, meaning it will be the baseline in the
parent of the @grid.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> the row index
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_set_column_homogeneous">
<description>
Sets whether all columns of @grid will have the same width.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="homogeneous">
<parameter_description> %TRUE to make columns homogeneous
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_set_column_spacing">
<description>
Sets the amount of space between columns of @grid.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="spacing">
<parameter_description> the amount of space to insert between columns
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_set_row_baseline_position">
<description>
Sets how the baseline should be positioned on @row of the
grid, in case that row is assigned more space than is requested.

The default baseline position is %GTK_BASELINE_POSITION_CENTER.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> a row index
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> a `GtkBaselinePosition`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_set_row_homogeneous">
<description>
Sets whether all rows of @grid will have the same height.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="homogeneous">
<parameter_description> %TRUE to make rows homogeneous
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_set_row_spacing">
<description>
Sets the amount of space between rows of @grid.

</description>
<parameters>
<parameter name="grid">
<parameter_description> a `GtkGrid`
</parameter_description>
</parameter>
<parameter name="spacing">
<parameter_description> the amount of space to insert between rows
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_view_get_enable_rubberband">
<description>
Returns whether rows can be selected by dragging with the mouse.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGridView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if rubberband selection is enabled
</return>
</function>

<function name="gtk_grid_view_get_factory">
<description>
Gets the factory that's currently used to populate list items.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGridView`
</parameter_description>
</parameter>
</parameters>
<return> The factory in use
</return>
</function>

<function name="gtk_grid_view_get_max_columns">
<description>
Gets the maximum number of columns that the grid will use.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGridView`
</parameter_description>
</parameter>
</parameters>
<return> The maximum number of columns
</return>
</function>

<function name="gtk_grid_view_get_min_columns">
<description>
Gets the minimum number of columns that the grid will use.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGridView`
</parameter_description>
</parameter>
</parameters>
<return> The minimum number of columns
</return>
</function>

<function name="gtk_grid_view_get_model">
<description>
Gets the model that's currently used to read the items displayed.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGridView`
</parameter_description>
</parameter>
</parameters>
<return> The model in use
</return>
</function>

<function name="gtk_grid_view_get_single_click_activate">
<description>
Returns whether items will be activated on single click and
selected on hover.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGridView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if items are activated on single click
</return>
</function>

<function name="gtk_grid_view_get_tab_behavior">
<description>
Gets the behavior set for the &lt;kbd&gt;Tab&lt;/kbd&gt; key.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGridView`
</parameter_description>
</parameter>
</parameters>
<return> The behavior of the &lt;kbd&gt;Tab&lt;/kbd&gt; key

</return>
</function>

<function name="gtk_grid_view_new">
<description>
Creates a new `GtkGridView` that uses the given @factory for
mapping items to widgets.

The function takes ownership of the
arguments, so you can write code like
```c
grid_view = gtk_grid_view_new (create_model (),
gtk_builder_list_item_factory_new_from_resource (&quot;/resource.ui&quot;));
```


</description>
<parameters>
<parameter name="model">
<parameter_description> the model to use
</parameter_description>
</parameter>
<parameter name="factory">
<parameter_description> The factory to populate items with
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkGridView` using the given @model and @factory
</return>
</function>

<function name="gtk_grid_view_scroll_to">
<description>
Scrolls to the item at the given position and performs the actions
specified in @flags.

This function works no matter if the gridview is shown or focused.
If it isn't, then the changes will take effect once that happens.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> The gridview to scroll in
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> position of the item
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> actions to perform
</parameter_description>
</parameter>
<parameter name="scroll">
<parameter_description> details of how to perform
the scroll operation or %NULL to scroll into view
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_view_set_enable_rubberband">
<description>
Sets whether selections can be changed by dragging with the mouse.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGridView`
</parameter_description>
</parameter>
<parameter name="enable_rubberband">
<parameter_description> %TRUE to enable rubberband selection
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_view_set_factory">
<description>
Sets the `GtkListItemFactory` to use for populating list items.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGridView`
</parameter_description>
</parameter>
<parameter name="factory">
<parameter_description> the factory to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_view_set_max_columns">
<description>
Sets the maximum number of columns to use.

This number must be at least 1.

If @max_columns is smaller than the minimum set via
[method@Gtk.GridView.set_min_columns], that value is used instead.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGridView`
</parameter_description>
</parameter>
<parameter name="max_columns">
<parameter_description> The maximum number of columns
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_view_set_min_columns">
<description>
Sets the minimum number of columns to use.

This number must be at least 1.

If @min_columns is smaller than the minimum set via
[method@Gtk.GridView.set_max_columns], that value is ignored.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGridView`
</parameter_description>
</parameter>
<parameter name="min_columns">
<parameter_description> The minimum number of columns
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_view_set_model">
<description>
Sets the model to use.

This must be a [iface@Gtk.SelectionModel].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGridView`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> the model to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_view_set_single_click_activate">
<description>
Sets whether items should be activated on single click and
selected on hover.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGridView`
</parameter_description>
</parameter>
<parameter name="single_click_activate">
<parameter_description> %TRUE to activate items on single click
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_grid_view_set_tab_behavior">
<description>
Sets the behavior of the &lt;kbd&gt;Tab&lt;/kbd&gt; and &lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;Tab&lt;/kbd&gt; keys.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkGridView`
</parameter_description>
</parameter>
<parameter name="tab_behavior">
<parameter_description> The desired tab behavior
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_header_bar_get_decoration_layout">
<description>
Gets the decoration layout of the `GtkHeaderBar`.


</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkHeaderBar`
</parameter_description>
</parameter>
</parameters>
<return> the decoration layout
</return>
</function>

<function name="gtk_header_bar_get_show_title_buttons">
<description>
Returns whether this header bar shows the standard window
title buttons.


</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkHeaderBar`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if title buttons are shown
</return>
</function>

<function name="gtk_header_bar_get_title_widget">
<description>
Retrieves the title widget of the header.

See [method@Gtk.HeaderBar.set_title_widget].


</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkHeaderBar`
</parameter_description>
</parameter>
</parameters>
<return> the title widget of the header
</return>
</function>

<function name="gtk_header_bar_new">
<description>
Creates a new `GtkHeaderBar` widget.


</description>
<parameters>
</parameters>
<return> a new `GtkHeaderBar`
</return>
</function>

<function name="gtk_header_bar_pack_end">
<description>
Adds @child to @bar, packed with reference to the
end of the @bar.

</description>
<parameters>
<parameter name="bar">
<parameter_description> A `GtkHeaderBar`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to be added to @bar
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_header_bar_pack_start">
<description>
Adds @child to @bar, packed with reference to the
start of the @bar.

</description>
<parameters>
<parameter name="bar">
<parameter_description> A `GtkHeaderBar`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to be added to @bar
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_header_bar_remove">
<description>
Removes a child from the `GtkHeaderBar`.

The child must have been added with
[method@Gtk.HeaderBar.pack_start],
[method@Gtk.HeaderBar.pack_end] or
[method@Gtk.HeaderBar.set_title_widget].

</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkHeaderBar`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_header_bar_set_decoration_layout">
<description>
Sets the decoration layout for this header bar.

This property overrides the
[property@Gtk.Settings:gtk-decoration-layout] setting.

There can be valid reasons for overriding the setting, such
as a header bar design that does not allow for buttons to take
room on the right, or only offers room for a single close button.
Split header bars are another example for overriding the setting.

The format of the string is button names, separated by commas.
A colon separates the buttons that should appear on the left
from those on the right. Recognized button names are minimize,
maximize, close and icon (the window icon).

For example, “icon:minimize,maximize,close” specifies an icon
on the left, and minimize, maximize and close buttons on the right.

</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkHeaderBar`
</parameter_description>
</parameter>
<parameter name="layout">
<parameter_description> a decoration layout, or %NULL to unset the layout
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_header_bar_set_show_title_buttons">
<description>
Sets whether this header bar shows the standard window
title buttons.

</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkHeaderBar`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> %TRUE to show standard title buttons
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_header_bar_set_title_widget">
<description>
Sets the title for the `GtkHeaderBar`.

When set to %NULL, the headerbar will display the title of
the window it is contained in.

The title should help a user identify the current view.
To achieve the same style as the builtin title, use the
“title” style class.

You should set the title widget to %NULL, for the window
title label to be visible again.

</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkHeaderBar`
</parameter_description>
</parameter>
<parameter name="title_widget">
<parameter_description> a widget to use for a title
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_hsv_to_rgb">
<description>
Converts a color from HSV space to RGB.

Input values must be in the [0.0, 1.0] range;
output values will be in the same range.

</description>
<parameters>
<parameter name="h">
<parameter_description> Hue
</parameter_description>
</parameter>
<parameter name="s">
<parameter_description> Saturation
</parameter_description>
</parameter>
<parameter name="v">
<parameter_description> Value
</parameter_description>
</parameter>
<parameter name="r">
<parameter_description> Return value for the red component
</parameter_description>
</parameter>
<parameter name="g">
<parameter_description> Return value for the green component
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> Return value for the blue component
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_cache_validate">
<description>
Validates the icon cache passed in the @cache and
@cache_size fields of the @info structure. The
validator checks that offsets specified in the
cache do not point outside the mapped area, that
strings look reasonable, and that pixbufs can
be deserialized. The amount of validation can
be controlled with the @flags field.


</description>
<parameters>
<parameter name="info">
<parameter_description> a CacheInfo structure
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the cache is valid
</return>
</function>

<function name="gtk_icon_paintable_get_file">
<description>
Gets the `GFile` that was used to load the icon.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconPaintable`
</parameter_description>
</parameter>
</parameters>
<return> the `GFile` for the icon
</return>
</function>

<function name="gtk_icon_paintable_get_icon_name">
<description>
Get the icon name being used for this icon.

When an icon looked up in the icon theme was not available, the
icon theme may use fallback icons - either those specified to
gtk_icon_theme_lookup_icon() or the always-available
&quot;image-missing&quot;. The icon chosen is returned by this function.

If the icon was created without an icon theme, this function
returns %NULL.



</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconPaintable`
</parameter_description>
</parameter>
</parameters>
<return> the themed icon-name for the
icon, or %NULL if its not a themed icon.
</return>
</function>

<function name="gtk_icon_paintable_is_symbolic">
<description>
Checks if the icon is symbolic or not.

This currently uses only the file name and not the file contents
for determining this. This behaviour may change in the future.

Note that to render a symbolic `GtkIconPaintable` properly (with
recoloring), you have to set its icon name on a `GtkImage`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconPaintable`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the icon is symbolic, %FALSE otherwise
</return>
</function>

<function name="gtk_icon_paintable_new_for_file">
<description>
Creates a `GtkIconPaintable` for a file with a given size and scale.

The icon can then be rendered by using it as a `GdkPaintable`.


</description>
<parameters>
<parameter name="file">
<parameter_description> a `GFile`
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> desired icon size
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> the desired scale
</parameter_description>
</parameter>
</parameters>
<return> a `GtkIconPaintable` containing
for the icon. Unref with g_object_unref()
</return>
</function>

<function name="gtk_icon_theme_add_resource_path">
<description>
Adds a resource path that will be looked at when looking
for icons, similar to search paths.

See [method@Gtk.IconTheme.set_resource_path].

This function should be used to make application-specific icons
available as part of the icon theme.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconTheme`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a resource path
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_theme_add_search_path">
<description>
Appends a directory to the search path.

See [method@Gtk.IconTheme.set_search_path].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconTheme`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> directory name to append to the icon path
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_theme_get_display">
<description>
Returns the display that the `GtkIconTheme` object was
created for.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconTheme`
</parameter_description>
</parameter>
</parameters>
<return> the display of @icon_theme
</return>
</function>

<function name="gtk_icon_theme_get_for_display">
<description>
Gets the icon theme object associated with @display.

If this function has not previously been called for the given
display, a new icon theme object will be created and associated
with the display. Icon theme objects are fairly expensive to create,
so using this function is usually a better choice than calling
[ctor@Gtk.IconTheme.new] and setting the display yourself; by using
this function a single icon theme object will be shared between users.


</description>
<parameters>
<parameter name="display">
<parameter_description> a `GdkDisplay`
</parameter_description>
</parameter>
</parameters>
<return> A unique `GtkIconTheme` associated with
the given display. This icon theme is associated with the display
and can be used as long as the display is open. Do not ref or unref it.
</return>
</function>

<function name="gtk_icon_theme_get_icon_names">
<description>
Lists the names of icons in the current icon theme.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconTheme`
</parameter_description>
</parameter>
</parameters>
<return> a string array
holding the names of all the icons in the theme. You must
free the array using g_strfreev().
</return>
</function>

<function name="gtk_icon_theme_get_icon_sizes">
<description>
Returns an array of integers describing the sizes at which
the icon is available without scaling.

A size of -1 means that the icon is available in a scalable
format. The array is zero-terminated.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconTheme`
</parameter_description>
</parameter>
<parameter name="icon_name">
<parameter_description> the name of an icon
</parameter_description>
</parameter>
</parameters>
<return> A newly
allocated array describing the sizes at which the icon is
available. The array should be freed with g_free() when it is no
longer needed.
</return>
</function>

<function name="gtk_icon_theme_get_resource_path">
<description>
Gets the current resource path.

See [method@Gtk.IconTheme.set_resource_path].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconTheme`
</parameter_description>
</parameter>
</parameters>
<return>
A list of resource paths
</return>
</function>

<function name="gtk_icon_theme_get_search_path">
<description>
Gets the current search path.

See [method@Gtk.IconTheme.set_search_path].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconTheme`
</parameter_description>
</parameter>
</parameters>
<return>
a list of icon theme path directories
</return>
</function>

<function name="gtk_icon_theme_get_theme_name">
<description>
Gets the current icon theme name.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconTheme`
</parameter_description>
</parameter>
</parameters>
<return> the current icon theme name,
</return>
</function>

<function name="gtk_icon_theme_has_gicon">
<description>
Checks whether an icon theme includes an icon
for a particular `GIcon`.

Since: 4.2

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconTheme`
</parameter_description>
</parameter>
<parameter name="gicon">
<parameter_description> a `GIcon`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @self includes an icon for @gicon

</return>
</function>

<function name="gtk_icon_theme_has_icon">
<description>
Checks whether an icon theme includes an icon
for a particular name.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconTheme`
</parameter_description>
</parameter>
<parameter name="icon_name">
<parameter_description> the name of an icon
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @self includes an
icon for @icon_name.
</return>
</function>

<function name="gtk_icon_theme_lookup_by_gicon">
<description>
Looks up a icon for a desired size and window scale.

The icon can then be rendered by using it as a `GdkPaintable`,
or you can get information such as the filename and size.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconTheme`
</parameter_description>
</parameter>
<parameter name="icon">
<parameter_description> the `GIcon` to look up
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> desired icon size
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> the desired scale
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> text direction the icon will be displayed in
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags modifying the behavior of the icon lookup
</parameter_description>
</parameter>
</parameters>
<return> a `GtkIconPaintable` containing
information about the icon. Unref with g_object_unref()
</return>
</function>

<function name="gtk_icon_theme_lookup_icon">
<description>
Looks up a named icon for a desired size and window scale,
returning a `GtkIconPaintable`.

The icon can then be rendered by using it as a `GdkPaintable`,
or you can get information such as the filename and size.

If the available @icon_name is not available and @fallbacks are
provided, they will be tried in order.

If no matching icon is found, then a paintable that renders the
&quot;missing icon&quot; icon is returned. If you need to do something else
for missing icons you need to use [method@Gtk.IconTheme.has_icon].

Note that you probably want to listen for icon theme changes and
update the icon. This is usually done by overriding the
GtkWidgetClass.css-changed() function.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconTheme`
</parameter_description>
</parameter>
<parameter name="icon_name">
<parameter_description> the name of the icon to lookup
</parameter_description>
</parameter>
<parameter name="fallbacks">
<parameter_description>
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> desired icon size.
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> the window scale this will be displayed on
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> text direction the icon will be displayed in
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags modifying the behavior of the icon lookup
</parameter_description>
</parameter>
</parameters>
<return> a `GtkIconPaintable` object
containing the icon.
</return>
</function>

<function name="gtk_icon_theme_new">
<description>
Creates a new icon theme object.

Icon theme objects are used to lookup up an icon by name
in a particular icon theme. Usually, you’ll want to use
[func@Gtk.IconTheme.get_for_display] rather than creating
a new icon theme object for scratch.


</description>
<parameters>
</parameters>
<return> the newly created `GtkIconTheme` object.
</return>
</function>

<function name="gtk_icon_theme_set_resource_path">
<description>
Sets the resource paths that will be looked at when
looking for icons, similar to search paths.

The resources are considered as part of the hicolor icon theme
and must be located in subdirectories that are defined in the
hicolor icon theme, such as `@path/16x16/actions/run.png`
or `@path/scalable/actions/run.svg`.

Icons that are directly placed in the resource path instead
of a subdirectory are also considered as ultimate fallback,
but they are treated like unthemed icons.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconTheme`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> 
NULL-terminated array of resource paths
that are searched for icons
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_theme_set_search_path">
<description>
Sets the search path for the icon theme object.

When looking for an icon theme, GTK will search for a subdirectory
of one or more of the directories in @path with the same name
as the icon theme containing an index.theme file. (Themes from
multiple of the path elements are combined to allow themes to be
extended by adding icons in the user’s home directory.)

In addition if an icon found isn’t found either in the current
icon theme or the default icon theme, and an image file with
the right name is found directly in one of the elements of
@path, then that image will be used for the icon name.
(This is legacy feature, and new icons should be put
into the fallback icon theme, which is called hicolor,
rather than directly on the icon path.)

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconTheme`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> NULL-terminated
array of directories that are searched for icon themes
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_theme_set_theme_name">
<description>
Sets the name of the icon theme that the `GtkIconTheme` object uses
overriding system configuration.

This function cannot be called on the icon theme objects returned
from [func@Gtk.IconTheme.get_for_display].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkIconTheme`
</parameter_description>
</parameter>
<parameter name="theme_name">
<parameter_description> name of icon theme to use instead of
configured theme, or %NULL to unset a previously set custom theme
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_create_drag_icon">
<description>
Creates a `GdkPaintable` representation of the item at @path.
This image is used for a drag icon.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath` in @icon_view
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated `GdkPaintable` of the drag icon.

</return>
</function>

<function name="gtk_icon_view_enable_model_drag_dest">
<description>
Turns @icon_view into a drop destination for automatic DND. Calling this
method sets `GtkIconView`:reorderable to %FALSE.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="formats">
<parameter_description> the formats that the drag will support
</parameter_description>
</parameter>
<parameter name="actions">
<parameter_description> the bitmask of possible actions for a drag to this
widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_enable_model_drag_source">
<description>
Turns @icon_view into a drag source for automatic DND. Calling this
method sets `GtkIconView`:reorderable to %FALSE.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="start_button_mask">
<parameter_description> Mask of allowed buttons to start drag
</parameter_description>
</parameter>
<parameter name="formats">
<parameter_description> the formats that the drag will support
</parameter_description>
</parameter>
<parameter name="actions">
<parameter_description> the bitmask of possible actions for a drag from this
widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_get_activate_on_single_click">
<description>
Gets the setting set by gtk_icon_view_set_activate_on_single_click().

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if item-activated will be emitted on a single click

</return>
</function>

<function name="gtk_icon_view_get_cell_rect">
<description>
Fills the bounding rectangle in widget coordinates for the cell specified by
@path and @cell. If @cell is %NULL the main cell area is used.

This function is only valid if @icon_view is realized.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="rect">
<parameter_description> rectangle to fill with cell rect
</parameter_description>
</parameter>
</parameters>
<return> %FALSE if there is no such item, %TRUE otherwise

</return>
</function>

<function name="gtk_icon_view_get_column_spacing">
<description>
Returns the value of the ::column-spacing property.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
</parameters>
<return> the space between columns

</return>
</function>

<function name="gtk_icon_view_get_columns">
<description>
Returns the value of the ::columns property.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
</parameters>
<return> the number of columns, or -1

</return>
</function>

<function name="gtk_icon_view_get_cursor">
<description>
Fills in @path and @cell with the current cursor path and cell.
If the cursor isn’t currently set, then *@path will be %NULL.
If no cell currently has focus, then *@cell will be %NULL.

The returned `GtkTreePath` must be freed with gtk_tree_path_free().

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> Return location for the current
cursor path
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> Return location the current
focus cell
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the cursor is set.

</return>
</function>

<function name="gtk_icon_view_get_dest_item_at_pos">
<description>
Determines the destination item for a given position.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="drag_x">
<parameter_description> the position to determine the destination item for
</parameter_description>
</parameter>
<parameter name="drag_y">
<parameter_description> the position to determine the destination item for
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> Return location for the path of the item
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> Return location for the drop position
</parameter_description>
</parameter>
</parameters>
<return> whether there is an item at the given position.

</return>
</function>

<function name="gtk_icon_view_get_drag_dest_item">
<description>
Gets information about the item that is highlighted for feedback.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> Return location for the path of
the highlighted item
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> Return location for the drop position
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_get_item_at_pos">
<description>
Gets the path and cell for the icon at the given position.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> The x position to be identified
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> The y position to be identified
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> Return location for the path
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> Return location for the renderer
responsible for the cell at (@x, @y)
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if an item exists at the specified position

</return>
</function>

<function name="gtk_icon_view_get_item_column">
<description>
Gets the column in which the item @path is currently
displayed. Column numbers start at 0.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> the `GtkTreePath` of the item
</parameter_description>
</parameter>
</parameters>
<return> The column in which the item is displayed

</return>
</function>

<function name="gtk_icon_view_get_item_orientation">
<description>
Returns the value of the ::item-orientation property which determines
whether the labels are drawn beside the icons instead of below.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
</parameters>
<return> the relative position of texts and icons

</return>
</function>

<function name="gtk_icon_view_get_item_padding">
<description>
Returns the value of the ::item-padding property.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
</parameters>
<return> the padding around items

</return>
</function>

<function name="gtk_icon_view_get_item_row">
<description>
Gets the row in which the item @path is currently
displayed. Row numbers start at 0.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> the `GtkTreePath` of the item
</parameter_description>
</parameter>
</parameters>
<return> The row in which the item is displayed

</return>
</function>

<function name="gtk_icon_view_get_item_width">
<description>
Returns the value of the ::item-width property.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
</parameters>
<return> the width of a single item, or -1

</return>
</function>

<function name="gtk_icon_view_get_margin">
<description>
Returns the value of the ::margin property.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
</parameters>
<return> the space at the borders

</return>
</function>

<function name="gtk_icon_view_get_markup_column">
<description>
Returns the column with markup text for @icon_view.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
</parameters>
<return> the markup column, or -1 if it’s unset.

</return>
</function>

<function name="gtk_icon_view_get_model">
<description>
Returns the model the `GtkIconView` is based on.  Returns %NULL if the
model is unset.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
</parameters>
<return> The currently used `GtkTreeModel`

</return>
</function>

<function name="gtk_icon_view_get_path_at_pos">
<description>
Gets the path for the icon at the given position.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> The x position to be identified
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> The y position to be identified
</parameter_description>
</parameter>
</parameters>
<return> The `GtkTreePath` corresponding
to the icon or %NULL if no icon exists at that position.

</return>
</function>

<function name="gtk_icon_view_get_pixbuf_column">
<description>
Returns the column with pixbufs for @icon_view.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
</parameters>
<return> the pixbuf column, or -1 if it’s unset.

</return>
</function>

<function name="gtk_icon_view_get_reorderable">
<description>
Retrieves whether the user can reorder the list via drag-and-drop.
See gtk_icon_view_set_reorderable().

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the list can be reordered.

</return>
</function>

<function name="gtk_icon_view_get_row_spacing">
<description>
Returns the value of the ::row-spacing property.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
</parameters>
<return> the space between rows

</return>
</function>

<function name="gtk_icon_view_get_selected_items">
<description>
Creates a list of paths of all selected items. Additionally, if you are
planning on modifying the model after calling this function, you may
want to convert the returned list into a list of `GtkTreeRowReferences`.
To do this, you can use gtk_tree_row_reference_new().

To free the return value, use `g_list_free_full`:
|[&lt;!-- language=&quot;C&quot; --&gt;
GtkWidget *icon_view = gtk_icon_view_new ();
// Use icon_view

GList *list = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (icon_view));

// use list

g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free);
]|

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
</parameters>
<return> A `GList` containing a `GtkTreePath` for each selected row.

</return>
</function>

<function name="gtk_icon_view_get_selection_mode">
<description>
Gets the selection mode of the @icon_view.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
</parameters>
<return> the current selection mode

</return>
</function>

<function name="gtk_icon_view_get_spacing">
<description>
Returns the value of the ::spacing property.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
</parameters>
<return> the space between cells

</return>
</function>

<function name="gtk_icon_view_get_text_column">
<description>
Returns the column with text for @icon_view.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
</parameters>
<return> the text column, or -1 if it’s unset.

</return>
</function>

<function name="gtk_icon_view_get_tooltip_column">
<description>
Returns the column of @icon_view’s model which is being used for
displaying tooltips on @icon_view’s rows.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
</parameters>
<return> the index of the tooltip column that is currently being
used, or -1 if this is disabled.

</return>
</function>

<function name="gtk_icon_view_get_tooltip_context">
<description>
This function is supposed to be used in a `GtkWidget::query-tooltip`
signal handler for `GtkIconView`. The @x, @y and @keyboard_tip values
which are received in the signal handler, should be passed to this
function without modification.

The return value indicates whether there is an icon view item at the given
coordinates (%TRUE) or not (%FALSE) for mouse tooltips. For keyboard
tooltips the item returned will be the cursor item. When %TRUE, then any of
@model, @path and @iter which have been provided will be set to point to
that row and the corresponding model.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> an `GtkIconView`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate (relative to widget coordinates)
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate (relative to widget coordinates)
</parameter_description>
</parameter>
<parameter name="keyboard_tip">
<parameter_description> whether this is a keyboard tooltip or not
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a pointer to receive a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a pointer to receive a `GtkTreePath`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a pointer to receive a `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> whether or not the given tooltip context points to an item

</return>
</function>

<function name="gtk_icon_view_get_visible_range">
<description>
Sets @start_path and @end_path to be the first and last visible path.
Note that there may be invisible paths in between.

Both paths should be freed with gtk_tree_path_free() after use.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`
</parameter_description>
</parameter>
<parameter name="start_path">
<parameter_description> Return location for start of region
</parameter_description>
</parameter>
<parameter name="end_path">
<parameter_description> Return location for end of region
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if valid paths were placed in @start_path and @end_path

</return>
</function>

<function name="gtk_icon_view_item_activated">
<description>
Activates the item determined by @path.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> The `GtkTreePath` to be activated
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_new">
<description>
Creates a new `GtkIconView` widget

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
</parameters>
<return> A newly created `GtkIconView` widget

</return>
</function>

<function name="gtk_icon_view_new_with_area">
<description>
Creates a new `GtkIconView` widget using the
specified @area to layout cells inside the icons.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="area">
<parameter_description> the `GtkCellArea` to use to layout cells
</parameter_description>
</parameter>
</parameters>
<return> A newly created `GtkIconView` widget

</return>
</function>

<function name="gtk_icon_view_new_with_model">
<description>
Creates a new `GtkIconView` widget with the model @model.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="model">
<parameter_description> The model.
</parameter_description>
</parameter>
</parameters>
<return> A newly created `GtkIconView` widget.

</return>
</function>

<function name="gtk_icon_view_path_is_selected">
<description>
Returns %TRUE if the icon pointed to by @path is currently
selected. If @path does not point to a valid location, %FALSE is returned.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> A `GtkTreePath` to check selection on.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @path is selected.

</return>
</function>

<function name="gtk_icon_view_scroll_to_path">
<description>
Moves the alignments of @icon_view to the position specified by @path.
@row_align determines where the row is placed, and @col_align determines
where @column is placed.  Both are expected to be between 0.0 and 1.0.
0.0 means left/top alignment, 1.0 means right/bottom alignment, 0.5 means
center.

If @use_align is %FALSE, then the alignment arguments are ignored, and the
tree does the minimum amount of work to scroll the item onto the screen.
This means that the item will be scrolled to the edge closest to its current
position.  If the item is currently visible on the screen, nothing is done.

This function only works if the model is set, and @path is a valid row on
the model. If the model changes before the @icon_view is realized, the
centered path will be modified to reflect this change.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> The path of the item to move to.
</parameter_description>
</parameter>
<parameter name="use_align">
<parameter_description> whether to use alignment arguments, or %FALSE.
</parameter_description>
</parameter>
<parameter name="row_align">
<parameter_description> The vertical alignment of the item specified by @path.
</parameter_description>
</parameter>
<parameter name="col_align">
<parameter_description> The horizontal alignment of the item specified by @path.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_select_all">
<description>
Selects all the icons. @icon_view must has its selection mode set
to %GTK_SELECTION_MULTIPLE.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_select_path">
<description>
Selects the row at @path.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> The `GtkTreePath` to be selected.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_selected_foreach">
<description>
Calls a function for each selected icon. Note that the model or
selection cannot be modified from within this function.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> The function to call for each selected icon.
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> User data to pass to the function.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_activate_on_single_click">
<description>
Causes the `GtkIconView`::item-activated signal to be emitted on
a single click instead of a double click.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="single">
<parameter_description> %TRUE to emit item-activated on a single click
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_column_spacing">
<description>
Sets the ::column-spacing property which specifies the space
which is inserted between the columns of the icon view.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="column_spacing">
<parameter_description> the column spacing
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_columns">
<description>
Sets the ::columns property which determines in how
many columns the icons are arranged. If @columns is
-1, the number of columns will be chosen automatically
to fill the available area.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="columns">
<parameter_description> the number of columns
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_cursor">
<description>
Sets the current keyboard focus to be at @path, and selects it.  This is
useful when you want to focus the user’s attention on a particular item.
If @cell is not %NULL, then focus is given to the cell specified by
it. Additionally, if @start_editing is %TRUE, then editing should be
started in the specified cell.

This function is often followed by `gtk_widget_grab_focus
(icon_view)` in order to give keyboard focus to the widget.
Please note that editing can only happen when the widget is realized.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> A `GtkTreePath`
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> One of the cell renderers of @icon_view
</parameter_description>
</parameter>
<parameter name="start_editing">
<parameter_description> %TRUE if the specified cell should start being edited.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_drag_dest_item">
<description>
Sets the item that is highlighted for feedback.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> The path of the item to highlight
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> Specifies where to drop, relative to the item
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_item_orientation">
<description>
Sets the ::item-orientation property which determines whether the labels
are drawn beside the icons instead of below.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="orientation">
<parameter_description> the relative position of texts and icons
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_item_padding">
<description>
Sets the `GtkIconView`:item-padding property which specifies the padding
around each of the icon view’s items.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="item_padding">
<parameter_description> the item padding
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_item_width">
<description>
Sets the ::item-width property which specifies the width
to use for each item. If it is set to -1, the icon view will
automatically determine a suitable item size.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="item_width">
<parameter_description> the width for each item
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_margin">
<description>
Sets the ::margin property which specifies the space
which is inserted at the top, bottom, left and right
of the icon view.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="margin">
<parameter_description> the margin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_markup_column">
<description>
Sets the column with markup information for @icon_view to be
@column. The markup column must be of type `G_TYPE_STRING`.
If the markup column is set to something, it overrides
the text column set by gtk_icon_view_set_text_column().

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> A column in the currently used model, or -1 to display no text
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_model">
<description>
Sets the model for a `GtkIconView`.
If the @icon_view already has a model set, it will remove
it before setting the new model.  If @model is %NULL, then
it will unset the old model.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> The model.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_pixbuf_column">
<description>
Sets the column with pixbufs for @icon_view to be @column. The pixbuf
column must be of type `GDK_TYPE_PIXBUF`

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> A column in the currently used model, or -1 to disable
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_reorderable">
<description>
This function is a convenience function to allow you to reorder models that
support the `GtkTreeDragSourceIface` and the `GtkTreeDragDestIface`. Both
`GtkTreeStore` and `GtkListStore` support these. If @reorderable is %TRUE, then
the user can reorder the model by dragging and dropping rows.  The
developer can listen to these changes by connecting to the model's
row_inserted and row_deleted signals. The reordering is implemented by setting up
the icon view as a drag source and destination. Therefore, drag and
drop can not be used in a reorderable view for any other purpose.

This function does not give you any degree of control over the order -- any
reordering is allowed.  If more control is needed, you should probably
handle drag and drop manually.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
<parameter name="reorderable">
<parameter_description> %TRUE, if the list of items can be reordered.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_row_spacing">
<description>
Sets the ::row-spacing property which specifies the space
which is inserted between the rows of the icon view.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="row_spacing">
<parameter_description> the row spacing
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_selection_mode">
<description>
Sets the selection mode of the @icon_view.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> The selection mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_spacing">
<description>
Sets the ::spacing property which specifies the space
which is inserted between the cells (i.e. the icon and
the text) of an item.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="spacing">
<parameter_description> the spacing
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_text_column">
<description>
Sets the column with text for @icon_view to be @column. The text
column must be of type `G_TYPE_STRING`.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> A column in the currently used model, or -1 to display no text
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_tooltip_cell">
<description>
Sets the tip area of @tooltip to the area which @cell occupies in
the item pointed to by @path. See also gtk_tooltip_set_tip_area().

See also gtk_icon_view_set_tooltip_column() for a simpler alternative.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="tooltip">
<parameter_description> a `GtkTooltip`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_tooltip_column">
<description>
If you only plan to have simple (text-only) tooltips on full items, you
can use this function to have `GtkIconView` handle these automatically
for you. @column should be set to the column in @icon_view’s model
containing the tooltip texts, or -1 to disable this feature.

When enabled, `GtkWidget:has-tooltip` will be set to %TRUE and
@icon_view will connect a `GtkWidget::query-tooltip` signal handler.

Note that the signal handler sets the text with gtk_tooltip_set_markup(),
so &amp;, &lt;, etc have to be escaped in the text.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> an integer, which is a valid column number for @icon_view’s model
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_set_tooltip_item">
<description>
Sets the tip area of @tooltip to be the area covered by the item at @path.
See also gtk_icon_view_set_tooltip_column() for a simpler alternative.
See also gtk_tooltip_set_tip_area().

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
<parameter name="tooltip">
<parameter_description> a `GtkTooltip`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_unselect_all">
<description>
Unselects all the icons.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_unselect_path">
<description>
Unselects the row at @path.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> A `GtkIconView`.
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> The `GtkTreePath` to be unselected.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_unset_model_drag_dest">
<description>
Undoes the effect of gtk_icon_view_enable_model_drag_dest(). Calling this
method sets `GtkIconView`:reorderable to %FALSE.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_icon_view_unset_model_drag_source">
<description>
Undoes the effect of gtk_icon_view_enable_model_drag_source(). Calling this
method sets `GtkIconView`:reorderable to %FALSE.

Deprecated: 4.10: Use [class@Gtk.GridView] instead

</description>
<parameters>
<parameter name="icon_view">
<parameter_description> a `GtkIconView`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_im_context_delete_surrounding">
<description>
Asks the widget that the input context is attached to delete
characters around the cursor position by emitting the
`::delete_surrounding` signal.

Note that @offset and @n_chars are in characters not in bytes
which differs from the usage other places in `GtkIMContext`.

In order to use this function, you should first call
[method@Gtk.IMContext.get_surrounding] to get the current context,
and call this function immediately afterwards to make sure that you
know what you are deleting. You should also account for the fact
that even if the signal was handled, the input context might not
have deleted all the characters that were requested to be deleted.

This function is used by an input method that wants to make
substitutions in the existing text in response to new input.
It is not useful for applications.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkIMContext`
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> offset from cursor position in chars;
a negative value means start before the cursor.
</parameter_description>
</parameter>
<parameter name="n_chars">
<parameter_description> number of characters to delete.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the signal was handled.
</return>
</function>

<function name="gtk_im_context_filter_key">
<description>
Allow an input method to forward key press and release events
to another input method without necessarily having a `GdkEvent`
available.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkIMContext`
</parameter_description>
</parameter>
<parameter name="press">
<parameter_description> whether to forward a key press or release event
</parameter_description>
</parameter>
<parameter name="surface">
<parameter_description> the surface the event is for
</parameter_description>
</parameter>
<parameter name="device">
<parameter_description> the device that the event is for
</parameter_description>
</parameter>
<parameter name="time">
<parameter_description> the timestamp for the event
</parameter_description>
</parameter>
<parameter name="keycode">
<parameter_description> the keycode for the event
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> modifier state for the event
</parameter_description>
</parameter>
<parameter name="group">
<parameter_description> the active keyboard group for the event
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the input method handled the key event.
</return>
</function>

<function name="gtk_im_context_filter_keypress">
<description>
Allow an input method to internally handle key press and release
events.

If this function returns %TRUE, then no further processing
should be done for this key event.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkIMContext`
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> the key event
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the input method handled the key event.
</return>
</function>

<function name="gtk_im_context_focus_in">
<description>
Notify the input method that the widget to which this
input context corresponds has gained focus.

The input method may, for example, change the displayed
feedback to reflect this change.

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkIMContext`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_im_context_focus_out">
<description>
Notify the input method that the widget to which this
input context corresponds has lost focus.

The input method may, for example, change the displayed
feedback or reset the contexts state to reflect this change.

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkIMContext`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_im_context_get_preedit_string">
<description>
Retrieve the current preedit string for the input context,
and a list of attributes to apply to the string.

This string should be displayed inserted at the insertion point.

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkIMContext`
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> location to store the retrieved
string. The string retrieved must be freed with g_free().
</parameter_description>
</parameter>
<parameter name="attrs">
<parameter_description> location to store the retrieved
attribute list. When you are done with this list, you
must unreference it with [method@Pango.AttrList.unref].
</parameter_description>
</parameter>
<parameter name="cursor_pos">
<parameter_description> location to store position of cursor
(in characters) within the preedit string.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_im_context_get_surrounding">
<description>
Retrieves context around the insertion point.

Input methods typically want context in order to constrain input text
based on existing text; this is important for languages such as Thai
where only some sequences of characters are allowed.

This function is implemented by emitting the
[signal@Gtk.IMContext::retrieve-surrounding] signal on the input method;
in response to this signal, a widget should provide as much context as
is available, up to an entire paragraph, by calling
[method@Gtk.IMContext.set_surrounding].

Note that there is no obligation for a widget to respond to the
`::retrieve-surrounding` signal, so input methods must be prepared to
function without context.

Deprecated: 4.2: Use [method@Gtk.IMContext.get_surrounding_with_selection] instead.

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkIMContext`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> location to store a UTF-8 encoded
string of text holding context around the insertion point.
If the function returns %TRUE, then you must free the result
stored in this location with g_free().
</parameter_description>
</parameter>
<parameter name="cursor_index">
<parameter_description> location to store byte index of the insertion
cursor within @text.
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if surrounding text was provided; in this case
you must free the result stored in `text`.

</return>
</function>

<function name="gtk_im_context_get_surrounding_with_selection">
<description>
Retrieves context around the insertion point.

Input methods typically want context in order to constrain input
text based on existing text; this is important for languages such
as Thai where only some sequences of characters are allowed.

This function is implemented by emitting the
[signal@Gtk.IMContext::retrieve-surrounding] signal on the input method;
in response to this signal, a widget should provide as much context as
is available, up to an entire paragraph, by calling
[method@Gtk.IMContext.set_surrounding_with_selection].

Note that there is no obligation for a widget to respond to the
`::retrieve-surrounding` signal, so input methods must be prepared to
function without context.

Since: 4.2

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkIMContext`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> location to store a UTF-8 encoded
string of text holding context around the insertion point.
If the function returns %TRUE, then you must free the result
stored in this location with g_free().
</parameter_description>
</parameter>
<parameter name="cursor_index">
<parameter_description> location to store byte index of the insertion
cursor within @text.
</parameter_description>
</parameter>
<parameter name="anchor_index">
<parameter_description> location to store byte index of the selection
bound within @text
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if surrounding text was provided; in this case
you must free the result stored in `text`.

</return>
</function>

<function name="gtk_im_context_reset">
<description>
Notify the input method that a change such as a change in cursor
position has been made.

This will typically cause the input method to clear the preedit state.

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkIMContext`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_im_context_set_client_widget">
<description>
Set the client widget for the input context.

This is the `GtkWidget` holding the input focus. This widget is
used in order to correctly position status windows, and may
also be used for purposes internal to the input method.

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkIMContext`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the client widget. This may be %NULL to indicate
that the previous client widget no longer exists.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_im_context_set_cursor_location">
<description>
Notify the input method that a change in cursor
position has been made.

The location is relative to the client widget.

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkIMContext`
</parameter_description>
</parameter>
<parameter name="area">
<parameter_description> new location
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_im_context_set_surrounding">
<description>
Sets surrounding context around the insertion point and preedit
string.

This function is expected to be called in response to the
[signal@Gtk.IMContext::retrieve-surrounding] signal, and will
likely have no effect if called at other times.

Deprecated: 4.2: Use [method@Gtk.IMContext.set_surrounding_with_selection] instead

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkIMContext`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> text surrounding the insertion point, as UTF-8.
the preedit string should not be included within @text
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> the length of @text, or -1 if @text is nul-terminated
</parameter_description>
</parameter>
<parameter name="cursor_index">
<parameter_description> the byte index of the insertion cursor within @text.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_im_context_set_surrounding_with_selection">
<description>
Sets surrounding context around the insertion point and preedit
string. This function is expected to be called in response to the
[signal@Gtk.IMContext::retrieve_surrounding] signal, and will likely
have no effect if called at other times.

Since: 4.2

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkIMContext`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> text surrounding the insertion point, as UTF-8.
the preedit string should not be included within @text
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> the length of @text, or -1 if @text is nul-terminated
</parameter_description>
</parameter>
<parameter name="cursor_index">
<parameter_description> the byte index of the insertion cursor within @text
</parameter_description>
</parameter>
<parameter name="anchor_index">
<parameter_description> the byte index of the selection bound within @text
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_im_context_set_use_preedit">
<description>
Sets whether the IM context should use the preedit string
to display feedback.

If @use_preedit is %FALSE (default is %TRUE), then the IM context
may use some other method to display feedback, such as displaying
it in a child of the root window.

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkIMContext`
</parameter_description>
</parameter>
<parameter name="use_preedit">
<parameter_description> whether the IM context should use the preedit string.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_im_context_simple_add_compose_file">
<description>
Adds an additional table from the X11 compose file.

</description>
<parameters>
<parameter name="context_simple">
<parameter_description> A `GtkIMContextSimple`
</parameter_description>
</parameter>
<parameter name="compose_file">
<parameter_description> The path of compose file
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_im_context_simple_add_table">
<description>
Adds an additional table to search to the input context.
Each row of the table consists of @max_seq_len key symbols
followed by two #guint16 interpreted as the high and low
words of a #gunicode value. Tables are searched starting
from the last added.

The table must be sorted in dictionary order on the
numeric value of the key symbol fields. (Values beyond
the length of the sequence should be zero.)

Deprecated: 4.4: Use gtk_im_context_simple_add_compose_file()

</description>
<parameters>
<parameter name="context_simple">
<parameter_description> A `GtkIMContextSimple`
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> the table
</parameter_description>
</parameter>
<parameter name="max_seq_len">
<parameter_description> Maximum length of a sequence in the table
</parameter_description>
</parameter>
<parameter name="n_seqs">
<parameter_description> number of sequences in the table
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_im_context_simple_new">
<description>
Creates a new `GtkIMContextSimple`.


</description>
<parameters>
</parameters>
<return> a new `GtkIMContextSimple`
</return>
</function>

<function name="gtk_im_multicontext_get_context_id">
<description>
Gets the id of the currently active delegate of the @context.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkIMMulticontext`
</parameter_description>
</parameter>
</parameters>
<return> the id of the currently active delegate
</return>
</function>

<function name="gtk_im_multicontext_new">
<description>
Creates a new `GtkIMMulticontext`.


</description>
<parameters>
</parameters>
<return> a new `GtkIMMulticontext`.
</return>
</function>

<function name="gtk_im_multicontext_set_context_id">
<description>
Sets the context id for @context.

This causes the currently active delegate of @context to be
replaced by the delegate corresponding to the new context id.

Setting this to a non-%NULL value overrides the system-wide
IM module setting. See the [property@Gtk.Settings:gtk-im-module]
property.

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkIMMulticontext`
</parameter_description>
</parameter>
<parameter name="context_id">
<parameter_description> the id to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_image_clear">
<description>
Resets the image to be empty.

</description>
<parameters>
<parameter name="image">
<parameter_description> a `GtkImage`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_image_get_gicon">
<description>
Gets the `GIcon` being displayed by the `GtkImage`.

The storage type of the image must be %GTK_IMAGE_EMPTY or
%GTK_IMAGE_GICON (see [method@Gtk.Image.get_storage_type]).
The caller of this function does not own a reference to the
returned `GIcon`.


</description>
<parameters>
<parameter name="image">
<parameter_description> a `GtkImage`
</parameter_description>
</parameter>
</parameters>
<return> a `GIcon`
</return>
</function>

<function name="gtk_image_get_icon_name">
<description>
Gets the icon name and size being displayed by the `GtkImage`.

The storage type of the image must be %GTK_IMAGE_EMPTY or
%GTK_IMAGE_ICON_NAME (see [method@Gtk.Image.get_storage_type]).
The returned string is owned by the `GtkImage` and should not
be freed.


</description>
<parameters>
<parameter name="image">
<parameter_description> a `GtkImage`
</parameter_description>
</parameter>
</parameters>
<return> the icon name
</return>
</function>

<function name="gtk_image_get_icon_size">
<description>
Gets the icon size used by the @image when rendering icons.


</description>
<parameters>
<parameter name="image">
<parameter_description> a `GtkImage`
</parameter_description>
</parameter>
</parameters>
<return> the image size used by icons
</return>
</function>

<function name="gtk_image_get_paintable">
<description>
Gets the image `GdkPaintable` being displayed by the `GtkImage`.

The storage type of the image must be %GTK_IMAGE_EMPTY or
%GTK_IMAGE_PAINTABLE (see [method@Gtk.Image.get_storage_type]).
The caller of this function does not own a reference to the
returned paintable.


</description>
<parameters>
<parameter name="image">
<parameter_description> a `GtkImage`
</parameter_description>
</parameter>
</parameters>
<return> the displayed paintable
</return>
</function>

<function name="gtk_image_get_pixel_size">
<description>
Gets the pixel size used for named icons.


</description>
<parameters>
<parameter name="image">
<parameter_description> a `GtkImage`
</parameter_description>
</parameter>
</parameters>
<return> the pixel size used for named icons.
</return>
</function>

<function name="gtk_image_get_storage_type">
<description>
Gets the type of representation being used by the `GtkImage`
to store image data.

If the `GtkImage` has no image data, the return value will
be %GTK_IMAGE_EMPTY.


</description>
<parameters>
<parameter name="image">
<parameter_description> a `GtkImage`
</parameter_description>
</parameter>
</parameters>
<return> image representation being used
</return>
</function>

<function name="gtk_image_new">
<description>
Creates a new empty `GtkImage` widget.


</description>
<parameters>
</parameters>
<return> a newly created `GtkImage` widget.
</return>
</function>

<function name="gtk_image_new_from_file">
<description>
Creates a new `GtkImage` displaying the file @filename.

If the file isn’t found or can’t be loaded, the resulting `GtkImage`
will display a “broken image” icon. This function never returns %NULL,
it always returns a valid `GtkImage` widget.

If you need to detect failures to load the file, use
[ctor@Gdk.Texture.new_from_file] to load the file yourself,
then create the `GtkImage` from the texture.

The storage type (see [method@Gtk.Image.get_storage_type])
of the returned image is not defined, it will be whatever
is appropriate for displaying the file.


</description>
<parameters>
<parameter name="filename">
<parameter_description> a filename
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkImage`
</return>
</function>

<function name="gtk_image_new_from_gicon">
<description>
Creates a `GtkImage` displaying an icon from the current icon theme.

If the icon name isn’t known, a “broken image” icon will be
displayed instead. If the current icon theme is changed, the icon
will be updated appropriately.


</description>
<parameters>
<parameter name="icon">
<parameter_description> an icon
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkImage` displaying the themed icon
</return>
</function>

<function name="gtk_image_new_from_icon_name">
<description>
Creates a `GtkImage` displaying an icon from the current icon theme.

If the icon name isn’t known, a “broken image” icon will be
displayed instead. If the current icon theme is changed, the icon
will be updated appropriately.


</description>
<parameters>
<parameter name="icon_name">
<parameter_description> an icon name
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkImage` displaying the themed icon
</return>
</function>

<function name="gtk_image_new_from_paintable">
<description>
Creates a new `GtkImage` displaying @paintable.

The `GtkImage` does not assume a reference to the paintable; you still
need to unref it if you own references. `GtkImage` will add its own
reference rather than adopting yours.

The `GtkImage` will track changes to the @paintable and update
its size and contents in response to it.


</description>
<parameters>
<parameter name="paintable">
<parameter_description> a `GdkPaintable`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkImage`
</return>
</function>

<function name="gtk_image_new_from_pixbuf">
<description>
Creates a new `GtkImage` displaying @pixbuf.

The `GtkImage` does not assume a reference to the pixbuf; you still
need to unref it if you own references. `GtkImage` will add its own
reference rather than adopting yours.

This is a helper for [ctor@Gtk.Image.new_from_paintable], and you can't
get back the exact pixbuf once this is called, only a texture.

Note that this function just creates an `GtkImage` from the pixbuf.
The `GtkImage` created will not react to state changes. Should you
want that, you should use [ctor@Gtk.Image.new_from_icon_name].

Deprecated: 4.12: Use [ctor@Gtk.Image.new_from_paintable] and
[ctor@Gdk.Texture.new_for_pixbuf] instead

</description>
<parameters>
<parameter name="pixbuf">
<parameter_description> a `GdkPixbuf`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkImage`

</return>
</function>

<function name="gtk_image_new_from_resource">
<description>
Creates a new `GtkImage` displaying the resource file @resource_path.

If the file isn’t found or can’t be loaded, the resulting `GtkImage` will
display a “broken image” icon. This function never returns %NULL,
it always returns a valid `GtkImage` widget.

If you need to detect failures to load the file, use
[ctor@GdkPixbuf.Pixbuf.new_from_file] to load the file yourself,
then create the `GtkImage` from the pixbuf.

The storage type (see [method@Gtk.Image.get_storage_type]) of
the returned image is not defined, it will be whatever is
appropriate for displaying the file.


</description>
<parameters>
<parameter name="resource_path">
<parameter_description> a resource path
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkImage`
</return>
</function>

<function name="gtk_image_set_from_file">
<description>
Sets a `GtkImage` to show a file.

See [ctor@Gtk.Image.new_from_file] for details.

</description>
<parameters>
<parameter name="image">
<parameter_description> a `GtkImage`
</parameter_description>
</parameter>
<parameter name="filename">
<parameter_description> a filename
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_image_set_from_gicon">
<description>
Sets a `GtkImage` to show a `GIcon`.

See [ctor@Gtk.Image.new_from_gicon] for details.

</description>
<parameters>
<parameter name="image">
<parameter_description> a `GtkImage`
</parameter_description>
</parameter>
<parameter name="icon">
<parameter_description> an icon
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_image_set_from_icon_name">
<description>
Sets a `GtkImage` to show a named icon.

See [ctor@Gtk.Image.new_from_icon_name] for details.

</description>
<parameters>
<parameter name="image">
<parameter_description> a `GtkImage`
</parameter_description>
</parameter>
<parameter name="icon_name">
<parameter_description> an icon name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_image_set_from_paintable">
<description>
Sets a `GtkImage` to show a `GdkPaintable`.

See [ctor@Gtk.Image.new_from_paintable] for details.

</description>
<parameters>
<parameter name="image">
<parameter_description> a `GtkImage`
</parameter_description>
</parameter>
<parameter name="paintable">
<parameter_description> a `GdkPaintable`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_image_set_from_pixbuf">
<description>
Sets a `GtkImage` to show a `GdkPixbuf`.

See [ctor@Gtk.Image.new_from_pixbuf] for details.

Note: This is a helper for [method@Gtk.Image.set_from_paintable],
and you can't get back the exact pixbuf once this is called,
only a paintable.

Deprecated: 4.12: Use [method@Gtk.Image.set_from_paintable] instead

</description>
<parameters>
<parameter name="image">
<parameter_description> a `GtkImage`
</parameter_description>
</parameter>
<parameter name="pixbuf">
<parameter_description> a `GdkPixbuf` or `NULL`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_image_set_from_resource">
<description>
Sets a `GtkImage` to show a resource.

See [ctor@Gtk.Image.new_from_resource] for details.

</description>
<parameters>
<parameter name="image">
<parameter_description> a `GtkImage`
</parameter_description>
</parameter>
<parameter name="resource_path">
<parameter_description> a resource path
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_image_set_icon_size">
<description>
Suggests an icon size to the theme for named icons.

</description>
<parameters>
<parameter name="image">
<parameter_description> a `GtkImage`
</parameter_description>
</parameter>
<parameter name="icon_size">
<parameter_description> the new icon size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_image_set_pixel_size">
<description>
Sets the pixel size to use for named icons.

If the pixel size is set to a value != -1, it is used instead
of the icon size set by [method@Gtk.Image.set_from_icon_name].

</description>
<parameters>
<parameter name="image">
<parameter_description> a `GtkImage`
</parameter_description>
</parameter>
<parameter name="pixel_size">
<parameter_description> the new pixel size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_info_bar_add_action_widget">
<description>
Add an activatable widget to the action area of a `GtkInfoBar`.

This also connects a signal handler that will emit the
[signal@Gtk.InfoBar::response] signal on the message area
when the widget is activated. The widget is appended to the
end of the message areas action area.

Deprecated: 4.10

</description>
<parameters>
<parameter name="info_bar">
<parameter_description> a `GtkInfoBar`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> an activatable widget
</parameter_description>
</parameter>
<parameter name="response_id">
<parameter_description> response ID for @child
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_info_bar_add_button">
<description>
Adds a button with the given text.

Clicking the button will emit the [signal@Gtk.InfoBar::response]
signal with the given response_id. The button is appended to the
end of the info bar's action area. The button widget is returned,
but usually you don't need it.

Deprecated: 4.10

</description>
<parameters>
<parameter name="info_bar">
<parameter_description> a `GtkInfoBar`
</parameter_description>
</parameter>
<parameter name="button_text">
<parameter_description> text of button
</parameter_description>
</parameter>
<parameter name="response_id">
<parameter_description> response ID for the button
</parameter_description>
</parameter>
</parameters>
<return> the `GtkButton` widget
that was added

</return>
</function>

<function name="gtk_info_bar_add_buttons">
<description>
Adds multiple buttons.

This is the same as calling [method@Gtk.InfoBar.add_button]
repeatedly. The variable argument list should be %NULL-terminated
as with [ctor@Gtk.InfoBar.new_with_buttons]. Each button must have both
text and response ID.

Deprecated: 4.10

</description>
<parameters>
<parameter name="info_bar">
<parameter_description> a `GtkInfoBar`
</parameter_description>
</parameter>
<parameter name="first_button_text">
<parameter_description> button text
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> response ID for first button, then more text-response_id pairs,
ending with %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_info_bar_add_child">
<description>
Adds a widget to the content area of the info bar.

Deprecated: 4.10

</description>
<parameters>
<parameter name="info_bar">
<parameter_description> a `GtkInfoBar`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the child to be added
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_info_bar_get_message_type">
<description>
Returns the message type of the message area.

Deprecated: 4.10

</description>
<parameters>
<parameter name="info_bar">
<parameter_description> a `GtkInfoBar`
</parameter_description>
</parameter>
</parameters>
<return> the message type of the message area.

</return>
</function>

<function name="gtk_info_bar_get_revealed">
<description>
Returns whether the info bar is currently revealed.

Deprecated: 4.10

</description>
<parameters>
<parameter name="info_bar">
<parameter_description> a `GtkInfoBar`
</parameter_description>
</parameter>
</parameters>
<return> the current value of the [property@Gtk.InfoBar:revealed] property

</return>
</function>

<function name="gtk_info_bar_get_show_close_button">
<description>
Returns whether the widget will display a standard close button.

Deprecated: 4.10

</description>
<parameters>
<parameter name="info_bar">
<parameter_description> a `GtkInfoBar`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the widget displays standard close button

</return>
</function>

<function name="gtk_info_bar_new">
<description>
Creates a new `GtkInfoBar` object.

Deprecated: 4.10

</description>
<parameters>
</parameters>
<return> a new `GtkInfoBar` object

</return>
</function>

<function name="gtk_info_bar_new_with_buttons">
<description>
Creates a new `GtkInfoBar` with buttons.

Button text/response ID pairs should be listed, with a %NULL pointer
ending the list. A response ID can be any positive number,
or one of the values in the `GtkResponseType` enumeration. If the
user clicks one of these dialog buttons, GtkInfoBar will emit
the [signal@Gtk.InfoBar::response] signal with the corresponding
response ID.

Deprecated: 4.10

</description>
<parameters>
<parameter name="first_button_text">
<parameter_description> ext to go in first button
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> response ID for first button, then additional buttons, ending
with %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkInfoBar`

</return>
</function>

<function name="gtk_info_bar_remove_action_widget">
<description>
Removes a widget from the action area of @info_bar.

The widget must have been put there by a call to
[method@Gtk.InfoBar.add_action_widget] or [method@Gtk.InfoBar.add_button].

Deprecated: 4.10

</description>
<parameters>
<parameter name="info_bar">
<parameter_description> a `GtkInfoBar`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> an action widget to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_info_bar_remove_child">
<description>
Removes a widget from the content area of the info bar.

Deprecated: 4.10

</description>
<parameters>
<parameter name="info_bar">
<parameter_description> a `GtkInfoBar`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> a child that has been added to the content area
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_info_bar_response">
<description>
Emits the “response” signal with the given @response_id.

Deprecated: 4.10

</description>
<parameters>
<parameter name="info_bar">
<parameter_description> a `GtkInfoBar`
</parameter_description>
</parameter>
<parameter name="response_id">
<parameter_description> a response ID
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_info_bar_set_default_response">
<description>
Sets the last widget in the info bar’s action area with
the given response_id as the default widget for the dialog.

Pressing “Enter” normally activates the default widget.

Note that this function currently requires @info_bar to
be added to a widget hierarchy.

Deprecated: 4.10

</description>
<parameters>
<parameter name="info_bar">
<parameter_description> a `GtkInfoBar`
</parameter_description>
</parameter>
<parameter name="response_id">
<parameter_description> a response ID
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_info_bar_set_message_type">
<description>
Sets the message type of the message area.

GTK uses this type to determine how the message is displayed.

Deprecated: 4.10

</description>
<parameters>
<parameter name="info_bar">
<parameter_description> a `GtkInfoBar`
</parameter_description>
</parameter>
<parameter name="message_type">
<parameter_description> a `GtkMessageType`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_info_bar_set_response_sensitive">
<description>
Sets the sensitivity of action widgets for @response_id.

Calls `gtk_widget_set_sensitive (widget, setting)` for each
widget in the info bars’s action area with the given @response_id.
A convenient way to sensitize/desensitize buttons.

Deprecated: 4.10

</description>
<parameters>
<parameter name="info_bar">
<parameter_description> a `GtkInfoBar`
</parameter_description>
</parameter>
<parameter name="response_id">
<parameter_description> a response ID
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> TRUE for sensitive
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_info_bar_set_revealed">
<description>
Sets whether the `GtkInfoBar` is revealed.

Changing this will make @info_bar reveal or conceal
itself via a sliding transition.

Note: this does not show or hide @info_bar in the
[property@Gtk.Widget:visible] sense, so revealing has no effect
if [property@Gtk.Widget:visible] is %FALSE.

Deprecated: 4.10

</description>
<parameters>
<parameter name="info_bar">
<parameter_description> a `GtkInfoBar`
</parameter_description>
</parameter>
<parameter name="revealed">
<parameter_description> The new value of the property
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_info_bar_set_show_close_button">
<description>
If true, a standard close button is shown.

When clicked it emits the response %GTK_RESPONSE_CLOSE.

Deprecated: 4.10

</description>
<parameters>
<parameter name="info_bar">
<parameter_description> a `GtkInfoBar`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> %TRUE to include a close button
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_init">
<description>
Call this function before using any other GTK functions in your GUI
applications. It will initialize everything needed to operate the
toolkit.

If you are using `GtkApplication`, you usually don't have to call this
function; the `GApplication::startup` handler does it for you. Though,
if you are using GApplication methods that will be invoked before `startup`,
such as `local_command_line`, you may need to initialize stuff explicitly.

This function will terminate your program if it was unable to
initialize the windowing system for some reason. If you want
your program to fall back to a textual interface, call
[func@Gtk.init_check] instead.

GTK calls `signal (SIGPIPE, SIG_IGN)` during initialization, to ignore
SIGPIPE signals, since these are almost never wanted in graphical
applications. If you do need to handle SIGPIPE for some reason, reset
the handler after gtk_init(), but notice that other libraries (e.g.
libdbus or gvfs) might do similar things.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gtk_init_check">
<description>
This function does the same work as gtk_init() with only a single
change: It does not terminate the program if the windowing system
can’t be initialized. Instead it returns %FALSE on failure.

This way the application can fall back to some other means of
communication with the user - for example a curses or command line
interface.


</description>
<parameters>
</parameters>
<return> %TRUE if the windowing system has been successfully
initialized, %FALSE otherwise
</return>
</function>

<function name="gtk_inscription_get_attributes">
<description>
Gets the inscription's attribute list.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
</parameters>
<return> the attribute list

</return>
</function>

<function name="gtk_inscription_get_min_chars">
<description>
Gets the `min-chars` of the inscription.

See the [property@Gtk.Inscription:min-chars] property.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
</parameters>
<return> the min-chars property

</return>
</function>

<function name="gtk_inscription_get_min_lines">
<description>
Gets the `min-lines` of the inscription.

See the [property@Gtk.Inscription:min-lines] property.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
</parameters>
<return> the min-lines property

</return>
</function>

<function name="gtk_inscription_get_nat_chars">
<description>
Gets the `nat-chars` of the inscription.

See the [property@Gtk.Inscription:nat-chars] property.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
</parameters>
<return> the nat-chars property

</return>
</function>

<function name="gtk_inscription_get_nat_lines">
<description>
Gets the `nat-lines` of the inscription.

See the [property@Gtk.Inscription:nat-lines] property.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
</parameters>
<return> the nat-lines property

</return>
</function>

<function name="gtk_inscription_get_text">
<description>
Gets the text that is displayed.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
</parameters>
<return> The displayed text

</return>
</function>

<function name="gtk_inscription_get_text_overflow">
<description>
Gets the inscription's overflow method.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
</parameters>
<return> the overflow method

</return>
</function>

<function name="gtk_inscription_get_wrap_mode">
<description>
Returns line wrap mode used by the inscription.

See [method@Gtk.Inscription.set_wrap_mode].

Since:4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
</parameters>
<return> the line wrap mode

</return>
</function>

<function name="gtk_inscription_get_xalign">
<description>
Gets the `xalign` of the inscription.

See the [property@Gtk.Inscription:xalign] property.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
</parameters>
<return> the xalign property

</return>
</function>

<function name="gtk_inscription_get_yalign">
<description>
Gets the `yalign` of the inscription.

See the [property@Gtk.Inscription:yalign] property.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
</parameters>
<return> the yalign property

</return>
</function>

<function name="gtk_inscription_new">
<description>
Creates a new `GtkInscription` with the given text.

Since: 4.8

</description>
<parameters>
<parameter name="text">
<parameter_description> The text to display.
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkInscription`

</return>
</function>

<function name="gtk_inscription_set_attributes">
<description>
Apply attributes to the inscription text.

These attributes will not be evaluated for sizing the inscription.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
<parameter name="attrs">
<parameter_description> a [struct@Pango.AttrList]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_inscription_set_markup">
<description>
Utility function to set the text and attributes to be displayed.

See the [property@Gtk.Inscription:markup] property.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
<parameter name="markup">
<parameter_description> The markup to display
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_inscription_set_min_chars">
<description>
Sets the `min-chars` of the inscription.

See the [property@Gtk.Inscription:min-chars] property.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
<parameter name="min_chars">
<parameter_description> the minimum number of characters that should fit, approximately
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_inscription_set_min_lines">
<description>
Sets the `min-lines` of the inscription.

See the [property@Gtk.Inscription:min-lines] property.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
<parameter name="min_lines">
<parameter_description> the minimum number of lines that should fit, approximately
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_inscription_set_nat_chars">
<description>
Sets the `nat-chars` of the inscription.

See the [property@Gtk.Inscription:nat-chars] property.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
<parameter name="nat_chars">
<parameter_description> the number of characters that should ideally fit, approximately
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_inscription_set_nat_lines">
<description>
Sets the `nat-lines` of the inscription.

See the [property@Gtk.Inscription:nat-lines] property.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
<parameter name="nat_lines">
<parameter_description> the number of lines that should ideally fit
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_inscription_set_text">
<description>
Sets the text to be displayed.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> The text to display
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_inscription_set_text_overflow">
<description>
Sets what to do when the text doesn't fit.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
<parameter name="overflow">
<parameter_description> the overflow method to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_inscription_set_wrap_mode">
<description>
Controls how line wrapping is done.

Since:4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
<parameter name="wrap_mode">
<parameter_description> the line wrapping mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_inscription_set_xalign">
<description>
Sets the `xalign` of the inscription.

See the [property@Gtk.Inscription:xalign] property.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
<parameter name="xalign">
<parameter_description> the new xalign value, between 0 and 1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_inscription_set_yalign">
<description>
Sets the `yalign` of the inscription.

See the [property@Gtk.Inscription:yalign] property.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkInscription`
</parameter_description>
</parameter>
<parameter name="yalign">
<parameter_description> the new yalign value, between 0 and 1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_is_initialized">
<description>
Use this function to check if GTK has been initialized.

See [func@Gtk.init].


</description>
<parameters>
</parameters>
<return> the initialization status
</return>
</function>

<function name="gtk_keyval_trigger_get_keyval">
<description>
Gets the keyval that must be pressed to succeed
triggering @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a keyval `GtkShortcutTrigger`
</parameter_description>
</parameter>
</parameters>
<return> the keyval
</return>
</function>

<function name="gtk_keyval_trigger_get_modifiers">
<description>
Gets the modifiers that must be present to succeed
triggering @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a keyval `GtkShortcutTrigger`
</parameter_description>
</parameter>
</parameters>
<return> the modifiers
</return>
</function>

<function name="gtk_keyval_trigger_new">
<description>
Creates a `GtkShortcutTrigger` that will trigger whenever
the key with the given @keyval and @modifiers is pressed.


</description>
<parameters>
<parameter name="keyval">
<parameter_description> The keyval to trigger for
</parameter_description>
</parameter>
<parameter name="modifiers">
<parameter_description> the modifiers that need to be present
</parameter_description>
</parameter>
</parameters>
<return> A new `GtkShortcutTrigger`
</return>
</function>

<function name="gtk_label_get_attributes">
<description>
Gets the label's attribute list.

This is the [struct@Pango.AttrList] that was set on the label using
[method@Gtk.Label.set_attributes], if any. This function does not
reflect attributes that come from the label's markup (see
[method@Gtk.Label.set_markup]). If you want to get the effective
attributes for the label, use
`pango_layout_get_attributes (gtk_label_get_layout (self))`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> the attribute list
</return>
</function>

<function name="gtk_label_get_current_uri">
<description>
Returns the URI for the currently active link in the label.

The active link is the one under the mouse pointer or, in a
selectable label, the link in which the text cursor is currently
positioned.

This function is intended for use in a [signal@Gtk.Label::activate-link]
handler or for use in a [signal@Gtk.Widget::query-tooltip] handler.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> the currently active URI
</return>
</function>

<function name="gtk_label_get_ellipsize">
<description>
Returns the ellipsizing position of the label.

See [method@Gtk.Label.set_ellipsize].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> `PangoEllipsizeMode`
</return>
</function>

<function name="gtk_label_get_extra_menu">
<description>
Gets the extra menu model of @label.

See [method@Gtk.Label.set_extra_menu].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> the menu model
</return>
</function>

<function name="gtk_label_get_justify">
<description>
Returns the justification of the label.

See [method@Gtk.Label.set_justify].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> `GtkJustification`
</return>
</function>

<function name="gtk_label_get_label">
<description>
Fetches the text from a label.

The returned text includes any embedded underlines indicating
mnemonics and Pango markup. (See [method@Gtk.Label.get_text]).


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> the text of the label widget. This string is
owned by the widget and must not be modified or freed.
</return>
</function>

<function name="gtk_label_get_layout">
<description>
Gets the `PangoLayout` used to display the label.

The layout is useful to e.g. convert text positions to pixel
positions, in combination with [method@Gtk.Label.get_layout_offsets].
The returned layout is owned by the @label so need not be
freed by the caller. The @label is free to recreate its layout
at any time, so it should be considered read-only.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> the [class@Pango.Layout] for this label
</return>
</function>

<function name="gtk_label_get_layout_offsets">
<description>
Obtains the coordinates where the label will draw its `PangoLayout`.

The coordinates are useful to convert mouse events into coordinates
inside the [class@Pango.Layout], e.g. to take some action if some part
of the label is clicked. Remember when using the [class@Pango.Layout]
functions you need to convert to and from pixels using PANGO_PIXELS()
or [const@Pango.SCALE].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> location to store X offset of layout
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> location to store Y offset of layout
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_get_lines">
<description>
Gets the number of lines to which an ellipsized, wrapping
label should be limited.

See [method@Gtk.Label.set_lines].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> The number of lines
</return>
</function>

<function name="gtk_label_get_max_width_chars">
<description>
Retrieves the desired maximum width of @label, in characters.

See [method@Gtk.Label.set_width_chars].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> the maximum width of the label in characters.
</return>
</function>

<function name="gtk_label_get_measuring_layout">
<description>
Gets a layout that can be used for measuring sizes.

The returned layout will be identical to the label’s layout except for
the layout’s width, which will be set to @width. Do not modify the
returned layout.


</description>
<parameters>
<parameter name="self">
<parameter_description> the label
</parameter_description>
</parameter>
<parameter name="existing_layout">
<parameter_description> %NULL or an existing layout already in use.
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the width to measure with in pango units, or -1 for infinite
</parameter_description>
</parameter>
</parameters>
<return> a new reference to a pango layout
</return>
</function>

<function name="gtk_label_get_mnemonic_keyval">
<description>
Return the mnemonic accelerator.

If the label has been set so that it has a mnemonic key this function
returns the keyval used for the mnemonic accelerator. If there is no
mnemonic set up it returns `GDK_KEY_VoidSymbol`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> GDK keyval usable for accelerators, or `GDK_KEY_VoidSymbol`
</return>
</function>

<function name="gtk_label_get_mnemonic_widget">
<description>
Retrieves the target of the mnemonic (keyboard shortcut) of this
label.

See [method@Gtk.Label.set_mnemonic_widget].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> the target of the label’s mnemonic,
or %NULL if none has been set and the default algorithm will be used.
</return>
</function>

<function name="gtk_label_get_natural_wrap_mode">
<description>
Returns line wrap mode used by the label.

See [method@Gtk.Label.set_natural_wrap_mode].

Since: 4.6

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> the natural line wrap mode

</return>
</function>

<function name="gtk_label_get_selectable">
<description>
Returns whether the label is selectable.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the user can copy text from the label
</return>
</function>

<function name="gtk_label_get_selection_bounds">
<description>
Gets the selected range of characters in the label.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> return location for start of selection, as a character offset
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> return location for end of selection, as a character offset
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if selection is non-empty
</return>
</function>

<function name="gtk_label_get_single_line_mode">
<description>
Returns whether the label is in single line mode.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE when the label is in single line mode.
</return>
</function>

<function name="gtk_label_get_tabs">
<description>
Gets the tabs for @self.

The returned array will be %NULL if “standard” (8-space) tabs are used.
Free the return value with [method@Pango.TabArray.free].

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> copy of default tab array,
or %NULL if standard tabs are used; must be freed with
[method@Pango.TabArray.free].

</return>
</function>

<function name="gtk_label_get_text">
<description>
Fetches the text from a label.

The returned text is as it appears on screen. This does not include
any embedded underlines indicating mnemonics or Pango markup. (See
[method@Gtk.Label.get_label])


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> the text in the label widget. This is the internal
string used by the label, and must not be modified.
</return>
</function>

<function name="gtk_label_get_use_markup">
<description>
Returns whether the label’s text is interpreted as Pango markup.

See [method@Gtk.Label.set_use_markup].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the label’s text will be parsed for markup.
</return>
</function>

<function name="gtk_label_get_use_underline">
<description>
Returns whether an embedded underlines in the label indicate mnemonics.

See [method@Gtk.Label.set_use_underline].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE whether an embedded underline in the label indicates
the mnemonic accelerator keys.
</return>
</function>

<function name="gtk_label_get_width_chars">
<description>
Retrieves the desired width of @label, in characters.

See [method@Gtk.Label.set_width_chars].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> the width of the label in characters.
</return>
</function>

<function name="gtk_label_get_wrap">
<description>
Returns whether lines in the label are automatically wrapped.

See [method@Gtk.Label.set_wrap].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the lines of the label are automatically wrapped.
</return>
</function>

<function name="gtk_label_get_wrap_mode">
<description>
Returns line wrap mode used by the label.

See [method@Gtk.Label.set_wrap_mode].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> the line wrap mode
</return>
</function>

<function name="gtk_label_get_xalign">
<description>
Gets the `xalign` of the label.

See the [property@Gtk.Label:xalign] property.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> the xalign property
</return>
</function>

<function name="gtk_label_get_yalign">
<description>
Gets the `yalign` of the label.

See the [property@Gtk.Label:yalign] property.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
</parameters>
<return> the yalign property
</return>
</function>

<function name="gtk_label_new">
<description>
Creates a new label with the given text inside it.

You can pass %NULL to get an empty label widget.


</description>
<parameters>
<parameter name="str">
<parameter_description> The text of the label
</parameter_description>
</parameter>
</parameters>
<return> the new `GtkLabel`
</return>
</function>

<function name="gtk_label_new_with_mnemonic">
<description>
Creates a new `GtkLabel`, containing the text in @str.

If characters in @str are preceded by an underscore, they are
underlined. If you need a literal underscore character in a label, use
'__' (two underscores). The first underlined character represents a
keyboard accelerator called a mnemonic. The mnemonic key can be used
to activate another widget, chosen automatically, or explicitly using
[method@Gtk.Label.set_mnemonic_widget].

If [method@Gtk.Label.set_mnemonic_widget] is not called, then the first
activatable ancestor of the `GtkLabel` will be chosen as the mnemonic
widget. For instance, if the label is inside a button or menu item,
the button or menu item will automatically become the mnemonic widget
and be activated by the mnemonic.


</description>
<parameters>
<parameter name="str">
<parameter_description> The text of the label, with an underscore in front of the
mnemonic character
</parameter_description>
</parameter>
</parameters>
<return> the new `GtkLabel`
</return>
</function>

<function name="gtk_label_select_region">
<description>
Selects a range of characters in the label, if the label is selectable.

See [method@Gtk.Label.set_selectable]. If the label is not selectable,
this function has no effect. If @start_offset or
@end_offset are -1, then the end of the label will be substituted.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="start_offset">
<parameter_description> start offset (in characters not bytes)
</parameter_description>
</parameter>
<parameter name="end_offset">
<parameter_description> end offset (in characters not bytes)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_attributes">
<description>
Apply attributes to the label text.

The attributes set with this function will be applied and merged with
any other attributes previously effected by way of the
[property@Gtk.Label:use-underline] or [property@Gtk.Label:use-markup]
properties. While it is not recommended to mix markup strings with
manually set attributes, if you must; know that the attributes will
be applied to the label after the markup string is parsed.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="attrs">
<parameter_description> a [struct@Pango.AttrList]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_ellipsize">
<description>
Sets the mode used to ellipsize the text.

The text will be ellipsized if there is not enough space
to render the entire string.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> a `PangoEllipsizeMode`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_extra_menu">
<description>
Sets a menu model to add when constructing
the context menu for @label.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a `GMenuModel`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_justify">
<description>
Sets the alignment of the lines in the text of the label relative to
each other.

%GTK_JUSTIFY_LEFT is the default value when the widget is first created
with [ctor@Gtk.Label.new]. If you instead want to set the alignment of
the label as a whole, use [method@Gtk.Widget.set_halign] instead.
[method@Gtk.Label.set_justify] has no effect on labels containing
only a single line.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="jtype">
<parameter_description> a `GtkJustification`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_label">
<description>
Sets the text of the label.

The label is interpreted as including embedded underlines and/or Pango
markup depending on the values of the [property@Gtk.Label:use-underline]
and [property@Gtk.Label:use-markup] properties.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> the new text to set for the label
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_lines">
<description>
Sets the number of lines to which an ellipsized, wrapping label
should be limited.

This has no effect if the label is not wrapping or ellipsized.
Set this to -1 if you don’t want to limit the number of lines.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="lines">
<parameter_description> the desired number of lines, or -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_markup">
<description>
Sets the labels text and attributes from markup.

The string must be marked up with Pango markup
(see [func@Pango.parse_markup]).

If the @str is external data, you may need to escape it
with g_markup_escape_text() or g_markup_printf_escaped():

```c
GtkWidget *self = gtk_label_new (NULL);
const char *str = &quot;...&quot;;
const char *format = &quot;&lt;span style=\&quot;italic\&quot;&gt;\%s&lt;/span&gt;&quot;;
char *markup;

markup = g_markup_printf_escaped (format, str);
gtk_label_set_markup (GTK_LABEL (self), markup);
g_free (markup);
```

This function will set the [property@Gtk.Label:use-markup] property
to %TRUE as a side effect.

If you set the label contents using the [property@Gtk.Label:label]
property you should also ensure that you set the
[property@Gtk.Label:use-markup] property accordingly.

See also: [method@Gtk.Label.set_text]

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> a markup string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_markup_with_mnemonic">
<description>
Sets the labels text, attributes and mnemonic from markup.

Parses @str which is marked up with Pango markup (see [func@Pango.parse_markup]),
setting the label’s text and attribute list based on the parse results.
If characters in @str are preceded by an underscore, they are underlined
indicating that they represent a keyboard accelerator called a mnemonic.

The mnemonic key can be used to activate another widget, chosen
automatically, or explicitly using [method@Gtk.Label.set_mnemonic_widget].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> a markup string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_max_width_chars">
<description>
Sets the desired maximum width in characters of @label to @n_chars.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="n_chars">
<parameter_description> the new desired maximum width, in characters.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_mnemonic_widget">
<description>
Associate the label with its mnemonic target.

If the label has been set so that it has a mnemonic key (using
i.e. [method@Gtk.Label.set_markup_with_mnemonic],
[method@Gtk.Label.set_text_with_mnemonic],
[ctor@Gtk.Label.new_with_mnemonic]
or the [property@Gtk.Label:use_underline] property) the label can be
associated with a widget that is the target of the mnemonic. When the
label is inside a widget (like a [class@Gtk.Button] or a
[class@Gtk.Notebook] tab) it is automatically associated with the correct
widget, but sometimes (i.e. when the target is a [class@Gtk.Entry] next to
the label) you need to set it explicitly using this function.

The target widget will be accelerated by emitting the
[signal@Gtk.Widget::mnemonic-activate] signal on it. The default handler for
this signal will activate the widget if there are no mnemonic collisions
and toggle focus between the colliding widgets otherwise.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the target `GtkWidget`, or %NULL to unset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_natural_wrap_mode">
<description>
Select the line wrapping for the natural size request.

This only affects the natural size requested, for the actual wrapping used,
see the [property@Gtk.Label:wrap-mode] property.

Since: 4.6

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="wrap_mode">
<parameter_description> the line wrapping mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_selectable">
<description>
Makes text in the label selectable.

Selectable labels allow the user to select text from the label,
for copy-and-paste.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> %TRUE to allow selecting text in the label
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_single_line_mode">
<description>
Sets whether the label is in single line mode.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="single_line_mode">
<parameter_description> %TRUE if the label should be in single line mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_tabs">
<description>
Sets the default tab stops for paragraphs in @self.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="tabs">
<parameter_description> tabs as a `PangoTabArray`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_text">
<description>
Sets the text within the `GtkLabel` widget.

It overwrites any text that was there before.

This function will clear any previously set mnemonic accelerators,
and set the [property@Gtk.Label:use-underline] property to %FALSE as
a side effect.

This function will set the [property@Gtk.Label:use-markup] property
to %FALSE as a side effect.

See also: [method@Gtk.Label.set_markup]

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> The text you want to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_text_with_mnemonic">
<description>
Sets the label’s text from the string @str.

If characters in @str are preceded by an underscore, they are underlined
indicating that they represent a keyboard accelerator called a mnemonic.
The mnemonic key can be used to activate another widget, chosen
automatically, or explicitly using [method@Gtk.Label.set_mnemonic_widget].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> a string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_use_markup">
<description>
Sets whether the text of the label contains markup.

See [method@Gtk.Label.set_markup].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> %TRUE if the label’s text should be parsed for markup.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_use_underline">
<description>
Sets whether underlines in the text indicate mnemonics.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> %TRUE if underlines in the text indicate mnemonics
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_width_chars">
<description>
Sets the desired width in characters of @label to @n_chars.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="n_chars">
<parameter_description> the new desired width, in characters.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_wrap">
<description>
Toggles line wrapping within the `GtkLabel` widget.

%TRUE makes it break lines if text exceeds the widget’s size.
%FALSE lets the text get cut off by the edge of the widget if
it exceeds the widget size.

Note that setting line wrapping to %TRUE does not make the label
wrap at its parent container’s width, because GTK widgets
conceptually can’t make their requisition depend on the parent
container’s size. For a label that wraps at a specific position,
set the label’s width using [method@Gtk.Widget.set_size_request].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="wrap">
<parameter_description> the setting
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_wrap_mode">
<description>
Controls how line wrapping is done.

This only affects the label if line wrapping is on. (See
[method@Gtk.Label.set_wrap]) The default is %PANGO_WRAP_WORD
which means wrap on word boundaries.

For sizing behavior, also consider the [property@Gtk.Label:natural-wrap-mode]
property.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="wrap_mode">
<parameter_description> the line wrapping mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_xalign">
<description>
Sets the `xalign` of the label.

See the [property@Gtk.Label:xalign] property.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="xalign">
<parameter_description> the new xalign value, between 0 and 1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_label_set_yalign">
<description>
Sets the `yalign` of the label.

See the [property@Gtk.Label:yalign] property.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLabel`
</parameter_description>
</parameter>
<parameter name="yalign">
<parameter_description> the new yalign value, between 0 and 1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_layout_child_get_child_widget">
<description>
Retrieves the `GtkWidget` associated to the given @layout_child.


</description>
<parameters>
<parameter name="layout_child">
<parameter_description> a `GtkLayoutChild`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkWidget`
</return>
</function>

<function name="gtk_layout_child_get_layout_manager">
<description>
Retrieves the `GtkLayoutManager` instance that created the
given @layout_child.


</description>
<parameters>
<parameter name="layout_child">
<parameter_description> a `GtkLayoutChild`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkLayoutManager`
</return>
</function>

<function name="gtk_layout_manager_allocate">
<description>
Assigns the given @width, @height, and @baseline to
a @widget, and computes the position and sizes of the children of
the @widget using the layout management policy of @manager.

</description>
<parameters>
<parameter name="manager">
<parameter_description> a `GtkLayoutManager`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` using @manager
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the new width of the @widget
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the new height of the @widget
</parameter_description>
</parameter>
<parameter name="baseline">
<parameter_description> the baseline position of the @widget, or -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_layout_manager_get_layout_child">
<description>
Retrieves a `GtkLayoutChild` instance for the `GtkLayoutManager`,
creating one if necessary.

The @child widget must be a child of the widget using @manager.

The `GtkLayoutChild` instance is owned by the `GtkLayoutManager`,
and is guaranteed to exist as long as @child is a child of the
`GtkWidget` using the given `GtkLayoutManager`.


</description>
<parameters>
<parameter name="manager">
<parameter_description> a `GtkLayoutManager`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkLayoutChild`
</return>
</function>

<function name="gtk_layout_manager_get_request_mode">
<description>
Retrieves the request mode of @manager.


</description>
<parameters>
<parameter name="manager">
<parameter_description> a `GtkLayoutManager`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkSizeRequestMode`
</return>
</function>

<function name="gtk_layout_manager_get_widget">
<description>
Retrieves the `GtkWidget` using the given `GtkLayoutManager`.


</description>
<parameters>
<parameter name="manager">
<parameter_description> a `GtkLayoutManager`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkWidget`
</return>
</function>

<function name="gtk_layout_manager_layout_changed">
<description>
Queues a resize on the `GtkWidget` using @manager, if any.

This function should be called by subclasses of `GtkLayoutManager`
in response to changes to their layout management policies.

</description>
<parameters>
<parameter name="manager">
<parameter_description> a `GtkLayoutManager`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_layout_manager_measure">
<description>
Measures the size of the @widget using @manager, for the
given @orientation and size.

See the [class@Gtk.Widget] documentation on layout management for
more details.

</description>
<parameters>
<parameter name="manager">
<parameter_description> a `GtkLayoutManager`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` using @manager
</parameter_description>
</parameter>
<parameter name="orientation">
<parameter_description> the orientation to measure
</parameter_description>
</parameter>
<parameter name="for_size">
<parameter_description> Size for the opposite of @orientation; for instance, if
the @orientation is %GTK_ORIENTATION_HORIZONTAL, this is the height
of the widget; if the @orientation is %GTK_ORIENTATION_VERTICAL, this
is the width of the widget. This allows to measure the height for the
given width, and the width for the given height. Use -1 if the size
is not known
</parameter_description>
</parameter>
<parameter name="minimum">
<parameter_description> the minimum size for the given size and
orientation
</parameter_description>
</parameter>
<parameter name="natural">
<parameter_description> the natural, or preferred size for the
given size and orientation
</parameter_description>
</parameter>
<parameter name="minimum_baseline">
<parameter_description> the baseline position for the
minimum size
</parameter_description>
</parameter>
<parameter name="natural_baseline">
<parameter_description> the baseline position for the
natural size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_level_bar_add_offset_value">
<description>
Adds a new offset marker on @self at the position specified by @value.

When the bar value is in the interval topped by @value (or between @value
and [property@Gtk.LevelBar:max-value] in case the offset is the last one
on the bar) a style class named `level-`@name will be applied
when rendering the level bar fill.

If another offset marker named @name exists, its value will be
replaced by @value.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLevelBar`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the new offset
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value for the new offset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_level_bar_get_inverted">
<description>
Returns whether the levelbar is inverted.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLevelBar`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the level bar is inverted
</return>
</function>

<function name="gtk_level_bar_get_max_value">
<description>
Returns the `max-value` of the `GtkLevelBar`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLevelBar`
</parameter_description>
</parameter>
</parameters>
<return> a positive value
</return>
</function>

<function name="gtk_level_bar_get_min_value">
<description>
Returns the `min-value` of the `GtkLevelBar`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLevelBar`
</parameter_description>
</parameter>
</parameters>
<return> a positive value
</return>
</function>

<function name="gtk_level_bar_get_mode">
<description>
Returns the `mode` of the `GtkLevelBar`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLevelBar`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkLevelBarMode`
</return>
</function>

<function name="gtk_level_bar_get_offset_value">
<description>
Fetches the value specified for the offset marker @name in @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLevelBar`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of an offset in the bar
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> location where to store the value
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the specified offset is found
</return>
</function>

<function name="gtk_level_bar_get_value">
<description>
Returns the `value` of the `GtkLevelBar`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLevelBar`
</parameter_description>
</parameter>
</parameters>
<return> a value in the interval between
[property@Gtk.LevelBar:min-value] and [property@Gtk.LevelBar:max-value]
</return>
</function>

<function name="gtk_level_bar_new">
<description>
Creates a new `GtkLevelBar`.


</description>
<parameters>
</parameters>
<return> a `GtkLevelBar`.
</return>
</function>

<function name="gtk_level_bar_new_for_interval">
<description>
Creates a new `GtkLevelBar` for the specified interval.


</description>
<parameters>
<parameter name="min_value">
<parameter_description> a positive value
</parameter_description>
</parameter>
<parameter name="max_value">
<parameter_description> a positive value
</parameter_description>
</parameter>
</parameters>
<return> a `GtkLevelBar`
</return>
</function>

<function name="gtk_level_bar_remove_offset_value">
<description>
Removes an offset marker from a `GtkLevelBar`.

The marker must have been previously added with
[method@Gtk.LevelBar.add_offset_value].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLevelBar`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of an offset in the bar
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_level_bar_set_inverted">
<description>
Sets whether the `GtkLevelBar` is inverted.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLevelBar`
</parameter_description>
</parameter>
<parameter name="inverted">
<parameter_description> %TRUE to invert the level bar
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_level_bar_set_max_value">
<description>
Sets the `max-value` of the `GtkLevelBar`.

You probably want to update preexisting level offsets after calling
this function.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLevelBar`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a positive value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_level_bar_set_min_value">
<description>
Sets the `min-value` of the `GtkLevelBar`.

You probably want to update preexisting level offsets after calling
this function.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLevelBar`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a positive value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_level_bar_set_mode">
<description>
Sets the `mode` of the `GtkLevelBar`.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLevelBar`
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> a `GtkLevelBarMode`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_level_bar_set_value">
<description>
Sets the value of the `GtkLevelBar`.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkLevelBar`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a value in the interval between
[property@Gtk.LevelBar:min-value] and [property@Gtk.LevelBar:max-value]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_link_button_get_uri">
<description>
Retrieves the URI of the `GtkLinkButton`.


</description>
<parameters>
<parameter name="link_button">
<parameter_description> a `GtkLinkButton`
</parameter_description>
</parameter>
</parameters>
<return> a valid URI. The returned string is owned by the link button
and should not be modified or freed.
</return>
</function>

<function name="gtk_link_button_get_visited">
<description>
Retrieves the “visited” state of the `GtkLinkButton`.

The button becomes visited when it is clicked. If the URI
is changed on the button, the “visited” state is unset again.

The state may also be changed using [method@Gtk.LinkButton.set_visited].


</description>
<parameters>
<parameter name="link_button">
<parameter_description> a `GtkLinkButton`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the link has been visited, %FALSE otherwise
</return>
</function>

<function name="gtk_link_button_new">
<description>
Creates a new `GtkLinkButton` with the URI as its text.


</description>
<parameters>
<parameter name="uri">
<parameter_description> a valid URI
</parameter_description>
</parameter>
</parameters>
<return> a new link button widget.
</return>
</function>

<function name="gtk_link_button_new_with_label">
<description>
Creates a new `GtkLinkButton` containing a label.


</description>
<parameters>
<parameter name="uri">
<parameter_description> a valid URI
</parameter_description>
</parameter>
<parameter name="label">
<parameter_description> the text of the button
</parameter_description>
</parameter>
</parameters>
<return> a new link button widget.
</return>
</function>

<function name="gtk_link_button_set_uri">
<description>
Sets @uri as the URI where the `GtkLinkButton` points.

As a side-effect this unsets the “visited” state of the button.

</description>
<parameters>
<parameter name="link_button">
<parameter_description> a `GtkLinkButton`
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> a valid URI
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_link_button_set_visited">
<description>
Sets the “visited” state of the `GtkLinkButton`.

See [method@Gtk.LinkButton.get_visited] for more details.

</description>
<parameters>
<parameter name="link_button">
<parameter_description> a `GtkLinkButton`
</parameter_description>
</parameter>
<parameter name="visited">
<parameter_description> the new “visited” state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_base_set_anchor_max_widgets">
<description>
Sets how many widgets should be kept alive around the anchor.
The number of these widgets determines how many items can be
displayed and must be chosen to be large enough to cover the
allocation but should be kept as small as possible for
performance reasons.

There will be @center widgets allocated around the anchor
evenly distributed according to the anchor's alignment - if
the anchor is at the start, all these widgets will be allocated
behind it, if it's at the end, all the widgets will be allocated
in front of it.

Addditionally, there will be @above_below widgets allocated both
before and after the center widgets, so the total number of
widgets kept alive is 2 * above_below + center + 1.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListBase`
</parameter_description>
</parameter>
<parameter name="center">
<parameter_description> the number of widgets in the middle
</parameter_description>
</parameter>
<parameter name="above_below">
<parameter_description> extra widgets above and below
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_append">
<description>
Append a widget to the list.

If a sort function is set, the widget will
actually be inserted at the calculated position.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_bind_model">
<description>
Binds @model to @box.

If @box was already bound to a model, that previous binding is
destroyed.

The contents of @box are cleared and then filled with widgets that
represent items from @model. @box is updated whenever @model changes.
If @model is %NULL, @box is left empty.

It is undefined to add or remove widgets directly (for example, with
[method@Gtk.ListBox.insert]) while @box is bound to a model.

Note that using a model is incompatible with the filtering and sorting
functionality in `GtkListBox`. When using a model, filtering and sorting
should be implemented by the model.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> the `GListModel` to be bound to @box
</parameter_description>
</parameter>
<parameter name="create_widget_func">
<parameter_description> a function that creates widgets for items
or %NULL in case you also passed %NULL as @model
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @create_widget_func
</parameter_description>
</parameter>
<parameter name="user_data_free_func">
<parameter_description> function for freeing @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_drag_highlight_row">
<description>
Add a drag highlight to a row.

This is a helper function for implementing DnD onto a `GtkListBox`.
The passed in @row will be highlighted by setting the
%GTK_STATE_FLAG_DROP_ACTIVE state and any previously highlighted
row will be unhighlighted.

The row will also be unhighlighted when the widget gets
a drag leave event.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> a `GtkListBoxRow`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_drag_unhighlight_row">
<description>
If a row has previously been highlighted via gtk_list_box_drag_highlight_row(),
it will have the highlight removed.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_get_activate_on_single_click">
<description>
Returns whether rows activate on single clicks.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if rows are activated on single click, %FALSE otherwise
</return>
</function>

<function name="gtk_list_box_get_adjustment">
<description>
Gets the adjustment (if any) that the widget uses to
for vertical scrolling.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
</parameters>
<return> the adjustment
</return>
</function>

<function name="gtk_list_box_get_row_at_index">
<description>
Gets the n-th child in the list (not counting headers).

If @index_ is negative or larger than the number of items in the
list, %NULL is returned.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="index_">
<parameter_description> the index of the row
</parameter_description>
</parameter>
</parameters>
<return> the child `GtkWidget`
</return>
</function>

<function name="gtk_list_box_get_row_at_y">
<description>
Gets the row at the @y position.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> position
</parameter_description>
</parameter>
</parameters>
<return> the row
</return>
</function>

<function name="gtk_list_box_get_selected_row">
<description>
Gets the selected row, or %NULL if no rows are selected.

Note that the box may allow multiple selection, in which
case you should use [method@Gtk.ListBox.selected_foreach] to
find all selected rows.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
</parameters>
<return> the selected row
</return>
</function>

<function name="gtk_list_box_get_selected_rows">
<description>
Creates a list of all selected children.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
</parameters>
<return>
A `GList` containing the `GtkWidget` for each selected child.
Free with g_list_free() when done.
</return>
</function>

<function name="gtk_list_box_get_selection_mode">
<description>
Gets the selection mode of the listbox.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkSelectionMode`
</return>
</function>

<function name="gtk_list_box_get_show_separators">
<description>
Returns whether the list box should show separators
between rows.


</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the list box shows separators
</return>
</function>

<function name="gtk_list_box_insert">
<description>
Insert the @child into the @box at @position.

If a sort function is
set, the widget will actually be inserted at the calculated position.

If @position is -1, or larger than the total number of items in the
@box, then the @child will be appended to the end.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to add
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position to insert @child in
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_invalidate_filter">
<description>
Update the filtering for all rows.

Call this when result
of the filter function on the @box is changed due
to an external factor. For instance, this would be used
if the filter function just looked for a specific search
string and the entry with the search string has changed.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_invalidate_headers">
<description>
Update the separators for all rows.

Call this when result
of the header function on the @box is changed due
to an external factor.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_invalidate_sort">
<description>
Update the sorting for all rows.

Call this when result
of the sort function on the @box is changed due
to an external factor.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_new">
<description>
Creates a new `GtkListBox` container.


</description>
<parameters>
</parameters>
<return> a new `GtkListBox`
</return>
</function>

<function name="gtk_list_box_prepend">
<description>
Prepend a widget to the list.

If a sort function is set, the widget will
actually be inserted at the calculated position.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_remove">
<description>
Removes a child from @box.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_remove_all">
<description>
Removes all rows from @box.

This function does nothing if @box is backed by a model.

Since: 4.12

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_row_changed">
<description>
Marks @row as changed, causing any state that depends on this
to be updated.

This affects sorting, filtering and headers.

Note that calls to this method must be in sync with the data
used for the row functions. For instance, if the list is
mirroring some external data set, and *two* rows changed in the
external data set then when you call gtk_list_box_row_changed()
on the first row the sort function must only read the new data
for the first of the two changed rows, otherwise the resorting
of the rows will be wrong.

This generally means that if you don’t fully control the data
model you have to duplicate the data that affects the listbox
row functions into the row widgets themselves. Another alternative
is to call [method@Gtk.ListBox.invalidate_sort] on any model change,
but that is more expensive.

</description>
<parameters>
<parameter name="row">
<parameter_description> a `GtkListBoxRow`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_row_get_activatable">
<description>
Gets whether the row is activatable.


</description>
<parameters>
<parameter name="row">
<parameter_description> a `GtkListBoxRow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the row is activatable
</return>
</function>

<function name="gtk_list_box_row_get_child">
<description>
Gets the child widget of @row.


</description>
<parameters>
<parameter name="row">
<parameter_description> a `GtkListBoxRow`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @row
</return>
</function>

<function name="gtk_list_box_row_get_header">
<description>
Returns the current header of the @row.

This can be used
in a [callback@Gtk.ListBoxUpdateHeaderFunc] to see if
there is a header set already, and if so to update
the state of it.


</description>
<parameters>
<parameter name="row">
<parameter_description> a `GtkListBoxRow`
</parameter_description>
</parameter>
</parameters>
<return> the current header
</return>
</function>

<function name="gtk_list_box_row_get_index">
<description>
Gets the current index of the @row in its `GtkListBox` container.


</description>
<parameters>
<parameter name="row">
<parameter_description> a `GtkListBoxRow`
</parameter_description>
</parameter>
</parameters>
<return> the index of the @row, or -1 if the @row is not in a listbox
</return>
</function>

<function name="gtk_list_box_row_get_selectable">
<description>
Gets whether the row can be selected.


</description>
<parameters>
<parameter name="row">
<parameter_description> a `GtkListBoxRow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the row is selectable
</return>
</function>

<function name="gtk_list_box_row_is_selected">
<description>
Returns whether the child is currently selected in its
`GtkListBox` container.


</description>
<parameters>
<parameter name="row">
<parameter_description> a `GtkListBoxRow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @row is selected
</return>
</function>

<function name="gtk_list_box_row_new">
<description>
Creates a new `GtkListBoxRow`.


</description>
<parameters>
</parameters>
<return> a new `GtkListBoxRow`
</return>
</function>

<function name="gtk_list_box_row_set_activatable">
<description>
Set whether the row is activatable.

</description>
<parameters>
<parameter name="row">
<parameter_description> a `GtkListBoxRow`
</parameter_description>
</parameter>
<parameter name="activatable">
<parameter_description> %TRUE to mark the row as activatable
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_row_set_child">
<description>
Sets the child widget of @self.

</description>
<parameters>
<parameter name="row">
<parameter_description> a `GtkListBoxRow`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_row_set_header">
<description>
Sets the current header of the @row.

This is only allowed to be called
from a [callback@Gtk.ListBoxUpdateHeaderFunc].
It will replace any existing header in the row,
and be shown in front of the row in the listbox.

</description>
<parameters>
<parameter name="row">
<parameter_description> a `GtkListBoxRow`
</parameter_description>
</parameter>
<parameter name="header">
<parameter_description> the header
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_row_set_selectable">
<description>
Set whether the row can be selected.

</description>
<parameters>
<parameter name="row">
<parameter_description> a `GtkListBoxRow`
</parameter_description>
</parameter>
<parameter name="selectable">
<parameter_description> %TRUE to mark the row as selectable
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_select_all">
<description>
Select all children of @box, if the selection mode allows it.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_select_row">
<description>
Make @row the currently selected row.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> The row to select
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_selected_foreach">
<description>
Calls a function for each selected child.

Note that the selection cannot be modified from within this function.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the function to call for each selected child
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> user data to pass to the function
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_set_activate_on_single_click">
<description>
If @single is %TRUE, rows will be activated when you click on them,
otherwise you need to double-click.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="single">
<parameter_description> a boolean
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_set_adjustment">
<description>
Sets the adjustment (if any) that the widget uses to
for vertical scrolling.

For instance, this is used to get the page size for
PageUp/Down key handling.

In the normal case when the @box is packed inside
a `GtkScrolledWindow` the adjustment from that will
be picked up automatically, so there is no need
to manually do that.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="adjustment">
<parameter_description> the adjustment
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_set_filter_func">
<description>
By setting a filter function on the @box one can decide dynamically which
of the rows to show.

For instance, to implement a search function on a list that
filters the original list to only show the matching rows.

The @filter_func will be called for each row after the call, and
it will continue to be called each time a row changes (via
[method@Gtk.ListBoxRow.changed]) or when [method@Gtk.ListBox.invalidate_filter]
is called.

Note that using a filter function is incompatible with using a model
(see [method@Gtk.ListBox.bind_model]).

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="filter_func">
<parameter_description> callback that lets you filter which rows to show
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @filter_func
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> destroy notifier for @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_set_header_func">
<description>
Sets a header function.

By setting a header function on the @box one can dynamically add headers
in front of rows, depending on the contents of the row and its position
in the list.

For instance, one could use it to add headers in front of the first item
of a new kind, in a list sorted by the kind.

The @update_header can look at the current header widget using
[method@Gtk.ListBoxRow.get_header] and either update the state of the widget
as needed, or set a new one using [method@Gtk.ListBoxRow.set_header]. If no
header is needed, set the header to %NULL.

Note that you may get many calls @update_header to this for a particular
row when e.g. changing things that don’t affect the header. In this case
it is important for performance to not blindly replace an existing header
with an identical one.

The @update_header function will be called for each row after the call,
and it will continue to be called each time a row changes (via
[method@Gtk.ListBoxRow.changed]) and when the row before changes (either
by [method@Gtk.ListBoxRow.changed] on the previous row, or when the previous
row becomes a different row). It is also called for all rows when
[method@Gtk.ListBox.invalidate_headers] is called.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="update_header">
<parameter_description> callback that lets you add row headers
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @update_header
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> destroy notifier for @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_set_placeholder">
<description>
Sets the placeholder widget that is shown in the list when
it doesn't display any visible children.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="placeholder">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_set_selection_mode">
<description>
Sets how selection works in the listbox.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> The `GtkSelectionMode`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_set_show_separators">
<description>
Sets whether the list box should show separators
between rows.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="show_separators">
<parameter_description> %TRUE to show separators
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_set_sort_func">
<description>
Sets a sort function.

By setting a sort function on the @box one can dynamically reorder
the rows of the list, based on the contents of the rows.

The @sort_func will be called for each row after the call, and will
continue to be called each time a row changes (via
[method@Gtk.ListBoxRow.changed]) and when [method@Gtk.ListBox.invalidate_sort]
is called.

Note that using a sort function is incompatible with using a model
(see [method@Gtk.ListBox.bind_model]).

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="sort_func">
<parameter_description> the sort function
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @sort_func
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> destroy notifier for @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_unselect_all">
<description>
Unselect all children of @box, if the selection mode allows it.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_box_unselect_row">
<description>
Unselects a single row of @box, if the selection mode allows it.

</description>
<parameters>
<parameter name="box">
<parameter_description> a `GtkListBox`
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> the row to unselect
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_header_get_child">
<description>
Gets the child previously set via gtk_list_header_set_child() or
%NULL if none was set.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListHeader`
</parameter_description>
</parameter>
</parameters>
<return> The child

</return>
</function>

<function name="gtk_list_header_get_end">
<description>
Gets the end position in the model of the section that @self is
currently the header for.

If @self is unbound, %GTK_INVALID_LIST_POSITION is returned.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListHeader`
</parameter_description>
</parameter>
</parameters>
<return> The end position of the section

</return>
</function>

<function name="gtk_list_header_get_item">
<description>
Gets the model item at the start of the section.
This is the item that occupies the list model at position
[property@Gtk.ListHeader:start].

If @self is unbound, this function returns %NULL.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListHeader`
</parameter_description>
</parameter>
</parameters>
<return> The item displayed

</return>
</function>

<function name="gtk_list_header_get_n_items">
<description>
Gets the the number of items in the section.

If @self is unbound, 0 is returned.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListHeader`
</parameter_description>
</parameter>
</parameters>
<return> The number of items in the section

</return>
</function>

<function name="gtk_list_header_get_start">
<description>
Gets the start position in the model of the section that @self is
currently the header for.

If @self is unbound, %GTK_INVALID_LIST_POSITION is returned.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListHeader`
</parameter_description>
</parameter>
</parameters>
<return> The start position of the section

</return>
</function>

<function name="gtk_list_header_set_child">
<description>
Sets the child to be used for this listitem.

This function is typically called by applications when
setting up a header so that the widget can be reused when
binding it multiple times.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListHeader`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> The list item's child or %NULL to unset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_item_get_accessible_description">
<description>
Gets the accessible description of @self.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListItem`
</parameter_description>
</parameter>
</parameters>
<return> the accessible description

</return>
</function>

<function name="gtk_list_item_get_accessible_label">
<description>
Gets the accessible label of @self.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListItem`
</parameter_description>
</parameter>
</parameters>
<return> the accessible label

</return>
</function>

<function name="gtk_list_item_get_activatable">
<description>
Checks if a list item has been set to be activatable via
gtk_list_item_set_activatable().


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListItem`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the item is activatable
</return>
</function>

<function name="gtk_list_item_get_child">
<description>
Gets the child previously set via gtk_list_item_set_child() or
%NULL if none was set.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListItem`
</parameter_description>
</parameter>
</parameters>
<return> The child
</return>
</function>

<function name="gtk_list_item_get_focusable">
<description>
Checks if a list item has been set to be focusable via
gtk_list_item_set_focusable().

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListItem`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the item is focusable

</return>
</function>

<function name="gtk_list_item_get_item">
<description>
Gets the model item that associated with @self.

If @self is unbound, this function returns %NULL.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListItem`
</parameter_description>
</parameter>
</parameters>
<return> The item displayed
</return>
</function>

<function name="gtk_list_item_get_position">
<description>
Gets the position in the model that @self currently displays.

If @self is unbound, %GTK_INVALID_LIST_POSITION is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListItem`
</parameter_description>
</parameter>
</parameters>
<return> The position of this item
</return>
</function>

<function name="gtk_list_item_get_selectable">
<description>
Checks if a list item has been set to be selectable via
gtk_list_item_set_selectable().

Do not confuse this function with [method@Gtk.ListItem.get_selected].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListItem`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the item is selectable
</return>
</function>

<function name="gtk_list_item_get_selected">
<description>
Checks if the item is displayed as selected.

The selected state is maintained by the liste widget and its model
and cannot be set otherwise.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListItem`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the item is selected.
</return>
</function>

<function name="gtk_list_item_set_accessible_description">
<description>
Sets the accessible description for the list item,
which may be used by e.g. screen readers.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListItem`
</parameter_description>
</parameter>
<parameter name="description">
<parameter_description> the description
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_item_set_accessible_label">
<description>
Sets the accessible label for the list item,
which may be used by e.g. screen readers.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListItem`
</parameter_description>
</parameter>
<parameter name="label">
<parameter_description> the label
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_item_set_activatable">
<description>
Sets @self to be activatable.

If an item is activatable, double-clicking on the item, using
the Return key or calling gtk_widget_activate() will activate
the item. Activating instructs the containing view to handle
activation. `GtkListView` for example will be emitting the
[signal@Gtk.ListView::activate] signal.

By default, list items are activatable.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListItem`
</parameter_description>
</parameter>
<parameter name="activatable">
<parameter_description> if the item should be activatable
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_item_set_child">
<description>
Sets the child to be used for this listitem.

This function is typically called by applications when
setting up a listitem so that the widget can be reused when
binding it multiple times.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListItem`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> The list item's child or %NULL to unset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_item_set_focusable">
<description>
Sets @self to be focusable.

If an item is focusable, it can be focused using the keyboard.
This works similar to [method@Gtk.Widget.set_focusable].

Note that if items are not focusable, the keyboard cannot be used to activate
them and selecting only works if one of the listitem's children is focusable.

By default, list items are focusable.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListItem`
</parameter_description>
</parameter>
<parameter name="focusable">
<parameter_description> if the item should be focusable
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_item_set_selectable">
<description>
Sets @self to be selectable.

If an item is selectable, clicking on the item or using the keyboard
will try to select or unselect the item. If this succeeds is up to
the model to determine, as it is managing the selected state.

Note that this means that making an item non-selectable has no
influence on the selected state at all. A non-selectable item
may still be selected.

By default, list items are selectable. When rebinding them to
a new item, they will also be reset to be selectable by GTK.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListItem`
</parameter_description>
</parameter>
<parameter name="selectable">
<parameter_description> if the item should be selectable
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_append">
<description>
Appends a new row to @list_store.  @iter will be changed to point to this new
row.  The row will be empty after this function is called.  To fill in
values, you need to call gtk_list_store_set() or gtk_list_store_set_value().

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="list_store">
<parameter_description> A `GtkListStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> An unset `GtkTreeIter` to set to the appended row
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_clear">
<description>
Removes all rows from the list store.

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="list_store">
<parameter_description> a `GtkListStore`.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_insert">
<description>
Creates a new row at @position.  @iter will be changed to point to this new
row.  If @position is -1 or is larger than the number of rows on the list,
then the new row will be appended to the list. The row will be empty after
this function is called.  To fill in values, you need to call
gtk_list_store_set() or gtk_list_store_set_value().

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="list_store">
<parameter_description> A `GtkListStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> An unset `GtkTreeIter` to set to the new row
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position to insert the new row, or -1 for last
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_insert_after">
<description>
Inserts a new row after @sibling. If @sibling is %NULL, then the row will be
prepended to the beginning of the list. @iter will be changed to point to
this new row. The row will be empty after this function is called. To fill
in values, you need to call gtk_list_store_set() or gtk_list_store_set_value().

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="list_store">
<parameter_description> A `GtkListStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> An unset `GtkTreeIter` to set to the new row
</parameter_description>
</parameter>
<parameter name="sibling">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_insert_before">
<description>
Inserts a new row before @sibling. If @sibling is %NULL, then the row will
be appended to the end of the list. @iter will be changed to point to this
new row. The row will be empty after this function is called. To fill in
values, you need to call gtk_list_store_set() or gtk_list_store_set_value().

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="list_store">
<parameter_description> A `GtkListStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> An unset `GtkTreeIter` to set to the new row
</parameter_description>
</parameter>
<parameter name="sibling">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_insert_with_values">
<description>
Creates a new row at @position. @iter will be changed to point to this new
row. If @position is -1, or larger than the number of rows in the list, then
the new row will be appended to the list. The row will be filled with the
values given to this function.

Calling
`gtk_list_store_insert_with_values (list_store, iter, position...)`
has the same effect as calling:

|[&lt;!-- language=&quot;C&quot; --&gt;
static void
insert_value (GtkListStore *list_store,
GtkTreeIter  *iter,
int           position)
{
gtk_list_store_insert (list_store, iter, position);
gtk_list_store_set (list_store,
iter
// ...
);
}
]|

with the difference that the former will only emit `GtkTreeModel`::row-inserted
once, while the latter will emit `GtkTreeModel`::row-inserted,
`GtkTreeModel`::row-changed and, if the list store is sorted,
`GtkTreeModel`::rows-reordered for every inserted value.

Since emitting the `GtkTreeModel::rows-reordered` signal repeatedly can
affect the performance of the program, gtk_list_store_insert_with_values()
should generally be preferred when inserting rows in a sorted list store.

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="list_store">
<parameter_description> A `GtkListStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> An unset `GtkTreeIter` to set to the new row
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position to insert the new row, or -1 to append after existing
rows
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> pairs of column number and value, terminated with -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_insert_with_valuesv">
<description>
A variant of gtk_list_store_insert_with_values() which
takes the columns and values as two arrays, instead of
varargs.

This function is mainly intended for language-bindings.

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="list_store">
<parameter_description> A `GtkListStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> An unset `GtkTreeIter` to set to the new row
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position to insert the new row, or -1 for last
</parameter_description>
</parameter>
<parameter name="columns">
<parameter_description> an array of column numbers
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> an array of GValues
</parameter_description>
</parameter>
<parameter name="n_values">
<parameter_description> the length of the @columns and @values arrays
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_iter_is_valid">
<description>
Checks if the given iter is a valid iter for this `GtkListStore`.

This function is slow. Only use it for debugging and/or testing
purposes.

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="list_store">
<parameter_description> a list store
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the iterator to check
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the iter is valid, %FALSE if the iter is invalid.

</return>
</function>

<function name="gtk_list_store_move_after">
<description>
Moves @iter in @store to the position after @position. Note that this
function only works with unsorted stores. If @position is %NULL, @iter
will be moved to the start of the list.

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="store">
<parameter_description> A `GtkListStore`.
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> A `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_move_before">
<description>
Moves @iter in @store to the position before @position. Note that this
function only works with unsorted stores. If @position is %NULL, @iter
will be moved to the end of the list.

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="store">
<parameter_description> A `GtkListStore`.
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> A `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_new">
<description>
Creates a new list store.

The list store will have @n_columns columns, with each column using
the given type passed to this function.


Note that only types derived from standard GObject fundamental types
are supported.

As an example:

```c
gtk_list_store_new (3, G_TYPE_INT, G_TYPE_STRING, GDK_TYPE_TEXTURE);
```

will create a new `GtkListStore` with three columns, of type `int`,
`gchararray` and `GdkTexture`, respectively.

Deprecated: 4.10: Use [class@Gio.ListStore] instead

</description>
<parameters>
<parameter name="n_columns">
<parameter_description> number of columns in the list store
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> all `GType` types for the columns, from first to last
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkListStore`

</return>
</function>

<function name="gtk_list_store_newv">
<description>
Creates a new `GtkListStore`.

This function is meant to be used by language bindings.

Deprecated: 4.10: Use [class@Gio.ListStore] instead

</description>
<parameters>
<parameter name="n_columns">
<parameter_description> number of columns in the list store
</parameter_description>
</parameter>
<parameter name="types">
<parameter_description> an array of `GType` types for the columns, from first to last
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkListStore`

</return>
</function>

<function name="gtk_list_store_prepend">
<description>
Prepends a new row to @list_store. @iter will be changed to point to this new
row. The row will be empty after this function is called. To fill in
values, you need to call gtk_list_store_set() or gtk_list_store_set_value().

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="list_store">
<parameter_description> A `GtkListStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> An unset `GtkTreeIter` to set to the prepend row
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_remove">
<description>
Removes the given row from the list store.  After being removed,
@iter is set to be the next valid row, or invalidated if it pointed
to the last row in @list_store.

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="list_store">
<parameter_description> A `GtkListStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter is valid, %FALSE if not.

</return>
</function>

<function name="gtk_list_store_reorder">
<description>
Reorders @store to follow the order indicated by @new_order. Note that
this function only works with unsorted stores.

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="store">
<parameter_description> A `GtkListStore`.
</parameter_description>
</parameter>
<parameter name="new_order">
<parameter_description> an array of integers mapping the new
position of each child to its old position before the re-ordering,
i.e. @new_order`[newpos] = oldpos`. It must have
exactly as many items as the list store’s length.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_set">
<description>
Sets the value of one or more cells in the row referenced by @iter.
The variable argument list should contain integer column numbers,
each column number followed by the value to be set.
The list is terminated by a -1. For example, to set column 0 with type
%G_TYPE_STRING to “Foo”, you would write `gtk_list_store_set (store, iter,
0, &quot;Foo&quot;, -1)`.

The value will be referenced by the store if it is a %G_TYPE_OBJECT, and it
will be copied if it is a %G_TYPE_STRING or %G_TYPE_BOXED.

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="list_store">
<parameter_description> a `GtkListStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> row iterator
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> pairs of column number and value, terminated with -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_set_column_types">
<description>
Sets the types of the columns of a list store.

This function is meant primarily for objects that inherit
from `GtkListStore`, and should only be used when constructing
a new instance.

This function cannot be called after a row has been added, or
a method on the `GtkTreeModel` interface is called.

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="list_store">
<parameter_description> A `GtkListStore`
</parameter_description>
</parameter>
<parameter name="n_columns">
<parameter_description> Number of columns for the list store
</parameter_description>
</parameter>
<parameter name="types">
<parameter_description> An array length n of `GType`s
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_set_valist">
<description>
See gtk_list_store_set(); this version takes a va_list for use by language
bindings.

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="list_store">
<parameter_description> A `GtkListStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A valid `GtkTreeIter` for the row being modified
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> va_list of column/value pairs
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_set_value">
<description>
Sets the data in the cell specified by @iter and @column.
The type of @value must be convertible to the type of the
column.

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="list_store">
<parameter_description> A `GtkListStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A valid `GtkTreeIter` for the row being modified
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> column number to modify
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> new value for the cell
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_set_valuesv">
<description>
A variant of gtk_list_store_set_valist() which
takes the columns and values as two arrays, instead of
varargs. This function is mainly intended for
language-bindings and in case the number of columns to
change is not known until run-time.

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="list_store">
<parameter_description> A `GtkListStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A valid `GtkTreeIter` for the row being modified
</parameter_description>
</parameter>
<parameter name="columns">
<parameter_description> an array of column numbers
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> an array of GValues
</parameter_description>
</parameter>
<parameter name="n_values">
<parameter_description> the length of the @columns and @values arrays
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_store_swap">
<description>
Swaps @a and @b in @store. Note that this function only works with
unsorted stores.

Deprecated: 4.10: Use list models

</description>
<parameters>
<parameter name="store">
<parameter_description> A `GtkListStore`.
</parameter_description>
</parameter>
<parameter name="a">
<parameter_description> A `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> Another `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_view_get_enable_rubberband">
<description>
Returns whether rows can be selected by dragging with the mouse.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if rubberband selection is enabled
</return>
</function>

<function name="gtk_list_view_get_factory">
<description>
Gets the factory that's currently used to populate list items.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListView`
</parameter_description>
</parameter>
</parameters>
<return> The factory in use
</return>
</function>

<function name="gtk_list_view_get_header_factory">
<description>
Gets the factory that's currently used to populate section headers.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListView`
</parameter_description>
</parameter>
</parameters>
<return> The factory in use

</return>
</function>

<function name="gtk_list_view_get_model">
<description>
Gets the model that's currently used to read the items displayed.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListView`
</parameter_description>
</parameter>
</parameters>
<return> The model in use
</return>
</function>

<function name="gtk_list_view_get_show_separators">
<description>
Returns whether the list box should show separators
between rows.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the list box shows separators
</return>
</function>

<function name="gtk_list_view_get_single_click_activate">
<description>
Returns whether rows will be activated on single click and
selected on hover.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if rows are activated on single click
</return>
</function>

<function name="gtk_list_view_get_tab_behavior">
<description>
Gets the behavior set for the &lt;kbd&gt;Tab&lt;/kbd&gt; key.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListView`
</parameter_description>
</parameter>
</parameters>
<return> The behavior of the &lt;kbd&gt;Tab&lt;/kbd&gt; key

</return>
</function>

<function name="gtk_list_view_new">
<description>
Creates a new `GtkListView` that uses the given @factory for
mapping items to widgets.

The function takes ownership of the
arguments, so you can write code like
```c
list_view = gtk_list_view_new (create_model (),
gtk_builder_list_item_factory_new_from_resource (&quot;/resource.ui&quot;));
```


</description>
<parameters>
<parameter name="model">
<parameter_description> the model to use
</parameter_description>
</parameter>
<parameter name="factory">
<parameter_description> The factory to populate items with
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkListView` using the given @model and @factory
</return>
</function>

<function name="gtk_list_view_scroll_to">
<description>
Scrolls to the item at the given position and performs the actions
specified in @flags.

This function works no matter if the listview is shown or focused.
If it isn't, then the changes will take effect once that happens.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> The listview to scroll in
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> position of the item
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> actions to perform
</parameter_description>
</parameter>
<parameter name="scroll">
<parameter_description> details of how to perform
the scroll operation or %NULL to scroll into view 
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_view_set_enable_rubberband">
<description>
Sets whether selections can be changed by dragging with the mouse.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListView`
</parameter_description>
</parameter>
<parameter name="enable_rubberband">
<parameter_description> %TRUE to enable rubberband selection
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_view_set_factory">
<description>
Sets the `GtkListItemFactory` to use for populating list items.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListView`
</parameter_description>
</parameter>
<parameter name="factory">
<parameter_description> the factory to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_view_set_header_factory">
<description>
Sets the `GtkListItemFactory` to use for populating the
[class@Gtk.ListHeader] objects used in section headers.

If this factory is set to %NULL, the list will not show section headers.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListView`
</parameter_description>
</parameter>
<parameter name="factory">
<parameter_description> the factory to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_view_set_model">
<description>
Sets the model to use.

This must be a [iface@Gtk.SelectionModel] to use.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListView`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> the model to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_view_set_show_separators">
<description>
Sets whether the list box should show separators
between rows.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListView`
</parameter_description>
</parameter>
<parameter name="show_separators">
<parameter_description> %TRUE to show separators
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_view_set_single_click_activate">
<description>
Sets whether rows should be activated on single click and
selected on hover.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListView`
</parameter_description>
</parameter>
<parameter name="single_click_activate">
<parameter_description> %TRUE to activate items on single click
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_list_view_set_tab_behavior">
<description>
Sets the behavior of the &lt;kbd&gt;Tab&lt;/kbd&gt; and &lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;Tab&lt;/kbd&gt; keys.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkListView`
</parameter_description>
</parameter>
<parameter name="tab_behavior">
<parameter_description> The desired tab behavior
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_lock_button_get_permission">
<description>
Obtains the `GPermission` object that controls @button.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkLockButton`
</parameter_description>
</parameter>
</parameters>
<return> the `GPermission` of @button

</return>
</function>

<function name="gtk_lock_button_new">
<description>
Creates a new lock button which reflects the @permission.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="permission">
<parameter_description> a `GPermission`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkLockButton`

</return>
</function>

<function name="gtk_lock_button_set_permission">
<description>
Sets the `GPermission` object that controls @button.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkLockButton`
</parameter_description>
</parameter>
<parameter name="permission">
<parameter_description> a `GPermission` object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_map_list_model_get_model">
<description>
Gets the model that is currently being mapped or %NULL if none.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMapListModel`
</parameter_description>
</parameter>
</parameters>
<return> The model that gets mapped
</return>
</function>

<function name="gtk_map_list_model_has_map">
<description>
Checks if a map function is currently set on @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMapListModel`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a map function is set
</return>
</function>

<function name="gtk_map_list_model_new">
<description>
Creates a new `GtkMapListModel` for the given arguments.


</description>
<parameters>
<parameter name="model">
<parameter_description> The model to map
</parameter_description>
</parameter>
<parameter name="map_func">
<parameter_description> map function
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @map_func
</parameter_description>
</parameter>
<parameter name="user_destroy">
<parameter_description> destroy notifier for @user_data
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkMapListModel`
</return>
</function>

<function name="gtk_map_list_model_set_map_func">
<description>
Sets the function used to map items.

The function will be called whenever an item needs to be mapped
and must return the item to use for the given input item.

Note that `GtkMapListModel` may call this function multiple times
on the same item, because it may delete items it doesn't need anymore.

GTK makes no effort to ensure that @map_func conforms to the item type
of @self. It assumes that the caller knows what they are doing and the map
function returns items of the appropriate type.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMapListModel`
</parameter_description>
</parameter>
<parameter name="map_func">
<parameter_description> map function
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data passed to @map_func
</parameter_description>
</parameter>
<parameter name="user_destroy">
<parameter_description> destroy notifier for @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_map_list_model_set_model">
<description>
Sets the model to be mapped.

GTK makes no effort to ensure that @model conforms to the item type
expected by the map function. It assumes that the caller knows what
they are doing and have set up an appropriate map function.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMapListModel`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> The model to be mapped
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_controls_get_media_stream">
<description>
Gets the media stream managed by @controls or %NULL if none.


</description>
<parameters>
<parameter name="controls">
<parameter_description> a `GtkMediaControls`
</parameter_description>
</parameter>
</parameters>
<return> The media stream managed by @controls
</return>
</function>

<function name="gtk_media_controls_new">
<description>
Creates a new `GtkMediaControls` managing the @stream passed to it.


</description>
<parameters>
<parameter name="stream">
<parameter_description> a `GtkMediaStream` to manage
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkMediaControls`
</return>
</function>

<function name="gtk_media_controls_set_media_stream">
<description>
Sets the stream that is controlled by @controls.

</description>
<parameters>
<parameter name="controls">
<parameter_description> a `GtkMediaControls` widget
</parameter_description>
</parameter>
<parameter name="stream">
<parameter_description>  a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_file_clear">
<description>
Resets the media file to be empty.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaFile`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_file_get_file">
<description>
Returns the file that @self is currently playing from.

When @self is not playing or not playing from a file,
%NULL is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaFile`
</parameter_description>
</parameter>
</parameters>
<return> The currently playing file
</return>
</function>

<function name="gtk_media_file_get_input_stream">
<description>
Returns the stream that @self is currently playing from.

When @self is not playing or not playing from a stream,
%NULL is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaFile`
</parameter_description>
</parameter>
</parameters>
<return> The currently playing stream
</return>
</function>

<function name="gtk_media_file_new">
<description>
Creates a new empty media file.


</description>
<parameters>
</parameters>
<return> a new `GtkMediaFile`
</return>
</function>

<function name="gtk_media_file_new_for_file">
<description>
Creates a new media file to play @file.


</description>
<parameters>
<parameter name="file">
<parameter_description> The file to play
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkMediaFile` playing @file
</return>
</function>

<function name="gtk_media_file_new_for_filename">
<description>
Creates a new media file for the given filename.

This is a utility function that converts the given @filename
to a `GFile` and calls [ctor@Gtk.MediaFile.new_for_file].


</description>
<parameters>
<parameter name="filename">
<parameter_description> filename to open
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkMediaFile` playing @filename
</return>
</function>

<function name="gtk_media_file_new_for_input_stream">
<description>
Creates a new media file to play @stream.

If you want the resulting media to be seekable,
the stream should implement the `GSeekable` interface.


</description>
<parameters>
<parameter name="stream">
<parameter_description> The stream to play
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkMediaFile`
</return>
</function>

<function name="gtk_media_file_new_for_resource">
<description>
Creates a new new media file for the given resource.

This is a utility function that converts the given @resource
to a `GFile` and calls [ctor@Gtk.MediaFile.new_for_file].


</description>
<parameters>
<parameter name="resource_path">
<parameter_description> resource path to open
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkMediaFile` playing @resource_path
</return>
</function>

<function name="gtk_media_file_set_file">
<description>
Sets the `GtkMediaFile` to play the given file.

If any file is still playing, stop playing it.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaFile`
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description> the file to play
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_file_set_filename">
<description>
Sets the `GtkMediaFile to play the given file.

This is a utility function that converts the given @filename
to a `GFile` and calls [method@Gtk.MediaFile.set_file].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaFile`
</parameter_description>
</parameter>
<parameter name="filename">
<parameter_description> name of file to play
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_file_set_input_stream">
<description>
Sets the `GtkMediaFile` to play the given stream.

If anything is still playing, stop playing it.

Full control about the @stream is assumed for the duration of
playback. The stream will not be closed.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaFile`
</parameter_description>
</parameter>
<parameter name="stream">
<parameter_description> the stream to play from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_file_set_resource">
<description>
Sets the `GtkMediaFile to play the given resource.

This is a utility function that converts the given @resource_path
to a `GFile` and calls [method@Gtk.MediaFile.set_file].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaFile`
</parameter_description>
</parameter>
<parameter name="resource_path">
<parameter_description> path to resource to play
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_ended">
<description>
Pauses the media stream and marks it as ended.

This is a hint only, calls to [method@Gtk.MediaStream.play]
may still happen.

The media stream must be prepared when this function is called.

Deprecated: 4.4: Use [method@Gtk.MediaStream.stream_ended] instead

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_error">
<description>
Sets @self into an error state using a printf()-style format string.

This is a utility function that calls [method@Gtk.MediaStream.gerror].
See that function for details.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
<parameter name="domain">
<parameter_description> error domain
</parameter_description>
</parameter>
<parameter name="code">
<parameter_description> error code
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> printf()-style format for error message
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> parameters for message format
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_error_valist">
<description>
Sets @self into an error state using a printf()-style format string.

This is a utility function that calls [method@Gtk.MediaStream.gerror].
See that function for details.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
<parameter name="domain">
<parameter_description> error domain
</parameter_description>
</parameter>
<parameter name="code">
<parameter_description> error code
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> printf()-style format for error message
</parameter_description>
</parameter>
<parameter name="args">
<parameter_description> `va_list` of parameters for the message format
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_gerror">
<description>
Sets @self into an error state.

This will pause the stream (you can check for an error
via [method@Gtk.MediaStream.get_error] in your
GtkMediaStream.pause() implementation), abort pending
seeks and mark the stream as prepared.

if the stream is already in an error state, this call
will be ignored and the existing error will be retained.

To unset an error, the stream must be reset via a call to
[method@Gtk.MediaStream.unprepared].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> the `GError` to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_get_duration">
<description>
Gets the duration of the stream.

If the duration is not known, 0 will be returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return> the duration of the stream or 0 if not known.
</return>
</function>

<function name="gtk_media_stream_get_ended">
<description>
Returns whether the streams playback is finished.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if playback is finished
</return>
</function>

<function name="gtk_media_stream_get_error">
<description>
If the stream is in an error state, returns the `GError`
explaining that state.

Any type of error can be reported here depending on the
implementation of the media stream.

A media stream in an error cannot be operated on, calls
like [method@Gtk.MediaStream.play] or
[method@Gtk.MediaStream.seek] will not have any effect.

`GtkMediaStream` itself does not provide a way to unset
an error, but implementations may provide options. For example,
a [class@Gtk.MediaFile] will unset errors when a new source is
set, e.g. with [method@Gtk.MediaFile.set_file].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return> %NULL if not in an
error state or the `GError` of the stream
</return>
</function>

<function name="gtk_media_stream_get_loop">
<description>
Returns whether the stream is set to loop.

See [method@Gtk.MediaStream.set_loop] for details.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the stream should loop
</return>
</function>

<function name="gtk_media_stream_get_muted">
<description>
Returns whether the audio for the stream is muted.

See [method@Gtk.MediaStream.set_muted] for details.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the stream is muted
</return>
</function>

<function name="gtk_media_stream_get_playing">
<description>
Return whether the stream is currently playing.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the stream is playing
</return>
</function>

<function name="gtk_media_stream_get_timestamp">
<description>
Returns the current presentation timestamp in microseconds.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return> the timestamp in microseconds
</return>
</function>

<function name="gtk_media_stream_get_volume">
<description>
Returns the volume of the audio for the stream.

See [method@Gtk.MediaStream.set_volume] for details.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return> volume of the stream from 0.0 to 1.0
</return>
</function>

<function name="gtk_media_stream_has_audio">
<description>
Returns whether the stream has audio.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the stream has audio
</return>
</function>

<function name="gtk_media_stream_has_video">
<description>
Returns whether the stream has video.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the stream has video
</return>
</function>

<function name="gtk_media_stream_is_prepared">
<description>
Returns whether the stream has finished initializing.

At this point the existence of audio and video is known.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the stream is prepared
</return>
</function>

<function name="gtk_media_stream_is_seekable">
<description>
Checks if a stream may be seekable.

This is meant to be a hint. Streams may not allow seeking even if
this function returns %TRUE. However, if this function returns
%FALSE, streams are guaranteed to not be seekable and user interfaces
may hide controls that allow seeking.

It is allowed to call [method@Gtk.MediaStream.seek] on a non-seekable
stream, though it will not do anything.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the stream may support seeking
</return>
</function>

<function name="gtk_media_stream_is_seeking">
<description>
Checks if there is currently a seek operation going on.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a seek operation is ongoing.
</return>
</function>

<function name="gtk_media_stream_pause">
<description>
Pauses playback of the stream.

If the stream is not playing, do nothing.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_play">
<description>
Starts playing the stream.

If the stream is in error or already playing, do nothing.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_prepared">
<description>
Same as gtk_media_stream_stream_prepared().

Deprecated: 4.4: Use [method@Gtk.MediaStream.stream_prepared] instead.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
<parameter name="has_audio">
<parameter_description> %TRUE if the stream should advertise audio support
</parameter_description>
</parameter>
<parameter name="has_video">
<parameter_description> %TRUE if the stream should advertise video support
</parameter_description>
</parameter>
<parameter name="seekable">
<parameter_description> %TRUE if the stream should advertise seekability
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> The duration of the stream or 0 if unknown
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_realize">
<description>
Called by users to attach the media stream to a `GdkSurface` they manage.

The stream can then access the resources of @surface for its
rendering purposes. In particular, media streams might want to
create a `GdkGLContext` or sync to the `GdkFrameClock`.

Whoever calls this function is responsible for calling
[method@Gtk.MediaStream.unrealize] before either the stream
or @surface get destroyed.

Multiple calls to this function may happen from different
users of the video, even with the same @surface. Each of these
calls must be followed by its own call to
[method@Gtk.MediaStream.unrealize].

It is not required to call this function to make a media stream work.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
<parameter name="surface">
<parameter_description> a `GdkSurface`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_seek">
<description>
Start a seek operation on @self to @timestamp.

If @timestamp is out of range, it will be clamped.

Seek operations may not finish instantly. While a
seek operation is in process, the [property@Gtk.MediaStream:seeking]
property will be set.

When calling gtk_media_stream_seek() during an
ongoing seek operation, the new seek will override
any pending seek.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> timestamp to seek to.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_seek_failed">
<description>
Ends a seek operation started via GtkMediaStream.seek() as a failure.

This will not cause an error on the stream and will assume that
playback continues as if no seek had happened.

See [method@Gtk.MediaStream.seek_success] for the other way of
ending a seek.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_seek_success">
<description>
Ends a seek operation started via GtkMediaStream.seek() successfully.

This function will unset the GtkMediaStream:ended property
if it was set.

See [method@Gtk.MediaStream.seek_failed] for the other way of
ending a seek.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_set_loop">
<description>
Sets whether the stream should loop.

In this case, it will attempt to restart playback
from the beginning instead of stopping at the end.

Not all streams may support looping, in particular
non-seekable streams. Those streams will ignore the
loop setting and just end.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
<parameter name="loop">
<parameter_description> %TRUE if the stream should loop
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_set_muted">
<description>
Sets whether the audio stream should be muted.

Muting a stream will cause no audio to be played, but it
does not modify the volume. This means that muting and
then unmuting the stream will restore the volume settings.

If the stream has no audio, calling this function will
still work but it will not have an audible effect.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
<parameter name="muted">
<parameter_description> %TRUE if the stream should be muted
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_set_playing">
<description>
Starts or pauses playback of the stream.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
<parameter name="playing">
<parameter_description> whether to start or pause playback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_set_volume">
<description>
Sets the volume of the audio stream.

This function call will work even if the stream is muted.

The given @volume should range from 0.0 for silence to 1.0
for as loud as possible. Values outside of this range will
be clamped to the nearest value.

If the stream has no audio or is muted, calling this function
will still work but it will not have an immediate audible effect.
When the stream is unmuted, the new volume setting will take effect.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
<parameter name="volume">
<parameter_description> New volume of the stream from 0.0 to 1.0
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_stream_ended">
<description>
Pauses the media stream and marks it as ended.

This is a hint only, calls to [method@Gtk.MediaStream.play]
may still happen.

The media stream must be prepared when this function is called.

Since: 4.4

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_stream_prepared">
<description>
Called by `GtkMediaStream` implementations to advertise the stream
being ready to play and providing details about the stream.

Note that the arguments are hints. If the stream implementation
cannot determine the correct values, it is better to err on the
side of caution and return %TRUE. User interfaces will use those
values to determine what controls to show.

This function may not be called again until the stream has been
reset via [method@Gtk.MediaStream.stream_unprepared].

Since: 4.4

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
<parameter name="has_audio">
<parameter_description> %TRUE if the stream should advertise audio support
</parameter_description>
</parameter>
<parameter name="has_video">
<parameter_description> %TRUE if the stream should advertise video support
</parameter_description>
</parameter>
<parameter name="seekable">
<parameter_description> %TRUE if the stream should advertise seekability
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> The duration of the stream or 0 if unknown
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_stream_unprepared">
<description>
Resets a given media stream implementation.

[method@Gtk.MediaStream.stream_prepared] can then be called again.

This function will also reset any error state the stream was in.

Since: 4.4

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_unprepared">
<description>
Same as gtk_media_stream_stream_unprepared().

Deprecated: 4.4: Use [method@Gtk.MediaStream.stream_unprepared] instead.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_unrealize">
<description>
Undoes a previous call to gtk_media_stream_realize().

This causes the stream to release all resources it had
allocated from @surface.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream` previously realized
</parameter_description>
</parameter>
<parameter name="surface">
<parameter_description> the `GdkSurface` the stream was realized with
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_media_stream_update">
<description>
Media stream implementations should regularly call this
function to update the timestamp reported by the stream.

It is up to implementations to call this at the frequency
they deem appropriate.

The media stream must be prepared when this function is called.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the new timestamp
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_menu_button_get_active">
<description>
Returns whether the menu button is active.

Since: 4.10

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the button is active

</return>
</function>

<function name="gtk_menu_button_get_always_show_arrow">
<description>
Gets whether to show a dropdown arrow even when using an icon or a custom
child.

Since: 4.4

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
</parameters>
<return> whether to show a dropdown arrow even when using an icon or a custom
child.

</return>
</function>

<function name="gtk_menu_button_get_can_shrink">
<description>
Retrieves whether the button can be smaller than the natural
size of its contents.

Since: 4.12

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a button
</parameter_description>
</parameter>
</parameters>
<return> true if the button can shrink, and false otherwise

</return>
</function>

<function name="gtk_menu_button_get_child">
<description>
Gets the child widget of @menu_button.

Since: 4.6

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @menu_button

</return>
</function>

<function name="gtk_menu_button_get_direction">
<description>
Returns the direction the popup will be pointing at when popped up.


</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkArrowType` value
</return>
</function>

<function name="gtk_menu_button_get_has_frame">
<description>
Returns whether the button has a frame.


</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the button has a frame
</return>
</function>

<function name="gtk_menu_button_get_icon_name">
<description>
Gets the name of the icon shown in the button.


</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
</parameters>
<return> the name of the icon shown in the button
</return>
</function>

<function name="gtk_menu_button_get_label">
<description>
Gets the label shown in the button


</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
</parameters>
<return> the label shown in the button
</return>
</function>

<function name="gtk_menu_button_get_menu_model">
<description>
Returns the `GMenuModel` used to generate the popup.


</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
</parameters>
<return> a `GMenuModel`
</return>
</function>

<function name="gtk_menu_button_get_popover">
<description>
Returns the `GtkPopover` that pops out of the button.

If the button is not using a `GtkPopover`, this function
returns %NULL.


</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkPopover` or %NULL
</return>
</function>

<function name="gtk_menu_button_get_primary">
<description>
Returns whether the menu button acts as a primary menu.

Since: 4.4

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the button is a primary menu

</return>
</function>

<function name="gtk_menu_button_get_use_underline">
<description>
Returns whether an embedded underline in the text indicates a
mnemonic.


</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE whether an embedded underline in the text indicates
the mnemonic accelerator keys.
</return>
</function>

<function name="gtk_menu_button_new">
<description>
Creates a new `GtkMenuButton` widget with downwards-pointing
arrow as the only child.

You can replace the child widget with another `GtkWidget`
should you wish to.


</description>
<parameters>
</parameters>
<return> The newly created `GtkMenuButton`
</return>
</function>

<function name="gtk_menu_button_popdown">
<description>
Dismiss the menu.

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_menu_button_popup">
<description>
Pop up the menu.

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_menu_button_set_active">
<description>
Sets whether the menu button is active.

Since: 4.10

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
<parameter name="active">
<parameter_description> whether the menu button is active
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_menu_button_set_always_show_arrow">
<description>
Sets whether to show a dropdown arrow even when using an icon or a custom
child.

Since: 4.4

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
<parameter name="always_show_arrow">
<parameter_description> whether to show a dropdown arrow even when using an icon
or a custom child
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_menu_button_set_can_shrink">
<description>
Sets whether the button size can be smaller than the natural size of
its contents.

For text buttons, setting @can_shrink to true will ellipsize the label.

For icon buttons, this function has no effect.

Since: 4.12

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a menu button
</parameter_description>
</parameter>
<parameter name="can_shrink">
<parameter_description> whether the button can shrink
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_menu_button_set_child">
<description>
Sets the child widget of @menu_button.

Setting a child resets [property@Gtk.MenuButton:label] and
[property@Gtk.MenuButton:icon-name].

If [property@Gtk.MenuButton:always-show-arrow] is set to `TRUE` and
[property@Gtk.MenuButton:direction] is not `GTK_ARROW_NONE`, a dropdown arrow
will be shown next to the child.

Since: 4.6

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_menu_button_set_create_popup_func">
<description>
Sets @func to be called when a popup is about to be shown.

@func should use one of

- [method@Gtk.MenuButton.set_popover]
- [method@Gtk.MenuButton.set_menu_model]

to set a popup for @menu_button.
If @func is non-%NULL, @menu_button will always be sensitive.

Using this function will not reset the menu widget attached to
@menu_button. Instead, this can be done manually in @func.

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> function to call when a popup is about to
be shown, but none has been provided via other means, or %NULL
to reset to default behavior.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data to pass to @func.
</parameter_description>
</parameter>
<parameter name="destroy_notify">
<parameter_description> destroy notify for @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_menu_button_set_direction">
<description>
Sets the direction in which the popup will be popped up.

If the button is automatically populated with an arrow icon,
its direction will be changed to match.

If the does not fit in the available space in the given direction,
GTK will its best to keep it inside the screen and fully visible.

If you pass %GTK_ARROW_NONE for a @direction, the popup will behave
as if you passed %GTK_ARROW_DOWN (although you won’t see any arrows).

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> a `GtkArrowType`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_menu_button_set_has_frame">
<description>
Sets the style of the button.

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
<parameter name="has_frame">
<parameter_description> whether the button should have a visible frame
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_menu_button_set_icon_name">
<description>
Sets the name of an icon to show inside the menu button.

Setting icon name resets [property@Gtk.MenuButton:label] and
[property@Gtk.MenuButton:child].

If [property@Gtk.MenuButton:always-show-arrow] is set to `TRUE` and
[property@Gtk.MenuButton:direction] is not `GTK_ARROW_NONE`, a dropdown arrow
will be shown next to the icon.

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
<parameter name="icon_name">
<parameter_description> the icon name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_menu_button_set_label">
<description>
Sets the label to show inside the menu button.

Setting a label resets [property@Gtk.MenuButton:icon-name] and
[property@Gtk.MenuButton:child].

If [property@Gtk.MenuButton:direction] is not `GTK_ARROW_NONE`, a dropdown
arrow will be shown next to the label.

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
<parameter name="label">
<parameter_description> the label
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_menu_button_set_menu_model">
<description>
Sets the `GMenuModel` from which the popup will be constructed.

If @menu_model is %NULL, the button is disabled.

A [class@Gtk.Popover] will be created from the menu model with
[ctor@Gtk.PopoverMenu.new_from_model]. Actions will be connected
as documented for this function.

If [property@Gtk.MenuButton:popover] is already set, it will be
dissociated from the @menu_button, and the property is set to %NULL.

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
<parameter name="menu_model">
<parameter_description> a `GMenuModel`, or %NULL to unset and disable the
button
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_menu_button_set_popover">
<description>
Sets the `GtkPopover` that will be popped up when the @menu_button is clicked.

If @popover is %NULL, the button is disabled.

If [property@Gtk.MenuButton:menu-model] is set, the menu model is dissociated
from the @menu_button, and the property is set to %NULL.

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
<parameter name="popover">
<parameter_description> a `GtkPopover`, or %NULL to unset and disable the button
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_menu_button_set_primary">
<description>
Sets whether menu button acts as a primary menu.

Primary menus can be opened with the &lt;kbd&gt;F10&lt;/kbd&gt; key.

Since: 4.4

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
<parameter name="primary">
<parameter_description> whether the menubutton should act as a primary menu
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_menu_button_set_use_underline">
<description>
If true, an underline in the text indicates a mnemonic.

</description>
<parameters>
<parameter name="menu_button">
<parameter_description> a `GtkMenuButton`
</parameter_description>
</parameter>
<parameter name="use_underline">
<parameter_description> %TRUE if underlines in the text indicate mnemonics
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_message_dialog_format_secondary_markup">
<description>
Sets the secondary text of the message dialog.

The @message_format is assumed to contain Pango markup.

Due to an oversight, this function does not escape special
XML characters like [ctor@Gtk.MessageDialog.new_with_markup]
does. Thus, if the arguments may contain special XML characters,
you should use g_markup_printf_escaped() to escape it.

```c
char *msg;

msg = g_markup_printf_escaped (message_format, ...);
gtk_message_dialog_format_secondary_markup (message_dialog,
&quot;%s&quot;, msg);
g_free (msg);
```

Deprecated: 4.10: Use [class@Gtk.AlertDialog] instead

</description>
<parameters>
<parameter name="message_dialog">
<parameter_description> a `GtkMessageDialog`
</parameter_description>
</parameter>
<parameter name="message_format">
<parameter_description> printf()-style string with Pango markup
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments for @message_format
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_message_dialog_format_secondary_text">
<description>
Sets the secondary text of the message dialog.

Deprecated: 4.10: Use [class@Gtk.AlertDialog] instead

</description>
<parameters>
<parameter name="message_dialog">
<parameter_description> a `GtkMessageDialog`
</parameter_description>
</parameter>
<parameter name="message_format">
<parameter_description> printf()-style format string
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments for @message_format
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_message_dialog_get_message_area">
<description>
Returns the message area of the dialog.

This is the box where the dialog’s primary and secondary labels
are packed. You can add your own extra content to that box and it
will appear below those labels. See [method@Gtk.Dialog.get_content_area]
for the corresponding function in the parent [class@Gtk.Dialog].

Deprecated: 4.10: Use [class@Gtk.AlertDialog] instead

</description>
<parameters>
<parameter name="message_dialog">
<parameter_description> a `GtkMessageDialog`
</parameter_description>
</parameter>
</parameters>
<return> A `GtkBox` corresponding to the
“message area” in the @message_dialog

</return>
</function>

<function name="gtk_message_dialog_new">
<description>
Creates a new message dialog.

This is a simple dialog with some text the user may want to see.
When the user clicks a button a “response” signal is emitted with
response IDs from [enum@Gtk.ResponseType]. See [class@Gtk.Dialog]
for more details.

Deprecated: 4.10: Use [class@Gtk.AlertDialog] instead

</description>
<parameters>
<parameter name="parent">
<parameter_description> transient parent
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> type of message
</parameter_description>
</parameter>
<parameter name="buttons">
<parameter_description> set of buttons to use
</parameter_description>
</parameter>
<parameter name="message_format">
<parameter_description> printf()-style format string
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments for @message_format
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkMessageDialog`

</return>
</function>

<function name="gtk_message_dialog_new_with_markup">
<description>
Creates a new message dialog.

This is a simple dialog with some text that is marked up with
Pango markup. When the user clicks a button a “response” signal
is emitted with response IDs from [enum@Gtk.ResponseType]. See
[class@Gtk.Dialog] for more details.

Special XML characters in the printf() arguments passed to this
function will automatically be escaped as necessary.
(See g_markup_printf_escaped() for how this is implemented.)
Usually this is what you want, but if you have an existing
Pango markup string that you want to use literally as the
label, then you need to use [method@Gtk.MessageDialog.set_markup]
instead, since you can’t pass the markup string either
as the format (it might contain “%” characters) or as a string
argument.

```c
GtkWidget *dialog;
GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
dialog = gtk_message_dialog_new (parent_window,
flags,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
NULL);
gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (dialog),
markup);
```

Deprecated: 4.10: Use [class@Gtk.AlertDialog] instead

</description>
<parameters>
<parameter name="parent">
<parameter_description> transient parent
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> type of message
</parameter_description>
</parameter>
<parameter name="buttons">
<parameter_description> set of buttons to use
</parameter_description>
</parameter>
<parameter name="message_format">
<parameter_description> printf()-style format string
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments for @message_format
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkMessageDialog`

</return>
</function>

<function name="gtk_message_dialog_set_markup">
<description>
Sets the text of the message dialog.

Deprecated: 4.10: Use [class@Gtk.AlertDialog] instead

</description>
<parameters>
<parameter name="message_dialog">
<parameter_description> a `GtkMessageDialog`
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> string with Pango markup
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_mnemonic_action_get">
<description>
Gets the mnemonic action.

This is an action that calls gtk_widget_mnemonic_activate()
on the given widget upon activation.


</description>
<parameters>
</parameters>
<return> The mnemonic action
</return>
</function>

<function name="gtk_mnemonic_trigger_get_keyval">
<description>
Gets the keyval that must be pressed to succeed triggering @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a mnemonic `GtkShortcutTrigger`
</parameter_description>
</parameter>
</parameters>
<return> the keyval
</return>
</function>

<function name="gtk_mnemonic_trigger_new">
<description>
Creates a `GtkShortcutTrigger` that will trigger whenever the key with
the given @keyval is pressed and mnemonics have been activated.

Mnemonics are activated by calling code when a key event with the right
modifiers is detected.


</description>
<parameters>
<parameter name="keyval">
<parameter_description> The keyval to trigger for
</parameter_description>
</parameter>
</parameters>
<return> A new `GtkShortcutTrigger`
</return>
</function>

<function name="gtk_model_button_new">
<description>
Creates a new GtkModelButton.


</description>
<parameters>
</parameters>
<return> the newly created GtkModelButton widget
</return>
</function>

<function name="gtk_mount_operation_get_display">
<description>
Gets the display on which windows of the `GtkMountOperation`
will be shown.


</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkMountOperation`
</parameter_description>
</parameter>
</parameters>
<return> the display on which windows of @op are shown
</return>
</function>

<function name="gtk_mount_operation_get_parent">
<description>
Gets the transient parent used by the `GtkMountOperation`.


</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkMountOperation`
</parameter_description>
</parameter>
</parameters>
<return> the transient parent for windows shown by @op
</return>
</function>

<function name="gtk_mount_operation_is_showing">
<description>
Returns whether the `GtkMountOperation` is currently displaying
a window.


</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkMountOperation`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @op is currently displaying a window
</return>
</function>

<function name="gtk_mount_operation_new">
<description>
Creates a new `GtkMountOperation`.


</description>
<parameters>
<parameter name="parent">
<parameter_description> transient parent of the window
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkMountOperation`
</return>
</function>

<function name="gtk_mount_operation_set_display">
<description>
Sets the display to show windows of the `GtkMountOperation` on.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkMountOperation`
</parameter_description>
</parameter>
<parameter name="display">
<parameter_description> a `GdkDisplay`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_mount_operation_set_parent">
<description>
Sets the transient parent for windows shown by the
`GtkMountOperation`.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkMountOperation`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> transient parent of the window
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_multi_filter_append">
<description>
Adds a @filter to @self to use for matching.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMultiFilter`
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> A new filter to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_multi_filter_remove">
<description>
Removes the filter at the given @position from the list of filters used
by @self.

If @position is larger than the number of filters, nothing happens and
the function returns.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMultiFilter`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position of filter to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_multi_selection_get_model">
<description>
Returns the underlying model of @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMultiSelection`
</parameter_description>
</parameter>
</parameters>
<return> the underlying model
</return>
</function>

<function name="gtk_multi_selection_new">
<description>
Creates a new selection to handle @model.


</description>
<parameters>
<parameter name="model">
<parameter_description> the `GListModel` to manage
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkMultiSelection`
</return>
</function>

<function name="gtk_multi_selection_set_model">
<description>
Sets the model that @self should wrap.

If @model is %NULL, @self will be empty.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMultiSelection`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> A `GListModel` to wrap
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_multi_sorter_append">
<description>
Add @sorter to @self to use for sorting at the end.

@self will consult all existing sorters before it will
sort with the given @sorter.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMultiSorter`
</parameter_description>
</parameter>
<parameter name="sorter">
<parameter_description> a sorter to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_multi_sorter_new">
<description>
Creates a new multi sorter.

This sorter compares items by trying each of the sorters
in turn, until one returns non-zero. In particular, if
no sorter has been added to it, it will always compare
items as equal.


</description>
<parameters>
</parameters>
<return> a new `GtkMultiSorter`
</return>
</function>

<function name="gtk_multi_sorter_remove">
<description>
Removes the sorter at the given @position from the list of sorter
used by @self.

If @position is larger than the number of sorters, nothing happens.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkMultiSorter`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position of sorter to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_named_action_get_action_name">
<description>
Returns the name of the action that will be activated.


</description>
<parameters>
<parameter name="self">
<parameter_description> a named action
</parameter_description>
</parameter>
</parameters>
<return> the name of the action to activate
</return>
</function>

<function name="gtk_named_action_new">
<description>
Creates an action that when activated, activates
the named action on the widget.

It also passes the given arguments to it.

See [method@Gtk.Widget.insert_action_group] for
how to add actions to widgets.


</description>
<parameters>
<parameter name="name">
<parameter_description> the detailed name of the action
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkShortcutAction`
</return>
</function>

<function name="gtk_native_dialog_destroy">
<description>
Destroys a dialog.

When a dialog is destroyed, it will break any references it holds
to other objects.

If it is visible it will be hidden and any underlying window system
resources will be destroyed.

Note that this does not release any reference to the object (as opposed
to destroying a `GtkWindow`) because there is no reference from the
windowing system to the `GtkNativeDialog`.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNativeDialog`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_native_dialog_get_modal">
<description>
Returns whether the dialog is modal.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNativeDialog`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the dialog is set to be modal
</return>
</function>

<function name="gtk_native_dialog_get_title">
<description>
Gets the title of the `GtkNativeDialog`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNativeDialog`
</parameter_description>
</parameter>
</parameters>
<return> the title of the dialog, or %NULL if none has
been set explicitly. The returned string is owned by the widget
and must not be modified or freed.
</return>
</function>

<function name="gtk_native_dialog_get_transient_for">
<description>
Fetches the transient parent for this window.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNativeDialog`
</parameter_description>
</parameter>
</parameters>
<return> the transient parent for this window,
or %NULL if no transient parent has been set.
</return>
</function>

<function name="gtk_native_dialog_get_visible">
<description>
Determines whether the dialog is visible.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNativeDialog`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the dialog is visible
</return>
</function>

<function name="gtk_native_dialog_hide">
<description>
Hides the dialog if it is visible, aborting any interaction.

Once this is called the [signal@Gtk.NativeDialog::response] signal
will *not* be emitted until after the next call to
[method@Gtk.NativeDialog.show].

If the dialog is not visible this does nothing.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNativeDialog`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_native_dialog_set_modal">
<description>
Sets a dialog modal or non-modal.

Modal dialogs prevent interaction with other windows in the same
application. To keep modal dialogs on top of main application
windows, use [method@Gtk.NativeDialog.set_transient_for] to make
the dialog transient for the parent; most window managers will
then disallow lowering the dialog below the parent.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNativeDialog`
</parameter_description>
</parameter>
<parameter name="modal">
<parameter_description> whether the window is modal
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_native_dialog_set_title">
<description>
Sets the title of the `GtkNativeDialog.`

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNativeDialog`
</parameter_description>
</parameter>
<parameter name="title">
<parameter_description> title of the dialog
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_native_dialog_set_transient_for">
<description>
Dialog windows should be set transient for the main application
window they were spawned from.

This allows window managers to e.g. keep the dialog on top of the
main window, or center the dialog over the main window.

Passing %NULL for @parent unsets the current transient window.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNativeDialog`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> parent window
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_native_dialog_show">
<description>
Shows the dialog on the display.

When the user accepts the state of the dialog the dialog will
be automatically hidden and the [signal@Gtk.NativeDialog::response]
signal will be emitted.

Multiple calls while the dialog is visible will be ignored.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNativeDialog`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_native_get_for_surface">
<description>
Finds the `GtkNative` associated with the surface.


</description>
<parameters>
<parameter name="surface">
<parameter_description> a `GdkSurface`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkNative` that is associated with @surface
</return>
</function>

<function name="gtk_native_get_renderer">
<description>
Returns the renderer that is used for this `GtkNative`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNative`
</parameter_description>
</parameter>
</parameters>
<return> the renderer for @self
</return>
</function>

<function name="gtk_native_get_surface">
<description>
Returns the surface of this `GtkNative`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNative`
</parameter_description>
</parameter>
</parameters>
<return> the surface of @self
</return>
</function>

<function name="gtk_native_get_surface_transform">
<description>
Retrieves the surface transform of @self.

This is the translation from @self's surface coordinates into
@self's widget coordinates.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNative`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> return location for the x coordinate
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> return location for the y coordinate
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_native_realize">
<description>
Realizes a `GtkNative`.

This should only be used by subclasses.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNative`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_native_unrealize">
<description>
Unrealizes a `GtkNative`.

This should only be used by subclasses.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNative`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_never_trigger_get">
<description>
Gets the never trigger.

This is a singleton for a trigger that never triggers.
Use this trigger instead of %NULL because it implements
all virtual functions.


</description>
<parameters>
</parameters>
<return> The never trigger
</return>
</function>

<function name="gtk_no_selection_get_model">
<description>
Gets the model that @self is wrapping.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNoSelection`
</parameter_description>
</parameter>
</parameters>
<return> The model being wrapped
</return>
</function>

<function name="gtk_no_selection_new">
<description>
Creates a new selection to handle @model.


</description>
<parameters>
<parameter name="model">
<parameter_description> the `GListModel` to manage
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkNoSelection`
</return>
</function>

<function name="gtk_no_selection_set_model">
<description>
Sets the model that @self should wrap.

If @model is %NULL, this model will be empty.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNoSelection`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> A `GListModel` to wrap
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_append_page">
<description>
Appends a page to @notebook.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to use as the contents of the page
</parameter_description>
</parameter>
<parameter name="tab_label">
<parameter_description> the `GtkWidget` to be used as the label
for the page, or %NULL to use the default label, “page N”
</parameter_description>
</parameter>
</parameters>
<return> the index (starting from 0) of the appended
page in the notebook, or -1 if function fails
</return>
</function>

<function name="gtk_notebook_append_page_menu">
<description>
Appends a page to @notebook, specifying the widget to use as the
label in the popup menu.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to use as the contents of the page
</parameter_description>
</parameter>
<parameter name="tab_label">
<parameter_description> the `GtkWidget` to be used as the label
for the page, or %NULL to use the default label, “page N”
</parameter_description>
</parameter>
<parameter name="menu_label">
<parameter_description> the widget to use as a label for the
page-switch menu, if that is enabled. If %NULL, and @tab_label
is a `GtkLabel` or %NULL, then the menu label will be a newly
created label with the same text as @tab_label; if @tab_label
is not a `GtkLabel`, @menu_label must be specified if the
page-switch menu is to be used.
</parameter_description>
</parameter>
</parameters>
<return> the index (starting from 0) of the appended
page in the notebook, or -1 if function fails
</return>
</function>

<function name="gtk_notebook_detach_tab">
<description>
Removes the child from the notebook.

This function is very similar to [method@Gtk.Notebook.remove_page],
but additionally informs the notebook that the removal
is happening as part of a tab DND operation, which should
not be cancelled.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_get_action_widget">
<description>
Gets one of the action widgets.

See [method@Gtk.Notebook.set_action_widget].


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="pack_type">
<parameter_description> pack type of the action widget to receive
</parameter_description>
</parameter>
</parameters>
<return> The action widget
with the given @pack_type or %NULL when this action
widget has not been set
</return>
</function>

<function name="gtk_notebook_get_current_page">
<description>
Returns the page number of the current page.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
</parameters>
<return> the index (starting from 0) of the current
page in the notebook. If the notebook has no pages,
then -1 will be returned.
</return>
</function>

<function name="gtk_notebook_get_group_name">
<description>
Gets the current group name for @notebook.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
</parameters>
<return> the group name,
or %NULL if none is set
</return>
</function>

<function name="gtk_notebook_get_menu_label">
<description>
Retrieves the menu label widget of the page containing @child.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a widget contained in a page of @notebook
</parameter_description>
</parameter>
</parameters>
<return> the menu label, or %NULL
if the notebook page does not have a menu label other than
the default (the tab label).
</return>
</function>

<function name="gtk_notebook_get_menu_label_text">
<description>
Retrieves the text of the menu label for the page containing
@child.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget of a page of the notebook.
</parameter_description>
</parameter>
</parameters>
<return> the text of the tab label, or %NULL if
the widget does not have a menu label other than the default
menu label, or the menu label widget is not a `GtkLabel`.
The string is owned by the widget and must not be freed.
</return>
</function>

<function name="gtk_notebook_get_n_pages">
<description>
Gets the number of pages in a notebook.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
</parameters>
<return> the number of pages in the notebook
</return>
</function>

<function name="gtk_notebook_get_nth_page">
<description>
Returns the child widget contained in page number @page_num.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="page_num">
<parameter_description> the index of a page in the notebook, or -1
to get the last page
</parameter_description>
</parameter>
</parameters>
<return> the child widget, or %NULL if @page_num
is out of bounds
</return>
</function>

<function name="gtk_notebook_get_page">
<description>
Returns the `GtkNotebookPage` for @child.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child of @notebook
</parameter_description>
</parameter>
</parameters>
<return> the `GtkNotebookPage` for @child
</return>
</function>

<function name="gtk_notebook_get_pages">
<description>
Returns a `GListModel` that contains the pages of the notebook.

This can be used to keep an up-to-date view. The model also
implements [iface@Gtk.SelectionModel] and can be used to track
and modify the visible page.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
</parameters>
<return> a
`GListModel` for the notebook's children
</return>
</function>

<function name="gtk_notebook_get_scrollable">
<description>
Returns whether the tab label area has arrows for scrolling.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if arrows for scrolling are present
</return>
</function>

<function name="gtk_notebook_get_show_border">
<description>
Returns whether a bevel will be drawn around the notebook pages.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the bevel is drawn
</return>
</function>

<function name="gtk_notebook_get_show_tabs">
<description>
Returns whether the tabs of the notebook are shown.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the tabs are shown
</return>
</function>

<function name="gtk_notebook_get_tab_detachable">
<description>
Returns whether the tab contents can be detached from @notebook.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the tab is detachable.
</return>
</function>

<function name="gtk_notebook_get_tab_label">
<description>
Returns the tab label widget for the page @child.

%NULL is returned if @child is not in @notebook or
if no tab label has specifically been set for @child.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the page
</parameter_description>
</parameter>
</parameters>
<return> the tab label
</return>
</function>

<function name="gtk_notebook_get_tab_label_text">
<description>
Retrieves the text of the tab label for the page containing
@child.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a widget contained in a page of @notebook
</parameter_description>
</parameter>
</parameters>
<return> the text of the tab label, or %NULL if
the tab label widget is not a `GtkLabel`. The string is owned
by the widget and must not be freed.
</return>
</function>

<function name="gtk_notebook_get_tab_pos">
<description>
Gets the edge at which the tabs are drawn.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
</parameters>
<return> the edge at which the tabs are drawn
</return>
</function>

<function name="gtk_notebook_get_tab_reorderable">
<description>
Gets whether the tab can be reordered via drag and drop or not.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the tab is reorderable.
</return>
</function>

<function name="gtk_notebook_insert_page">
<description>
Insert a page into @notebook at the given position.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to use as the contents of the page
</parameter_description>
</parameter>
<parameter name="tab_label">
<parameter_description> the `GtkWidget` to be used as the label
for the page, or %NULL to use the default label, “page N”
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the index (starting at 0) at which to insert the page,
or -1 to append the page after all other pages
</parameter_description>
</parameter>
</parameters>
<return> the index (starting from 0) of the inserted
page in the notebook, or -1 if function fails
</return>
</function>

<function name="gtk_notebook_insert_page_menu">
<description>
Insert a page into @notebook at the given position, specifying
the widget to use as the label in the popup menu.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to use as the contents of the page
</parameter_description>
</parameter>
<parameter name="tab_label">
<parameter_description> the `GtkWidget` to be used as the label
for the page, or %NULL to use the default label, “page N”
</parameter_description>
</parameter>
<parameter name="menu_label">
<parameter_description> the widget to use as a label for the
page-switch menu, if that is enabled. If %NULL, and @tab_label
is a `GtkLabel` or %NULL, then the menu label will be a newly
created label with the same text as @tab_label; if @tab_label
is not a `GtkLabel`, @menu_label must be specified if the
page-switch menu is to be used.
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the index (starting at 0) at which to insert the page,
or -1 to append the page after all other pages.
</parameter_description>
</parameter>
</parameters>
<return> the index (starting from 0) of the inserted
page in the notebook
</return>
</function>

<function name="gtk_notebook_new">
<description>
Creates a new `GtkNotebook` widget with no pages.


</description>
<parameters>
</parameters>
<return> the newly created `GtkNotebook`
</return>
</function>

<function name="gtk_notebook_next_page">
<description>
Switches to the next page.

Nothing happens if the current page is the last page.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_page_get_child">
<description>
Returns the notebook child to which @page belongs.


</description>
<parameters>
<parameter name="page">
<parameter_description> a `GtkNotebookPage`
</parameter_description>
</parameter>
</parameters>
<return> the child to which @page belongs
</return>
</function>

<function name="gtk_notebook_page_num">
<description>
Finds the index of the page which contains the given child
widget.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the index of the page containing @child, or
-1 if @child is not in the notebook
</return>
</function>

<function name="gtk_notebook_popup_disable">
<description>
Disables the popup menu.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_popup_enable">
<description>
Enables the popup menu.

If the user clicks with the right mouse button on the tab labels,
a menu with all the pages will be popped up.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_prepend_page">
<description>
Prepends a page to @notebook.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to use as the contents of the page
</parameter_description>
</parameter>
<parameter name="tab_label">
<parameter_description> the `GtkWidget` to be used as the label
for the page, or %NULL to use the default label, “page N”
</parameter_description>
</parameter>
</parameters>
<return> the index (starting from 0) of the prepended
page in the notebook, or -1 if function fails
</return>
</function>

<function name="gtk_notebook_prepend_page_menu">
<description>
Prepends a page to @notebook, specifying the widget to use as the
label in the popup menu.


</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to use as the contents of the page
</parameter_description>
</parameter>
<parameter name="tab_label">
<parameter_description> the `GtkWidget` to be used as the label
for the page, or %NULL to use the default label, “page N”
</parameter_description>
</parameter>
<parameter name="menu_label">
<parameter_description> the widget to use as a label for the
page-switch menu, if that is enabled. If %NULL, and @tab_label
is a `GtkLabel` or %NULL, then the menu label will be a newly
created label with the same text as @tab_label; if @tab_label
is not a `GtkLabel`, @menu_label must be specified if the
page-switch menu is to be used.
</parameter_description>
</parameter>
</parameters>
<return> the index (starting from 0) of the prepended
page in the notebook, or -1 if function fails
</return>
</function>

<function name="gtk_notebook_prev_page">
<description>
Switches to the previous page.

Nothing happens if the current page is the first page.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_remove_page">
<description>
Removes a page from the notebook given its index
in the notebook.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="page_num">
<parameter_description> the index of a notebook page, starting
from 0. If -1, the last page will be removed.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_reorder_child">
<description>
Reorders the page containing @child, so that it appears in position
@position.

If @position is greater than or equal to the number of children in
the list or negative, @child will be moved to the end of the list.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child to move
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the new position, or -1 to move to the end
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_set_action_widget">
<description>
Sets @widget as one of the action widgets.

Depending on the pack type the widget will be placed before
or after the tabs. You can use a `GtkBox` if you need to pack
more than one widget on the same side.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="pack_type">
<parameter_description> pack type of the action widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_set_current_page">
<description>
Switches to the page number @page_num.

Note that due to historical reasons, GtkNotebook refuses
to switch to a page unless the child widget is visible.
Therefore, it is recommended to show child widgets before
adding them to a notebook.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="page_num">
<parameter_description> index of the page to switch to, starting from 0.
If negative, the last page will be used. If greater
than the number of pages in the notebook, nothing
will be done.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_set_group_name">
<description>
Sets a group name for @notebook.

Notebooks with the same name will be able to exchange tabs
via drag and drop. A notebook with a %NULL group name will
not be able to exchange tabs with any other notebook.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="group_name">
<parameter_description> the name of the notebook group,
or %NULL to unset it
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_set_menu_label">
<description>
Changes the menu label for the page containing @child.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
<parameter name="menu_label">
<parameter_description> the menu label, or %NULL for default
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_set_menu_label_text">
<description>
Creates a new label and sets it as the menu label of @child.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
<parameter name="menu_text">
<parameter_description> the label text
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_set_scrollable">
<description>
Sets whether the tab label area will have arrows for
scrolling if there are too many tabs to fit in the area.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="scrollable">
<parameter_description> %TRUE if scroll arrows should be added
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_set_show_border">
<description>
Sets whether a bevel will be drawn around the notebook pages.

This only has a visual effect when the tabs are not shown.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="show_border">
<parameter_description> %TRUE if a bevel should be drawn around the notebook
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_set_show_tabs">
<description>
Sets whether to show the tabs for the notebook or not.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="show_tabs">
<parameter_description> %TRUE if the tabs should be shown
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_set_tab_detachable">
<description>
Sets whether the tab can be detached from @notebook to another
notebook or widget.

Note that two notebooks must share a common group identifier
(see [method@Gtk.Notebook.set_group_name]) to allow automatic tabs
interchange between them.

If you want a widget to interact with a notebook through DnD
(i.e.: accept dragged tabs from it) it must be set as a drop
destination and accept the target “GTK_NOTEBOOK_TAB”. The notebook
will fill the selection with a GtkWidget** pointing to the child
widget that corresponds to the dropped tab.

Note that you should use [method@Gtk.Notebook.detach_tab] instead
of [method@Gtk.Notebook.remove_page] if you want to remove the tab
from the source notebook as part of accepting a drop. Otherwise,
the source notebook will think that the dragged tab was removed
from underneath the ongoing drag operation, and will initiate a
drag cancel animation.

```c
static void
on_drag_data_received (GtkWidget        *widget,
GdkDrop          *drop,
GtkSelectionData *data,
guint             time,
gpointer          user_data)
{
GtkDrag *drag;
GtkWidget *notebook;
GtkWidget **child;

drag = gtk_drop_get_drag (drop);
notebook = g_object_get_data (drag, &quot;gtk-notebook-drag-origin&quot;);
child = (void*) gtk_selection_data_get_data (data);

// process_widget (*child);

gtk_notebook_detach_tab (GTK_NOTEBOOK (notebook), *child);
}
```

If you want a notebook to accept drags from other widgets,
you will have to set your own DnD code to do it.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child `GtkWidget`
</parameter_description>
</parameter>
<parameter name="detachable">
<parameter_description> whether the tab is detachable or not
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_set_tab_label">
<description>
Changes the tab label for @child.

If %NULL is specified for @tab_label, then the page will
have the label “page N”.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the page
</parameter_description>
</parameter>
<parameter name="tab_label">
<parameter_description> the tab label widget to use, or %NULL
for default tab label
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_set_tab_label_text">
<description>
Creates a new label and sets it as the tab label for the page
containing @child.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the page
</parameter_description>
</parameter>
<parameter name="tab_text">
<parameter_description> the label text
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_set_tab_pos">
<description>
Sets the edge at which the tabs are drawn.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`.
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> the edge to draw the tabs at
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_notebook_set_tab_reorderable">
<description>
Sets whether the notebook tab can be reordered
via drag and drop or not.

</description>
<parameters>
<parameter name="notebook">
<parameter_description> a `GtkNotebook`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child `GtkWidget`
</parameter_description>
</parameter>
<parameter name="reorderable">
<parameter_description> whether the tab is reorderable or not
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_nothing_action_get">
<description>
Gets the nothing action.

This is an action that does nothing and where
activating it always fails.


</description>
<parameters>
</parameters>
<return> The nothing action
</return>
</function>

<function name="gtk_numeric_sorter_get_expression">
<description>
Gets the expression that is evaluated to obtain numbers from items.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNumericSorter`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkExpression`
</return>
</function>

<function name="gtk_numeric_sorter_get_sort_order">
<description>
Gets whether this sorter will sort smaller numbers first.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNumericSorter`
</parameter_description>
</parameter>
</parameters>
<return> the order of the numbers
</return>
</function>

<function name="gtk_numeric_sorter_new">
<description>
Creates a new numeric sorter using the given @expression.

Smaller numbers will be sorted first. You can call
[method@Gtk.NumericSorter.set_sort_order] to change this.


</description>
<parameters>
<parameter name="expression">
<parameter_description> The expression to evaluate
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkNumericSorter`
</return>
</function>

<function name="gtk_numeric_sorter_set_expression">
<description>
Sets the expression that is evaluated to obtain numbers from items.

Unless an expression is set on @self, the sorter will always
compare items as invalid.

The expression must have a return type that can be compared
numerically, such as %G_TYPE_INT or %G_TYPE_DOUBLE.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNumericSorter`
</parameter_description>
</parameter>
<parameter name="expression">
<parameter_description> a `GtkExpression`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_numeric_sorter_set_sort_order">
<description>
Sets whether to sort smaller numbers before larger ones.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkNumericSorter`
</parameter_description>
</parameter>
<parameter name="sort_order">
<parameter_description> whether to sort smaller numbers first
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_object_expression_get_object">
<description>
Gets the object that the expression evaluates to.


</description>
<parameters>
<parameter name="expression">
<parameter_description> an object `GtkExpression`
</parameter_description>
</parameter>
</parameters>
<return> the object, or `NULL`
</return>
</function>

<function name="gtk_object_expression_new">
<description>
Creates an expression evaluating to the given `object` with a weak reference.

Once the `object` is disposed, it will fail to evaluate.

This expression is meant to break reference cycles.

If you want to keep a reference to `object`, use [ctor@Gtk.ConstantExpression.new].


</description>
<parameters>
<parameter name="object">
<parameter_description> object to watch
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkExpression`
</return>
</function>

<function name="gtk_ordering_from_cmpfunc">
<description>
Converts the result of a `GCompareFunc` like strcmp() to a
`GtkOrdering` value.

Since: 4.2

</description>
<parameters>
<parameter name="cmpfunc_result">
<parameter_description> Result of a comparison function
</parameter_description>
</parameter>
</parameters>
<return> the corresponding `GtkOrdering`

</return>
</function>

<function name="gtk_orientable_get_orientation">
<description>
Retrieves the orientation of the @orientable.


</description>
<parameters>
<parameter name="orientable">
<parameter_description> a `GtkOrientable`
</parameter_description>
</parameter>
</parameters>
<return> the orientation of the @orientable
</return>
</function>

<function name="gtk_orientable_set_orientation">
<description>
Sets the orientation of the @orientable.

</description>
<parameters>
<parameter name="orientable">
<parameter_description> a `GtkOrientable`
</parameter_description>
</parameter>
<parameter name="orientation">
<parameter_description> the orientable’s new orientation
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_overlay_add_overlay">
<description>
Adds @widget to @overlay.

The widget will be stacked on top of the main widget
added with [method@Gtk.Overlay.set_child].

The position at which @widget is placed is determined
from its [property@Gtk.Widget:halign] and
[property@Gtk.Widget:valign] properties.

</description>
<parameters>
<parameter name="overlay">
<parameter_description> a `GtkOverlay`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> a `GtkWidget` to be added to the container
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_overlay_get_child">
<description>
Gets the child widget of @overlay.


</description>
<parameters>
<parameter name="overlay">
<parameter_description> a `GtkOverlay`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @overlay
</return>
</function>

<function name="gtk_overlay_get_clip_overlay">
<description>
Gets whether @widget should be clipped within the parent.


</description>
<parameters>
<parameter name="overlay">
<parameter_description> a `GtkOverlay`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> an overlay child of `GtkOverlay`
</parameter_description>
</parameter>
</parameters>
<return> whether the widget is clipped within the parent.
</return>
</function>

<function name="gtk_overlay_get_measure_overlay">
<description>
Gets whether @widget's size is included in the measurement of
@overlay.


</description>
<parameters>
<parameter name="overlay">
<parameter_description> a `GtkOverlay`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> an overlay child of `GtkOverlay`
</parameter_description>
</parameter>
</parameters>
<return> whether the widget is measured
</return>
</function>

<function name="gtk_overlay_layout_child_get_clip_overlay">
<description>
Retrieves whether the child is clipped.


</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkOverlayLayoutChild`
</parameter_description>
</parameter>
</parameters>
<return> whether the child is clipped
</return>
</function>

<function name="gtk_overlay_layout_child_get_measure">
<description>
Retrieves whether the child is measured.


</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkOverlayLayoutChild`
</parameter_description>
</parameter>
</parameters>
<return> whether the child is measured
</return>
</function>

<function name="gtk_overlay_layout_child_set_clip_overlay">
<description>
Sets whether to clip this child.

</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkOverlayLayoutChild`
</parameter_description>
</parameter>
<parameter name="clip_overlay">
<parameter_description> whether to clip this child
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_overlay_layout_child_set_measure">
<description>
Sets whether to measure this child.

</description>
<parameters>
<parameter name="child">
<parameter_description> a `GtkOverlayLayoutChild`
</parameter_description>
</parameter>
<parameter name="measure">
<parameter_description> whether to measure this child
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_overlay_layout_new">
<description>
Creates a new `GtkOverlayLayout` instance.


</description>
<parameters>
</parameters>
<return> the newly created instance
</return>
</function>

<function name="gtk_overlay_new">
<description>
Creates a new `GtkOverlay`.


</description>
<parameters>
</parameters>
<return> a new `GtkOverlay` object.
</return>
</function>

<function name="gtk_overlay_remove_overlay">
<description>
Removes an overlay that was added with gtk_overlay_add_overlay().

</description>
<parameters>
<parameter name="overlay">
<parameter_description> a `GtkOverlay`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> a `GtkWidget` to be removed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_overlay_set_child">
<description>
Sets the child widget of @overlay.

</description>
<parameters>
<parameter name="overlay">
<parameter_description> a `GtkOverlay`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_overlay_set_clip_overlay">
<description>
Sets whether @widget should be clipped within the parent.

</description>
<parameters>
<parameter name="overlay">
<parameter_description> a `GtkOverlay`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> an overlay child of `GtkOverlay`
</parameter_description>
</parameter>
<parameter name="clip_overlay">
<parameter_description> whether the child should be clipped
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_overlay_set_measure_overlay">
<description>
Sets whether @widget is included in the measured size of @overlay.

The overlay will request the size of the largest child that has
this property set to %TRUE. Children who are not included may
be drawn outside of @overlay's allocation if they are too large.

</description>
<parameters>
<parameter name="overlay">
<parameter_description> a `GtkOverlay`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> an overlay child of `GtkOverlay`
</parameter_description>
</parameter>
<parameter name="measure">
<parameter_description> whether the child should be measured
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_pad_controller_new">
<description>
Creates a new `GtkPadController` that will associate events from @pad to
actions.

A %NULL pad may be provided so the controller manages all pad devices
generically, it is discouraged to mix `GtkPadController` objects with
%NULL and non-%NULL @pad argument on the same toplevel window, as execution
order is not guaranteed.

The `GtkPadController` is created with no mapped actions. In order to
map pad events to actions, use [method@Gtk.PadController.set_action_entries]
or [method@Gtk.PadController.set_action].

Be aware that pad events will only be delivered to `GtkWindow`s, so adding
a pad controller to any other type of widget will not have an effect.


</description>
<parameters>
<parameter name="group">
<parameter_description> `GActionGroup` to trigger actions from
</parameter_description>
</parameter>
<parameter name="pad">
<parameter_description> A %GDK_SOURCE_TABLET_PAD device, or %NULL to handle all pads
</parameter_description>
</parameter>
</parameters>
<return> A newly created `GtkPadController`
</return>
</function>

<function name="gtk_pad_controller_set_action">
<description>
Adds an individual action to @controller.

This action will only be activated if the given button/ring/strip number
in @index is interacted while the current mode is @mode. -1 may be used
for simple cases, so the action is triggered on all modes.

The given @label should be considered user-visible, so internationalization
rules apply. Some windowing systems may be able to use those for user
feedback.

</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkPadController`
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the type of pad feature that will trigger this action
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> the 0-indexed button/ring/strip number that will trigger this action
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the mode that will trigger this action, or -1 for all modes.
</parameter_description>
</parameter>
<parameter name="label">
<parameter_description> Human readable description of this action, this string should
be deemed user-visible.
</parameter_description>
</parameter>
<parameter name="action_name">
<parameter_description> action name that will be activated in the `GActionGroup`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_pad_controller_set_action_entries">
<description>
A convenience function to add a group of action entries on
@controller.

See [struct@Gtk.PadActionEntry] and [method@Gtk.PadController.set_action].

</description>
<parameters>
<parameter name="controller">
<parameter_description> a `GtkPadController`
</parameter_description>
</parameter>
<parameter name="entries">
<parameter_description> the action entries to set on @controller
</parameter_description>
</parameter>
<parameter name="n_entries">
<parameter_description> the number of elements in @entries
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_page_setup_copy">
<description>
Copies a `GtkPageSetup`.


</description>
<parameters>
<parameter name="other">
<parameter_description> the `GtkPageSetup` to copy
</parameter_description>
</parameter>
</parameters>
<return> a copy of @other
</return>
</function>

<function name="gtk_page_setup_get_bottom_margin">
<description>
Gets the bottom margin in units of @unit.


</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for the return value
</parameter_description>
</parameter>
</parameters>
<return> the bottom margin
</return>
</function>

<function name="gtk_page_setup_get_left_margin">
<description>
Gets the left margin in units of @unit.


</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for the return value
</parameter_description>
</parameter>
</parameters>
<return> the left margin
</return>
</function>

<function name="gtk_page_setup_get_orientation">
<description>
Gets the page orientation of the `GtkPageSetup`.


</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
</parameters>
<return> the page orientation
</return>
</function>

<function name="gtk_page_setup_get_page_height">
<description>
Returns the page height in units of @unit.

Note that this function takes orientation
and margins into consideration.
See [method@Gtk.PageSetup.get_paper_height].


</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for the return value
</parameter_description>
</parameter>
</parameters>
<return> the page height.
</return>
</function>

<function name="gtk_page_setup_get_page_width">
<description>
Returns the page width in units of @unit.

Note that this function takes orientation
and margins into consideration.
See [method@Gtk.PageSetup.get_paper_width].


</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for the return value
</parameter_description>
</parameter>
</parameters>
<return> the page width.
</return>
</function>

<function name="gtk_page_setup_get_paper_height">
<description>
Returns the paper height in units of @unit.

Note that this function takes orientation,
but not margins into consideration.
See [method@Gtk.PageSetup.get_page_height].


</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for the return value
</parameter_description>
</parameter>
</parameters>
<return> the paper height.
</return>
</function>

<function name="gtk_page_setup_get_paper_size">
<description>
Gets the paper size of the `GtkPageSetup`.


</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
</parameters>
<return> the paper size
</return>
</function>

<function name="gtk_page_setup_get_paper_width">
<description>
Returns the paper width in units of @unit.

Note that this function takes orientation,
but not margins into consideration.
See [method@Gtk.PageSetup.get_page_width].


</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for the return value
</parameter_description>
</parameter>
</parameters>
<return> the paper width.
</return>
</function>

<function name="gtk_page_setup_get_right_margin">
<description>
Gets the right margin in units of @unit.


</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for the return value
</parameter_description>
</parameter>
</parameters>
<return> the right margin
</return>
</function>

<function name="gtk_page_setup_get_top_margin">
<description>
Gets the top margin in units of @unit.


</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for the return value
</parameter_description>
</parameter>
</parameters>
<return> the top margin
</return>
</function>

<function name="gtk_page_setup_load_file">
<description>
Reads the page setup from the file @file_name.

See [method@Gtk.PageSetup.to_file].


</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="file_name">
<parameter_description> the filename to read the page setup from
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success
</return>
</function>

<function name="gtk_page_setup_load_key_file">
<description>
Reads the page setup from the group @group_name in the key file
@key_file.


</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="key_file">
<parameter_description> the `GKeyFile` to retrieve the page_setup from
</parameter_description>
</parameter>
<parameter name="group_name">
<parameter_description> the name of the group in the key_file to read
to use the default name “Page Setup”
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success
</return>
</function>

<function name="gtk_page_setup_new">
<description>
Creates a new `GtkPageSetup`.


</description>
<parameters>
</parameters>
<return> a new `GtkPageSetup`.
</return>
</function>

<function name="gtk_page_setup_new_from_file">
<description>
Reads the page setup from the file @file_name.


</description>
<parameters>
<parameter name="file_name">
<parameter_description> the filename to read the page setup from
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> the restored `GtkPageSetup`
</return>
</function>

<function name="gtk_page_setup_new_from_gvariant">
<description>
Desrialize a page setup from an a{sv} variant.

The variant must be in the format produced by
[method@Gtk.PageSetup.to_gvariant].


</description>
<parameters>
<parameter name="variant">
<parameter_description> an a{sv} `GVariant`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPageSetup` object
</return>
</function>

<function name="gtk_page_setup_new_from_key_file">
<description>
Reads the page setup from the group @group_name in the key file
@key_file.


</description>
<parameters>
<parameter name="key_file">
<parameter_description> the `GKeyFile` to retrieve the page_setup from
</parameter_description>
</parameter>
<parameter name="group_name">
<parameter_description> the name of the group in the key_file to read
to use the default name “Page Setup”
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> the restored `GtkPageSetup`
</return>
</function>

<function name="gtk_page_setup_set_bottom_margin">
<description>
Sets the bottom margin of the `GtkPageSetup`.

</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="margin">
<parameter_description> the new bottom margin in units of @unit
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the units for @margin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_page_setup_set_left_margin">
<description>
Sets the left margin of the `GtkPageSetup`.

</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="margin">
<parameter_description> the new left margin in units of @unit
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the units for @margin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_page_setup_set_orientation">
<description>
Sets the page orientation of the `GtkPageSetup`.

</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="orientation">
<parameter_description> a `GtkPageOrientation` value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_page_setup_set_paper_size">
<description>
Sets the paper size of the `GtkPageSetup` without
changing the margins.

See [method@Gtk.PageSetup.set_paper_size_and_default_margins].

</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> a `GtkPaperSize`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_page_setup_set_paper_size_and_default_margins">
<description>
Sets the paper size of the `GtkPageSetup` and modifies
the margins according to the new paper size.

</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> a `GtkPaperSize`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_page_setup_set_right_margin">
<description>
Sets the right margin of the `GtkPageSetup`.

</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="margin">
<parameter_description> the new right margin in units of @unit
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the units for @margin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_page_setup_set_top_margin">
<description>
Sets the top margin of the `GtkPageSetup`.

</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="margin">
<parameter_description> the new top margin in units of @unit
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the units for @margin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_page_setup_to_file">
<description>
This function saves the information from @setup to @file_name.


</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="file_name">
<parameter_description> the file to save to
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for errors
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success
</return>
</function>

<function name="gtk_page_setup_to_gvariant">
<description>
Serialize page setup to an a{sv} variant.

Return: (transfer none): a new, floating, `GVariant`

</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_page_setup_to_key_file">
<description>
This function adds the page setup from @setup to @key_file.

</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="key_file">
<parameter_description> the `GKeyFile` to save the page setup to
</parameter_description>
</parameter>
<parameter name="group_name">
<parameter_description> the group to add the settings to in @key_file,
or %NULL to use the default name “Page Setup”
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_page_setup_unix_dialog_get_page_setup">
<description>
Gets the currently selected page setup from the dialog.


</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPageSetupUnixDialog`
</parameter_description>
</parameter>
</parameters>
<return> the current page setup
</return>
</function>

<function name="gtk_page_setup_unix_dialog_get_print_settings">
<description>
Gets the current print settings from the dialog.


</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPageSetupUnixDialog`
</parameter_description>
</parameter>
</parameters>
<return> the current print settings
</return>
</function>

<function name="gtk_page_setup_unix_dialog_new">
<description>
Creates a new page setup dialog.


</description>
<parameters>
<parameter name="title">
<parameter_description> the title of the dialog
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> transient parent of the dialog
</parameter_description>
</parameter>
</parameters>
<return> the new `GtkPageSetupUnixDialog`
</return>
</function>

<function name="gtk_page_setup_unix_dialog_set_page_setup">
<description>
Sets the `GtkPageSetup` from which the page setup
dialog takes its values.

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPageSetupUnixDialog`
</parameter_description>
</parameter>
<parameter name="page_setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_page_setup_unix_dialog_set_print_settings">
<description>
Sets the `GtkPrintSettings` from which the page setup dialog
takes its values.

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPageSetupUnixDialog`
</parameter_description>
</parameter>
<parameter name="print_settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_paned_get_end_child">
<description>
Retrieves the end child of the given `GtkPaned`.


</description>
<parameters>
<parameter name="paned">
<parameter_description> a `GtkPaned`
</parameter_description>
</parameter>
</parameters>
<return> the end child widget
</return>
</function>

<function name="gtk_paned_get_position">
<description>
Obtains the position of the divider between the two panes.


</description>
<parameters>
<parameter name="paned">
<parameter_description> a `GtkPaned` widget
</parameter_description>
</parameter>
</parameters>
<return> the position of the divider, in pixels
</return>
</function>

<function name="gtk_paned_get_resize_end_child">
<description>
Returns whether the [property@Gtk.Paned:end-child] can be resized.


</description>
<parameters>
<parameter name="paned">
<parameter_description> a `GtkPaned`
</parameter_description>
</parameter>
</parameters>
<return> true if the end child is resizable
</return>
</function>

<function name="gtk_paned_get_resize_start_child">
<description>
Returns whether the [property@Gtk.Paned:start-child] can be resized.


</description>
<parameters>
<parameter name="paned">
<parameter_description> a `GtkPaned`
</parameter_description>
</parameter>
</parameters>
<return> true if the start child is resizable
</return>
</function>

<function name="gtk_paned_get_shrink_end_child">
<description>
Returns whether the [property@Gtk.Paned:end-child] can shrink.


</description>
<parameters>
<parameter name="paned">
<parameter_description> a `GtkPaned`
</parameter_description>
</parameter>
</parameters>
<return> true if the end child is shrinkable
</return>
</function>

<function name="gtk_paned_get_shrink_start_child">
<description>
Returns whether the [property@Gtk.Paned:start-child] can shrink.


</description>
<parameters>
<parameter name="paned">
<parameter_description> a `GtkPaned`
</parameter_description>
</parameter>
</parameters>
<return> true if the start child is shrinkable
</return>
</function>

<function name="gtk_paned_get_start_child">
<description>
Retrieves the start child of the given `GtkPaned`.


</description>
<parameters>
<parameter name="paned">
<parameter_description> a `GtkPaned`
</parameter_description>
</parameter>
</parameters>
<return> the start child widget
</return>
</function>

<function name="gtk_paned_get_wide_handle">
<description>
Gets whether the separator should be wide.


</description>
<parameters>
<parameter name="paned">
<parameter_description> a `GtkPaned`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the paned should have a wide handle
</return>
</function>

<function name="gtk_paned_new">
<description>
Creates a new `GtkPaned` widget.


</description>
<parameters>
<parameter name="orientation">
<parameter_description> the paned’s orientation.
</parameter_description>
</parameter>
</parameters>
<return> the newly created paned widget
</return>
</function>

<function name="gtk_paned_set_end_child">
<description>
Sets the end child of @paned to @child.

If @child is `NULL`, the existing child will be removed.

</description>
<parameters>
<parameter name="paned">
<parameter_description> a `GtkPaned`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the widget to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_paned_set_position">
<description>
Sets the position of the divider between the two panes.

</description>
<parameters>
<parameter name="paned">
<parameter_description> a `GtkPaned` widget
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> pixel position of divider, a negative value means that the position
is unset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_paned_set_resize_end_child">
<description>
Sets whether the [property@Gtk.Paned:end-child] can be resized.

</description>
<parameters>
<parameter name="paned">
<parameter_description> a `GtkPaned`
</parameter_description>
</parameter>
<parameter name="resize">
<parameter_description> true to let the end child be resized
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_paned_set_resize_start_child">
<description>
Sets whether the [property@Gtk.Paned:start-child] can be resized.

</description>
<parameters>
<parameter name="paned">
<parameter_description> a `GtkPaned`
</parameter_description>
</parameter>
<parameter name="resize">
<parameter_description> true to let the start child be resized
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_paned_set_shrink_end_child">
<description>
Sets whether the [property@Gtk.Paned:end-child] can shrink.

</description>
<parameters>
<parameter name="paned">
<parameter_description> a `GtkPaned`
</parameter_description>
</parameter>
<parameter name="resize">
<parameter_description> true to let the end child be shrunk
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_paned_set_shrink_start_child">
<description>
Sets whether the [property@Gtk.Paned:start-child] can shrink.

</description>
<parameters>
<parameter name="paned">
<parameter_description> a `GtkPaned`
</parameter_description>
</parameter>
<parameter name="resize">
<parameter_description> true to let the start child be shrunk
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_paned_set_start_child">
<description>
Sets the start child of @paned to @child.

If @child is `NULL`, the existing child will be removed.

</description>
<parameters>
<parameter name="paned">
<parameter_description> a `GtkPaned`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the widget to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_paned_set_wide_handle">
<description>
Sets whether the separator should be wide.

</description>
<parameters>
<parameter name="paned">
<parameter_description> a `GtkPaned`
</parameter_description>
</parameter>
<parameter name="wide">
<parameter_description> the new value for the [property@Gtk.Paned:wide-handle] property
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_paper_size_copy">
<description>
Copies an existing `GtkPaperSize`.


</description>
<parameters>
<parameter name="other">
<parameter_description> a `GtkPaperSize`
</parameter_description>
</parameter>
</parameters>
<return> a copy of @other
</return>
</function>

<function name="gtk_paper_size_free">
<description>
Free the given `GtkPaperSize` object.

</description>
<parameters>
<parameter name="size">
<parameter_description> a `GtkPaperSize`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_paper_size_get_default">
<description>
Returns the name of the default paper size, which
depends on the current locale.


</description>
<parameters>
</parameters>
<return> the name of the default paper size. The string
is owned by GTK and should not be modified.
</return>
</function>

<function name="gtk_paper_size_get_default_bottom_margin">
<description>
Gets the default bottom margin for the `GtkPaperSize`.


</description>
<parameters>
<parameter name="size">
<parameter_description> a `GtkPaperSize` object
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for the return value, not %GTK_UNIT_NONE
</parameter_description>
</parameter>
</parameters>
<return> the default bottom margin
</return>
</function>

<function name="gtk_paper_size_get_default_left_margin">
<description>
Gets the default left margin for the `GtkPaperSize`.


</description>
<parameters>
<parameter name="size">
<parameter_description> a `GtkPaperSize` object
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for the return value, not %GTK_UNIT_NONE
</parameter_description>
</parameter>
</parameters>
<return> the default left margin
</return>
</function>

<function name="gtk_paper_size_get_default_right_margin">
<description>
Gets the default right margin for the `GtkPaperSize`.


</description>
<parameters>
<parameter name="size">
<parameter_description> a `GtkPaperSize` object
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for the return value, not %GTK_UNIT_NONE
</parameter_description>
</parameter>
</parameters>
<return> the default right margin
</return>
</function>

<function name="gtk_paper_size_get_default_top_margin">
<description>
Gets the default top margin for the `GtkPaperSize`.


</description>
<parameters>
<parameter name="size">
<parameter_description> a `GtkPaperSize` object
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for the return value, not %GTK_UNIT_NONE
</parameter_description>
</parameter>
</parameters>
<return> the default top margin
</return>
</function>

<function name="gtk_paper_size_get_display_name">
<description>
Gets the human-readable name of the `GtkPaperSize`.


</description>
<parameters>
<parameter name="size">
<parameter_description> a `GtkPaperSize` object
</parameter_description>
</parameter>
</parameters>
<return> the human-readable name of @size
</return>
</function>

<function name="gtk_paper_size_get_height">
<description>
Gets the paper height of the `GtkPaperSize`, in
units of @unit.


</description>
<parameters>
<parameter name="size">
<parameter_description> a `GtkPaperSize` object
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for the return value, not %GTK_UNIT_NONE
</parameter_description>
</parameter>
</parameters>
<return> the paper height
</return>
</function>

<function name="gtk_paper_size_get_name">
<description>
Gets the name of the `GtkPaperSize`.


</description>
<parameters>
<parameter name="size">
<parameter_description> a `GtkPaperSize` object
</parameter_description>
</parameter>
</parameters>
<return> the name of @size
</return>
</function>

<function name="gtk_paper_size_get_paper_sizes">
<description>
Creates a list of known paper sizes.


</description>
<parameters>
<parameter name="include_custom">
<parameter_description> whether to include custom paper sizes
as defined in the page setup dialog
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated list of newly
allocated `GtkPaperSize` objects
</return>
</function>

<function name="gtk_paper_size_get_ppd_name">
<description>
Gets the PPD name of the `GtkPaperSize`, which
may be %NULL.


</description>
<parameters>
<parameter name="size">
<parameter_description> a `GtkPaperSize` object
</parameter_description>
</parameter>
</parameters>
<return> the PPD name of @size
</return>
</function>

<function name="gtk_paper_size_get_width">
<description>
Gets the paper width of the `GtkPaperSize`, in
units of @unit.


</description>
<parameters>
<parameter name="size">
<parameter_description> a `GtkPaperSize` object
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for the return value, not %GTK_UNIT_NONE
</parameter_description>
</parameter>
</parameters>
<return> the paper width
</return>
</function>

<function name="gtk_paper_size_is_custom">
<description>
Returns %TRUE if @size is not a standard paper size.


</description>
<parameters>
<parameter name="size">
<parameter_description> a `GtkPaperSize` object
</parameter_description>
</parameter>
</parameters>
<return> whether @size is a custom paper size.
</return>
</function>

<function name="gtk_paper_size_is_equal">
<description>
Compares two `GtkPaperSize` objects.


</description>
<parameters>
<parameter name="size1">
<parameter_description> a `GtkPaperSize` object
</parameter_description>
</parameter>
<parameter name="size2">
<parameter_description> another `GtkPaperSize` object
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if @size1 and @size2
represent the same paper size
</return>
</function>

<function name="gtk_paper_size_is_ipp">
<description>
Returns %TRUE if @size is an IPP standard paper size.


</description>
<parameters>
<parameter name="size">
<parameter_description> a `GtkPaperSize` object
</parameter_description>
</parameter>
</parameters>
<return> whether @size is not an IPP custom paper size.
</return>
</function>

<function name="gtk_paper_size_new">
<description>
Creates a new `GtkPaperSize` object by parsing a
[PWG 5101.1-2002](ftp://ftp.pwg.org/pub/pwg/candidates/cs-pwgmsn10-20020226-5101.1.pdf)
paper name.

If @name is %NULL, the default paper size is returned,
see [func@Gtk.PaperSize.get_default].


</description>
<parameters>
<parameter name="name">
<parameter_description> a paper size name
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPaperSize`, use [method@Gtk.PaperSize.free]
to free it
</return>
</function>

<function name="gtk_paper_size_new_custom">
<description>
Creates a new `GtkPaperSize` object with the
given parameters.


</description>
<parameters>
<parameter name="name">
<parameter_description> the paper name
</parameter_description>
</parameter>
<parameter name="display_name">
<parameter_description> the human-readable name
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the paper width, in units of @unit
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the paper height, in units of @unit
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for @width and @height. not %GTK_UNIT_NONE.
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPaperSize` object, use [method@Gtk.PaperSize.free]
to free it
</return>
</function>

<function name="gtk_paper_size_new_from_gvariant">
<description>
Deserialize a paper size from a `GVariant`.

The `GVariant must be in the format produced by
[method@Gtk.PaperSize.to_gvariant].


</description>
<parameters>
<parameter name="variant">
<parameter_description> an a{sv} `GVariant`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPaperSize` object
</return>
</function>

<function name="gtk_paper_size_new_from_ipp">
<description>
Creates a new `GtkPaperSize` object by using
IPP information.

If @ipp_name is not a recognized paper name,
@width and @height are used to
construct a custom `GtkPaperSize` object.


</description>
<parameters>
<parameter name="ipp_name">
<parameter_description> an IPP paper name
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the paper width, in points
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the paper height in points
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPaperSize`, use [method@Gtk.PaperSize.free]
to free it
</return>
</function>

<function name="gtk_paper_size_new_from_key_file">
<description>
Reads a paper size from the group @group_name in the key file
@key_file.


</description>
<parameters>
<parameter name="key_file">
<parameter_description> the `GKeyFile` to retrieve the papersize from
</parameter_description>
</parameter>
<parameter name="group_name">
<parameter_description> the name of the group in the key file to read,
or %NULL to read the first group
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPaperSize` object with the restored paper size
</return>
</function>

<function name="gtk_paper_size_new_from_ppd">
<description>
Creates a new `GtkPaperSize` object by using
PPD information.

If @ppd_name is not a recognized PPD paper name,
@ppd_display_name, @width and @height are used to
construct a custom `GtkPaperSize` object.


</description>
<parameters>
<parameter name="ppd_name">
<parameter_description> a PPD paper name
</parameter_description>
</parameter>
<parameter name="ppd_display_name">
<parameter_description> the corresponding human-readable name
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the paper width, in points
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the paper height in points
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPaperSize`, use [method@Gtk.PaperSize.free]
to free it
</return>
</function>

<function name="gtk_paper_size_set_size">
<description>
Changes the dimensions of a @size to @width x @height.

</description>
<parameters>
<parameter name="size">
<parameter_description> a custom `GtkPaperSize` object
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the new width in units of @unit
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the new height in units of @unit
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for @width and @height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_paper_size_to_gvariant">
<description>
Serialize a paper size to an `a{sv}` variant.


</description>
<parameters>
<parameter name="paper_size">
<parameter_description> a `GtkPaperSize`
</parameter_description>
</parameter>
</parameters>
<return> a new, floating, `GVariant`
</return>
</function>

<function name="gtk_paper_size_to_key_file">
<description>
This function adds the paper size from @size to @key_file.

</description>
<parameters>
<parameter name="size">
<parameter_description> a `GtkPaperSize`
</parameter_description>
</parameter>
<parameter name="key_file">
<parameter_description> the `GKeyFile` to save the paper size to
</parameter_description>
</parameter>
<parameter name="group_name">
<parameter_description> the group to add the settings to in @key_file
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_param_spec_expression">
<description>
Creates a new `GParamSpec` instance for a property holding a `GtkExpression`.

See `g_param_spec_internal()` for details on the property strings.


</description>
<parameters>
<parameter name="name">
<parameter_description> canonical name of the property
</parameter_description>
</parameter>
<parameter name="nick">
<parameter_description> a user-readable name for the property
</parameter_description>
</parameter>
<parameter name="blurb">
<parameter_description> a user-readable description of the property
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags for the property
</parameter_description>
</parameter>
</parameters>
<return> a newly created property specification
</return>
</function>

<function name="gtk_password_entry_buffer_new">
<description>
Creates a new `GtkEntryBuffer` using secure memory allocations.


</description>
<parameters>
</parameters>
<return> the newly created instance
</return>
</function>

<function name="gtk_password_entry_get_extra_menu">
<description>
Gets the menu model set with gtk_password_entry_set_extra_menu().


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkPasswordEntry`
</parameter_description>
</parameter>
</parameters>
<return> the menu model
</return>
</function>

<function name="gtk_password_entry_get_show_peek_icon">
<description>
Returns whether the entry is showing an icon to
reveal the contents.


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkPasswordEntry`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if an icon is shown
</return>
</function>

<function name="gtk_password_entry_new">
<description>
Creates a `GtkPasswordEntry`.


</description>
<parameters>
</parameters>
<return> a new `GtkPasswordEntry`
</return>
</function>

<function name="gtk_password_entry_set_extra_menu">
<description>
Sets a menu model to add when constructing
the context menu for @entry.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkPasswordEntry`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a `GMenuModel`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_password_entry_set_show_peek_icon">
<description>
Sets whether the entry should have a clickable icon
to reveal the contents.

Setting this to %FALSE also hides the text again.

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkPasswordEntry`
</parameter_description>
</parameter>
<parameter name="show_peek_icon">
<parameter_description> whether to show the peek icon
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_picture_get_alternative_text">
<description>
Gets the alternative textual description of the picture.

The returned string will be %NULL if the picture cannot be described textually.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPicture`
</parameter_description>
</parameter>
</parameters>
<return> the alternative textual description of @self.
</return>
</function>

<function name="gtk_picture_get_can_shrink">
<description>
Returns whether the `GtkPicture` respects its contents size.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPicture`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the picture can be made smaller than its contents
</return>
</function>

<function name="gtk_picture_get_content_fit">
<description>
Returns the fit mode for the content of the `GtkPicture`.

See [enum@Gtk.ContentFit] for details.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPicture`
</parameter_description>
</parameter>
</parameters>
<return> the content fit mode

</return>
</function>

<function name="gtk_picture_get_file">
<description>
Gets the `GFile` currently displayed if @self is displaying a file.

If @self is not displaying a file, for example when
[method@Gtk.Picture.set_paintable] was used, then %NULL is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPicture`
</parameter_description>
</parameter>
</parameters>
<return> The `GFile` displayed by @self.
</return>
</function>

<function name="gtk_picture_get_keep_aspect_ratio">
<description>
Returns whether the `GtkPicture` preserves its contents aspect ratio.

Deprecated: 4.8: Use [method@Gtk.Picture.get_content_fit] instead. This will
now return `FALSE` only if [property@Gtk.Picture:content-fit] is
`GTK_CONTENT_FIT_FILL`. Returns `TRUE` otherwise.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPicture`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the self tries to keep the contents' aspect ratio

</return>
</function>

<function name="gtk_picture_get_paintable">
<description>
Gets the `GdkPaintable` being displayed by the `GtkPicture`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPicture`
</parameter_description>
</parameter>
</parameters>
<return> the displayed paintable
</return>
</function>

<function name="gtk_picture_new">
<description>
Creates a new empty `GtkPicture` widget.


</description>
<parameters>
</parameters>
<return> a newly created `GtkPicture` widget.
</return>
</function>

<function name="gtk_picture_new_for_file">
<description>
Creates a new `GtkPicture` displaying the given @file.

If the file isn’t found or can’t be loaded, the resulting
`GtkPicture` is empty.

If you need to detect failures to load the file, use
[ctor@Gdk.Texture.new_from_file] to load the file yourself,
then create the `GtkPicture` from the texture.


</description>
<parameters>
<parameter name="file">
<parameter_description> a `GFile`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPicture`
</return>
</function>

<function name="gtk_picture_new_for_filename">
<description>
Creates a new `GtkPicture` displaying the file @filename.

This is a utility function that calls [ctor@Gtk.Picture.new_for_file].
See that function for details.


</description>
<parameters>
<parameter name="filename">
<parameter_description> a filename
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPicture`
</return>
</function>

<function name="gtk_picture_new_for_paintable">
<description>
Creates a new `GtkPicture` displaying @paintable.

The `GtkPicture` will track changes to the @paintable and update
its size and contents in response to it.


</description>
<parameters>
<parameter name="paintable">
<parameter_description> a `GdkPaintable`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPicture`
</return>
</function>

<function name="gtk_picture_new_for_pixbuf">
<description>
Creates a new `GtkPicture` displaying @pixbuf.

This is a utility function that calls [ctor@Gtk.Picture.new_for_paintable],
See that function for details.

The pixbuf must not be modified after passing it to this function.

Deprecated: 4.12: Use [ctor@Gtk.Picture.new_for_paintable] and
[ctor@Gdk.Texture.new_for_pixbuf] instead

</description>
<parameters>
<parameter name="pixbuf">
<parameter_description> a `GdkPixbuf`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPicture`

</return>
</function>

<function name="gtk_picture_new_for_resource">
<description>
Creates a new `GtkPicture` displaying the resource at @resource_path.

This is a utility function that calls [ctor@Gtk.Picture.new_for_file].
See that function for details.


</description>
<parameters>
<parameter name="resource_path">
<parameter_description> resource path to play back
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPicture`
</return>
</function>

<function name="gtk_picture_set_alternative_text">
<description>
Sets an alternative textual description for the picture contents.

It is equivalent to the &quot;alt&quot; attribute for images on websites.

This text will be made available to accessibility tools.

If the picture cannot be described textually, set this property to %NULL.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPicture`
</parameter_description>
</parameter>
<parameter name="alternative_text">
<parameter_description> a textual description of the contents
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_picture_set_can_shrink">
<description>
If set to %TRUE, the @self can be made smaller than its contents.

The contents will then be scaled down when rendering.

If you want to still force a minimum size manually, consider using
[method@Gtk.Widget.set_size_request].

Also of note is that a similar function for growing does not exist
because the grow behavior can be controlled via
[method@Gtk.Widget.set_halign] and [method@Gtk.Widget.set_valign].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPicture`
</parameter_description>
</parameter>
<parameter name="can_shrink">
<parameter_description> if @self can be made smaller than its contents
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_picture_set_content_fit">
<description>
Sets how the content should be resized to fit the `GtkPicture`.

See [enum@Gtk.ContentFit] for details.

Since: 4.8

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPicture`
</parameter_description>
</parameter>
<parameter name="content_fit">
<parameter_description> the content fit mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_picture_set_file">
<description>
Makes @self load and display @file.

See [ctor@Gtk.Picture.new_for_file] for details.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPicture`
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description> a `GFile`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_picture_set_filename">
<description>
Makes @self load and display the given @filename.

This is a utility function that calls [method@Gtk.Picture.set_file].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPicture`
</parameter_description>
</parameter>
<parameter name="filename">
<parameter_description> the filename to play
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_picture_set_keep_aspect_ratio">
<description>
If set to %TRUE, the @self will render its contents according to
their aspect ratio.

That means that empty space may show up at the top/bottom or
left/right of @self.

If set to %FALSE or if the contents provide no aspect ratio,
the contents will be stretched over the picture's whole area.

Deprecated: 4.8: Use [method@Gtk.Picture.set_content_fit] instead. If still
used, this method will always set the [property@Gtk.Picture:content-fit]
property to `GTK_CONTENT_FIT_CONTAIN` if @keep_aspect_ratio is true,
otherwise it will set it to `GTK_CONTENT_FIT_FILL`.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPicture`
</parameter_description>
</parameter>
<parameter name="keep_aspect_ratio">
<parameter_description> whether to keep aspect ratio
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_picture_set_paintable">
<description>
Makes @self display the given @paintable.

If @paintable is %NULL, nothing will be displayed.

See [ctor@Gtk.Picture.new_for_paintable] for details.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPicture`
</parameter_description>
</parameter>
<parameter name="paintable">
<parameter_description> a `GdkPaintable`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_picture_set_pixbuf">
<description>
Sets a `GtkPicture` to show a `GdkPixbuf`.

See [ctor@Gtk.Picture.new_for_pixbuf] for details.

This is a utility function that calls [method@Gtk.Picture.set_paintable].

Deprecated: 4.12: Use [method@Gtk.Picture.set_paintable] instead

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPicture`
</parameter_description>
</parameter>
<parameter name="pixbuf">
<parameter_description> a `GdkPixbuf`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_picture_set_resource">
<description>
Makes @self load and display the resource at the given
@resource_path.

This is a utility function that calls [method@Gtk.Picture.set_file].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPicture`
</parameter_description>
</parameter>
<parameter name="resource_path">
<parameter_description> the resource to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_popover_get_autohide">
<description>
Returns whether the popover is modal.

See [method@Gtk.Popover.set_autohide] for the
implications of this.


</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @popover is modal
</return>
</function>

<function name="gtk_popover_get_cascade_popdown">
<description>
Returns whether the popover will close after a modal child is closed.


</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @popover will close after a modal child.
</return>
</function>

<function name="gtk_popover_get_child">
<description>
Gets the child widget of @popover.


</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @popover
</return>
</function>

<function name="gtk_popover_get_has_arrow">
<description>
Gets whether this popover is showing an arrow
pointing at the widget that it is relative to.


</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
</parameters>
<return> whether the popover has an arrow
</return>
</function>

<function name="gtk_popover_get_mnemonics_visible">
<description>
Gets whether mnemonics are visible.


</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if mnemonics are supposed to be visible
in this popover
</return>
</function>

<function name="gtk_popover_get_offset">
<description>
Gets the offset previous set with [method@Gtk.Popover.set_offset()].

</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
<parameter name="x_offset">
<parameter_description> a location for the x_offset
</parameter_description>
</parameter>
<parameter name="y_offset">
<parameter_description> a location for the y_offset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_popover_get_pointing_to">
<description>
Gets the rectangle that the popover points to.

If a rectangle to point to has been set, this function will
return %TRUE and fill in @rect with such rectangle, otherwise
it will return %FALSE and fill in @rect with the parent
widget coordinates.


</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
<parameter name="rect">
<parameter_description> location to store the rectangle
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a rectangle to point to was set.
</return>
</function>

<function name="gtk_popover_get_position">
<description>
Returns the preferred position of @popover.


</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
</parameters>
<return> The preferred position.
</return>
</function>

<function name="gtk_popover_menu_add_child">
<description>
Adds a custom widget to a generated menu.

For this to work, the menu model of @popover must have
an item with a `custom` attribute that matches @id.


</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopoverMenu`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to add
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the ID to insert @child at
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @id was found and the widget added
</return>
</function>

<function name="gtk_popover_menu_bar_add_child">
<description>
Adds a custom widget to a generated menubar.

For this to work, the menu model of @bar must have an
item with a `custom` attribute that matches @id.


</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkPopoverMenuBar`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to add
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the ID to insert @child at
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @id was found and the widget added
</return>
</function>

<function name="gtk_popover_menu_bar_get_menu_model">
<description>
Returns the model from which the contents of @bar are taken.


</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkPopoverMenuBar`
</parameter_description>
</parameter>
</parameters>
<return> a `GMenuModel`
</return>
</function>

<function name="gtk_popover_menu_bar_new_from_model">
<description>
Creates a `GtkPopoverMenuBar` from a `GMenuModel`.


</description>
<parameters>
<parameter name="model">
<parameter_description> a `GMenuModel`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPopoverMenuBar`
</return>
</function>

<function name="gtk_popover_menu_bar_remove_child">
<description>
Removes a widget that has previously been added with
gtk_popover_menu_bar_add_child().


</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkPopoverMenuBar`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to remove
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the widget was removed
</return>
</function>

<function name="gtk_popover_menu_bar_set_menu_model">
<description>
Sets a menu model from which @bar should take
its contents.

</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkPopoverMenuBar`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a `GMenuModel`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_popover_menu_get_flags">
<description>
Returns the flags that @popover uses to create/display a menu from its model.

Since: 4.14

</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopoverMenu`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkPopoverMenuFlags`

</return>
</function>

<function name="gtk_popover_menu_get_menu_model">
<description>
Returns the menu model used to populate the popover.


</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopoverMenu`
</parameter_description>
</parameter>
</parameters>
<return> the menu model of @popover
</return>
</function>

<function name="gtk_popover_menu_new">
<description>
Creates a new popover menu.


</description>
<parameters>
</parameters>
<return> a new `GtkPopoverMenu`
</return>
</function>

<function name="gtk_popover_menu_new_from_model">
<description>
Creates a `GtkPopoverMenu` and populates it according to @model.

The created buttons are connected to actions found in the
`GtkApplicationWindow` to which the popover belongs - typically
by means of being attached to a widget that is contained within
the `GtkApplicationWindow`s widget hierarchy.

Actions can also be added using [method@Gtk.Widget.insert_action_group]
on the menus attach widget or on any of its parent widgets.

This function creates menus with sliding submenus.
See [ctor@Gtk.PopoverMenu.new_from_model_full] for a way
to control this.


</description>
<parameters>
<parameter name="model">
<parameter_description> a `GMenuModel`
</parameter_description>
</parameter>
</parameters>
<return> the new `GtkPopoverMenu`
</return>
</function>

<function name="gtk_popover_menu_new_from_model_full">
<description>
Creates a `GtkPopoverMenu` and populates it according to @model.

The created buttons are connected to actions found in the
action groups that are accessible from the parent widget.
This includes the `GtkApplicationWindow` to which the popover
belongs. Actions can also be added using [method@Gtk.Widget.insert_action_group]
on the parent widget or on any of its parent widgets.

The only flag that is supported currently is
%GTK_POPOVER_MENU_NESTED, which makes GTK create traditional,
nested submenus instead of the default sliding submenus.


</description>
<parameters>
<parameter name="model">
<parameter_description> a `GMenuModel`
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags that affect how the menu is created
</parameter_description>
</parameter>
</parameters>
<return> the new `GtkPopoverMenu`
</return>
</function>

<function name="gtk_popover_menu_remove_child">
<description>
Removes a widget that has previously been added with
[method@Gtk.PopoverMenu.add_child()]


</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopoverMenu`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkWidget` to remove
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the widget was removed
</return>
</function>

<function name="gtk_popover_menu_set_flags">
<description>
Sets the flags that @popover uses to create/display a menu from its model.

If a model is set and the flags change, contents are rebuilt, so if setting
properties individually, set flags before model to avoid a redundant rebuild.

Since: 4.14

</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopoverMenu`
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> a set of `GtkPopoverMenuFlags`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_popover_menu_set_menu_model">
<description>
Sets a new menu model on @popover.

The existing contents of @popover are removed, and
the @popover is populated with new contents according
to @model.

</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopoverMenu`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a `GMenuModel`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_popover_new">
<description>
Creates a new `GtkPopover`.


</description>
<parameters>
</parameters>
<return> the new `GtkPopover`
</return>
</function>

<function name="gtk_popover_popdown">
<description>
Pops @popover down.

This may have the side-effect of closing a parent popover
as well. See [property@Gtk.Popover:cascade-popdown].

</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_popover_popup">
<description>
Pops @popover up.

</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_popover_present">
<description>
Allocate a size for the `GtkPopover`.

This function needs to be called in size-allocate by widgets
who have a `GtkPopover` as child. When using a layout manager,
this is happening automatically.

To make a popover appear on screen, use [method@Gtk.Popover.popup].

</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_popover_set_autohide">
<description>
Sets whether @popover is modal.

A modal popover will grab the keyboard focus on it when being
displayed. Focus will wrap around within the popover. Clicking
outside the popover area or pressing Esc will dismiss the popover.

Called this function on an already showing popup with a new
autohide value different from the current one, will cause the
popup to be hidden.

</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
<parameter name="autohide">
<parameter_description> %TRUE to dismiss the popover on outside clicks
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_popover_set_cascade_popdown">
<description>
If @cascade_popdown is %TRUE, the popover will be
closed when a child modal popover is closed.

If %FALSE, @popover will stay visible.

</description>
<parameters>
<parameter name="popover">
<parameter_description> A `GtkPopover`
</parameter_description>
</parameter>
<parameter name="cascade_popdown">
<parameter_description> %TRUE if the popover should follow a child closing
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_popover_set_child">
<description>
Sets the child widget of @popover.

</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_popover_set_default_widget">
<description>
Sets the default widget of a `GtkPopover`.

The default widget is the widget that’s activated when the user
presses Enter in a dialog (for example). This function sets or
unsets the default widget for a `GtkPopover`.

</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> a child widget of @popover to set as
the default, or %NULL to unset the default widget for the popover
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_popover_set_has_arrow">
<description>
Sets whether this popover should draw an arrow
pointing at the widget it is relative to.

</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
<parameter name="has_arrow">
<parameter_description> %TRUE to draw an arrow
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_popover_set_mnemonics_visible">
<description>
Sets whether mnemonics should be visible.

</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
<parameter name="mnemonics_visible">
<parameter_description> the new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_popover_set_offset">
<description>
Sets the offset to use when calculating the position
of the popover.

These values are used when preparing the [struct@Gdk.PopupLayout]
for positioning the popover.

</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
<parameter name="x_offset">
<parameter_description> the x offset to adjust the position by
</parameter_description>
</parameter>
<parameter name="y_offset">
<parameter_description> the y offset to adjust the position by
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_popover_set_pointing_to">
<description>
Sets the rectangle that @popover points to.

This is in the coordinate space of the @popover parent.

</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
<parameter name="rect">
<parameter_description> rectangle to point to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_popover_set_position">
<description>
Sets the preferred position for @popover to appear.

If the @popover is currently visible, it will be immediately
updated.

This preference will be respected where possible, although
on lack of space (eg. if close to the window edges), the
`GtkPopover` may choose to appear on the opposite side.

</description>
<parameters>
<parameter name="popover">
<parameter_description> a `GtkPopover`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> preferred popover position
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_backend_get_printer_list">
<description>
Returns the current list of printers.


</description>
<parameters>
</parameters>
<return>
A list of `GtkPrinter` objects
</return>
</function>

<function name="gtk_print_backend_load_modules">
<description>

</description>
<parameters>
</parameters>
<return>
</return>
</function>

<function name="gtk_print_context_create_pango_context">
<description>
Creates a new `PangoContext` that can be used with the
`GtkPrintContext`.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkPrintContext`
</parameter_description>
</parameter>
</parameters>
<return> a new Pango context for @context
</return>
</function>

<function name="gtk_print_context_create_pango_layout">
<description>
Creates a new `PangoLayout` that is suitable for use
with the `GtkPrintContext`.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkPrintContext`
</parameter_description>
</parameter>
</parameters>
<return> a new Pango layout for @context
</return>
</function>

<function name="gtk_print_context_get_cairo_context">
<description>
Obtains the cairo context that is associated with the
`GtkPrintContext`.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkPrintContext`
</parameter_description>
</parameter>
</parameters>
<return> the cairo context of @context
</return>
</function>

<function name="gtk_print_context_get_dpi_x">
<description>
Obtains the horizontal resolution of the `GtkPrintContext`,
in dots per inch.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkPrintContext`
</parameter_description>
</parameter>
</parameters>
<return> the horizontal resolution of @context
</return>
</function>

<function name="gtk_print_context_get_dpi_y">
<description>
Obtains the vertical resolution of the `GtkPrintContext`,
in dots per inch.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkPrintContext`
</parameter_description>
</parameter>
</parameters>
<return> the vertical resolution of @context
</return>
</function>

<function name="gtk_print_context_get_hard_margins">
<description>
Obtains the hardware printer margins of the `GtkPrintContext`,
in units.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkPrintContext`
</parameter_description>
</parameter>
<parameter name="top">
<parameter_description> top hardware printer margin
</parameter_description>
</parameter>
<parameter name="bottom">
<parameter_description> bottom hardware printer margin
</parameter_description>
</parameter>
<parameter name="left">
<parameter_description> left hardware printer margin
</parameter_description>
</parameter>
<parameter name="right">
<parameter_description> right hardware printer margin
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the hard margins were retrieved
</return>
</function>

<function name="gtk_print_context_get_height">
<description>
Obtains the height of the `GtkPrintContext`, in pixels.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkPrintContext`
</parameter_description>
</parameter>
</parameters>
<return> the height of @context
</return>
</function>

<function name="gtk_print_context_get_page_setup">
<description>
Obtains the `GtkPageSetup` that determines the page
dimensions of the `GtkPrintContext`.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkPrintContext`
</parameter_description>
</parameter>
</parameters>
<return> the page setup of @context
</return>
</function>

<function name="gtk_print_context_get_pango_fontmap">
<description>
Returns a `PangoFontMap` that is suitable for use
with the `GtkPrintContext`.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkPrintContext`
</parameter_description>
</parameter>
</parameters>
<return> the font map of @context
</return>
</function>

<function name="gtk_print_context_get_width">
<description>
Obtains the width of the `GtkPrintContext`, in pixels.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkPrintContext`
</parameter_description>
</parameter>
</parameters>
<return> the width of @context
</return>
</function>

<function name="gtk_print_context_set_cairo_context">
<description>
Sets a new cairo context on a print context.

This function is intended to be used when implementing
an internal print preview, it is not needed for printing,
since GTK itself creates a suitable cairo context in that
case.

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkPrintContext`
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> the cairo context
</parameter_description>
</parameter>
<parameter name="dpi_x">
<parameter_description> the horizontal resolution to use with @cr
</parameter_description>
</parameter>
<parameter name="dpi_y">
<parameter_description> the vertical resolution to use with @cr
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_context_set_hard_margins">
<description>
Sets the hard margins in pixels.

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkPrintContext`
</parameter_description>
</parameter>
<parameter name="top">
<parameter_description> top hardware printer margin
</parameter_description>
</parameter>
<parameter name="bottom">
<parameter_description> bottom hardware printer margin
</parameter_description>
</parameter>
<parameter name="left">
<parameter_description> left hardware printer margin
</parameter_description>
</parameter>
<parameter name="right">
<parameter_description> right hardware printer margin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_dialog_get_accept_label">
<description>
Returns the label that will be shown on the
accept button of the print dialog.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPrintDialog`
</parameter_description>
</parameter>
</parameters>
<return> the accept label

</return>
</function>

<function name="gtk_print_dialog_get_modal">
<description>
Returns whether the print dialog blocks
interaction with the parent window while
it is presented.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPrintDialog`
</parameter_description>
</parameter>
</parameters>
<return> whether the print dialog is modal

</return>
</function>

<function name="gtk_print_dialog_get_page_setup">
<description>
Returns the page setup.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPrintDialog`
</parameter_description>
</parameter>
</parameters>
<return> the page setup

</return>
</function>

<function name="gtk_print_dialog_get_print_settings">
<description>
Returns the print settings for the print dialog.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPrintDialog`
</parameter_description>
</parameter>
</parameters>
<return> the settings

</return>
</function>

<function name="gtk_print_dialog_get_title">
<description>
Returns the title that will be shown on the
print dialog.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPrintDialog`
</parameter_description>
</parameter>
</parameters>
<return> the title

</return>
</function>

<function name="gtk_print_dialog_new">
<description>
Creates a new `GtkPrintDialog` object.

Since: 4.14

</description>
<parameters>
</parameters>
<return> the new `GtkPrintDialog`

</return>
</function>

<function name="gtk_print_dialog_print">
<description>
This function prints content from a stream.

If you pass `NULL` as @setup, then this method will present a print dialog.
Otherwise, it will attempt to print directly, without user interaction.

The @callback will be called when the printing is done. It should call
[method@Gtk.PrintDialog.print_finish] to obtain the results.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPrintDialog`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="setup">
<parameter_description> the `GtkPrintSetup` to use
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_dialog_print_file">
<description>
This function prints a file.

If you pass `NULL` as @setup, then this method will present a print dialog.
Otherwise, it will attempt to print directly, without user interaction.

The @callback will be called when the printing is done. It should call
[method@Gtk.PrintDialog.print_file_finish] to obtain the results.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPrintDialog`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="setup">
<parameter_description>  the `GtkPrintSetup` to use
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description> the `GFile` to print
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_dialog_print_file_finish">
<description>
Finishes the [method@Gtk.PrintDialog.print_file] call and
returns the results.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPrintDialog`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] error
</parameter_description>
</parameter>
</parameters>
<return> Whether the call was successful

</return>
</function>

<function name="gtk_print_dialog_print_finish">
<description>
Finishes the [method@Gtk.PrintDialog.print] call and
returns the results.

If the call was successful, the content to be printed should be
written to the returned output stream. Otherwise, `NULL` is returned.

The overall results of the print operation will be returned in the
[method@Gio.OutputStream.close] call, so if you are interested in the
results, you need to explicitly close the output stream (it will be
closed automatically if you just unref it). Be aware that the close
call may not be instant as it operation will for the printer to finish
printing.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPrintDialog`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] error
</parameter_description>
</parameter>
</parameters>
<return> a [class@Gio.OutputStream]

</return>
</function>

<function name="gtk_print_dialog_set_accept_label">
<description>
Sets the label that will be shown on the
accept button of the print dialog shown for
[method@Gtk.PrintDialog.setup].

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPrintDialog`
</parameter_description>
</parameter>
<parameter name="accept_label">
<parameter_description> the new accept label
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_dialog_set_modal">
<description>
Sets whether the print dialog blocks
interaction with the parent window while
it is presented.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPrintDialog`
</parameter_description>
</parameter>
<parameter name="modal">
<parameter_description> the new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_dialog_set_page_setup">
<description>
Set the page setup for the print dialog.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPrintDialog`
</parameter_description>
</parameter>
<parameter name="page_setup">
<parameter_description> the new page setup
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_dialog_set_print_settings">
<description>
Sets the print settings for the print dialog.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPrintDialog`
</parameter_description>
</parameter>
<parameter name="print_settings">
<parameter_description> the new print settings
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_dialog_set_title">
<description>
Sets the title that will be shown on the print dialog.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPrintDialog`
</parameter_description>
</parameter>
<parameter name="title">
<parameter_description> the new title
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_dialog_setup">
<description>
This function presents a print dialog to let the user select a printer,
and set up print settings and page setup.

The @callback will be called when the dialog is dismissed.
It should call [method@Gtk.PrintDialog.setup_finish]
to obtain the results in the form of a [struct@Gtk.PrintSetup],
that can then be passed to [method@Gtk.PrintDialog.print]
or [method@Gtk.PrintDialog.print_file].

One possible use for this method is to have the user select a printer,
then show a page setup UI in the application (e.g. to arrange images
on a page), then call [method@Gtk.PrintDialog.print] on @self
to do the printing without further user interaction.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPrintDialog`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_dialog_setup_finish">
<description>
Finishes the [method@Gtk.PrintDialog.setup] call.

If the call was successful, it returns a [struct@Gtk.PrintSetup]
which contains the print settings and page setup information that
will be used to print.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkPrintDialog`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] error
</parameter_description>
</parameter>
</parameters>
<return> The `GtkPrintSetup` object that resulted from the call,
or `NULL` if the call was not successful

</return>
</function>

<function name="gtk_print_error_quark">
<description>
Registers an error quark for `GtkPrintOperation` if necessary.


</description>
<parameters>
</parameters>
<return> The error quark used for `GtkPrintOperation` errors.
</return>
</function>

<function name="gtk_print_job_get_collate">
<description>
Gets whether this job is printed collated.


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
</parameters>
<return> whether the job is printed collated
</return>
</function>

<function name="gtk_print_job_get_n_up">
<description>
Gets the n-up setting for this job.


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
</parameters>
<return> the n-up setting
</return>
</function>

<function name="gtk_print_job_get_n_up_layout">
<description>
Gets the n-up layout setting for this job.


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
</parameters>
<return> the n-up layout
</return>
</function>

<function name="gtk_print_job_get_num_copies">
<description>
Gets the number of copies of this job.


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
</parameters>
<return> the number of copies
</return>
</function>

<function name="gtk_print_job_get_page_ranges">
<description>
Gets the page ranges for this job.


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
<parameter name="n_ranges">
<parameter_description> return location for the number of ranges
</parameter_description>
</parameter>
</parameters>
<return> a pointer to an
array of `GtkPageRange` structs
</return>
</function>

<function name="gtk_print_job_get_page_set">
<description>
Gets the `GtkPageSet` setting for this job.


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkPageSet` setting
</return>
</function>

<function name="gtk_print_job_get_pages">
<description>
Gets the `GtkPrintPages` setting for this job.


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkPrintPages` setting
</return>
</function>

<function name="gtk_print_job_get_printer">
<description>
Gets the `GtkPrinter` of the print job.


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
</parameters>
<return> the printer of @job
</return>
</function>

<function name="gtk_print_job_get_reverse">
<description>
Gets whether this job is printed reversed.


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
</parameters>
<return> whether the job is printed reversed.
</return>
</function>

<function name="gtk_print_job_get_rotate">
<description>
Gets whether the job is printed rotated.


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
</parameters>
<return> whether the job is printed rotated
</return>
</function>

<function name="gtk_print_job_get_scale">
<description>
Gets the scale for this job.


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
</parameters>
<return> the scale
</return>
</function>

<function name="gtk_print_job_get_settings">
<description>
Gets the `GtkPrintSettings` of the print job.


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
</parameters>
<return> the settings of @job
</return>
</function>

<function name="gtk_print_job_get_status">
<description>
Gets the status of the print job.


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
</parameters>
<return> the status of @job
</return>
</function>

<function name="gtk_print_job_get_surface">
<description>
Gets a cairo surface onto which the pages of
the print job should be rendered.


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for errors
</parameter_description>
</parameter>
</parameters>
<return> the cairo surface of @job
</return>
</function>

<function name="gtk_print_job_get_title">
<description>
Gets the job title.


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
</parameters>
<return> the title of @job
</return>
</function>

<function name="gtk_print_job_get_track_print_status">
<description>
Returns whether jobs will be tracked after printing.

For details, see [method@Gtk.PrintJob.set_track_print_status].


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if print job status will be reported after printing
</return>
</function>

<function name="gtk_print_job_new">
<description>
Creates a new `GtkPrintJob`.


</description>
<parameters>
<parameter name="title">
<parameter_description> the job title
</parameter_description>
</parameter>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="page_setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPrintJob`
</return>
</function>

<function name="gtk_print_job_send">
<description>
Sends the print job off to the printer.

</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> function to call when the job completes or an error occurs
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data that gets passed to @callback
</parameter_description>
</parameter>
<parameter name="dnotify">
<parameter_description> destroy notify for @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_job_set_collate">
<description>
Sets whether this job is printed collated.

</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
<parameter name="collate">
<parameter_description> whether the job is printed collated
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_job_set_n_up">
<description>
Sets the n-up setting for this job.

</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
<parameter name="n_up">
<parameter_description> the n-up value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_job_set_n_up_layout">
<description>
Sets the n-up layout setting for this job.

</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
<parameter name="layout">
<parameter_description> the n-up layout setting
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_job_set_num_copies">
<description>
Sets the number of copies for this job.

</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
<parameter name="num_copies">
<parameter_description> the number of copies
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_job_set_page_ranges">
<description>
Sets the page ranges for this job.

</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
<parameter name="ranges">
<parameter_description> pointer to an array of
`GtkPageRange` structs
</parameter_description>
</parameter>
<parameter name="n_ranges">
<parameter_description> the length of the @ranges array
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_job_set_page_set">
<description>
Sets the `GtkPageSet` setting for this job.

</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
<parameter name="page_set">
<parameter_description> a `GtkPageSet` setting
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_job_set_pages">
<description>
Sets the `GtkPrintPages` setting for this job.

</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
<parameter name="pages">
<parameter_description> the `GtkPrintPages` setting
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_job_set_reverse">
<description>
Sets whether this job is printed reversed.

</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
<parameter name="reverse">
<parameter_description> whether the job is printed reversed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_job_set_rotate">
<description>
Sets whether this job is printed rotated.

</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
<parameter name="rotate">
<parameter_description> whether to print rotated
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_job_set_scale">
<description>
Sets the scale for this job.

1.0 means unscaled.

</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> the scale
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_job_set_source_fd">
<description>
Make the `GtkPrintJob` send an existing document to the
printing system.

The file can be in any format understood by the platforms
printing system (typically PostScript, but on many platforms
PDF may work too). See [method@Gtk.Printer.accepts_pdf] and
[method@Gtk.Printer.accepts_ps].

This is similar to [method@Gtk.PrintJob.set_source_file],
but takes expects an open file descriptor for the file,
instead of a filename.


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
<parameter name="fd">
<parameter_description> a file descriptor
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for errors
</parameter_description>
</parameter>
</parameters>
<return> %FALSE if an error occurred
</return>
</function>

<function name="gtk_print_job_set_source_file">
<description>
Make the `GtkPrintJob` send an existing document to the
printing system.

The file can be in any format understood by the platforms
printing system (typically PostScript, but on many platforms
PDF may work too). See [method@Gtk.Printer.accepts_pdf] and
[method@Gtk.Printer.accepts_ps].


</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
<parameter name="filename">
<parameter_description> the file to be printed
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for errors
</parameter_description>
</parameter>
</parameters>
<return> %FALSE if an error occurred
</return>
</function>

<function name="gtk_print_job_set_track_print_status">
<description>
If track_status is %TRUE, the print job will try to continue report
on the status of the print job in the printer queues and printer.

This can allow your application to show things like “out of paper”
issues, and when the print job actually reaches the printer.

This function is often implemented using some form of polling,
so it should not be enabled unless needed.

</description>
<parameters>
<parameter name="job">
<parameter_description> a `GtkPrintJob`
</parameter_description>
</parameter>
<parameter name="track_status">
<parameter_description> %TRUE to track status after printing
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_cancel">
<description>
Cancels a running print operation.

This function may be called from a [signal@Gtk.PrintOperation::begin-print],
[signal@Gtk.PrintOperation::paginate] or [signal@Gtk.PrintOperation::draw-page]
signal handler to stop the currently running print operation.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_draw_page_finish">
<description>
Signal that drawing of particular page is complete.

It is called after completion of page drawing (e.g. drawing
in another thread). If [method@Gtk.PrintOperation.set_defer_drawing]
was called before, then this function has to be called by application.
Otherwise it is called by GTK itself.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_get_default_page_setup">
<description>
Returns the default page setup.


</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
</parameters>
<return> the default page setup
</return>
</function>

<function name="gtk_print_operation_get_embed_page_setup">
<description>
Gets whether page setup selection combos are embedded


</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
</parameters>
<return> whether page setup selection combos are embedded
</return>
</function>

<function name="gtk_print_operation_get_error">
<description>
Call this when the result of a print operation is
%GTK_PRINT_OPERATION_RESULT_ERROR.

It can be called either after [method@Gtk.PrintOperation.run]
returns, or in the [signal@Gtk.PrintOperation::done] signal
handler.

The returned `GError` will contain more details on what went wrong.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for the error
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_get_has_selection">
<description>
Gets whether there is a selection.


</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
</parameters>
<return> whether there is a selection
</return>
</function>

<function name="gtk_print_operation_get_n_pages_to_print">
<description>
Returns the number of pages that will be printed.

Note that this value is set during print preparation phase
(%GTK_PRINT_STATUS_PREPARING), so this function should never be
called before the data generation phase (%GTK_PRINT_STATUS_GENERATING_DATA).
You can connect to the [signal@Gtk.PrintOperation::status-changed]
signal and call gtk_print_operation_get_n_pages_to_print() when
print status is %GTK_PRINT_STATUS_GENERATING_DATA.

This is typically used to track the progress of print operation.


</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
</parameters>
<return> the number of pages that will be printed
</return>
</function>

<function name="gtk_print_operation_get_print_settings">
<description>
Returns the current print settings.

Note that the return value is %NULL until either
[method@Gtk.PrintOperation.set_print_settings] or
[method@Gtk.PrintOperation.run] have been called.


</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
</parameters>
<return> the current print settings of @op.
</return>
</function>

<function name="gtk_print_operation_get_status">
<description>
Returns the status of the print operation.

Also see [method@Gtk.PrintOperation.get_status_string].


</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
</parameters>
<return> the status of the print operation
</return>
</function>

<function name="gtk_print_operation_get_status_string">
<description>
Returns a string representation of the status of the
print operation.

The string is translated and suitable for displaying
the print status e.g. in a `GtkStatusbar`.

Use [method@Gtk.PrintOperation.get_status] to obtain
a status value that is suitable for programmatic use.


</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
</parameters>
<return> a string representation of the status
of the print operation
</return>
</function>

<function name="gtk_print_operation_get_support_selection">
<description>
Gets whether the application supports print of selection


</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
</parameters>
<return> whether the application supports print of selection
</return>
</function>

<function name="gtk_print_operation_is_finished">
<description>
A convenience function to find out if the print operation
is finished.

a print operation is finished if its status is either
%GTK_PRINT_STATUS_FINISHED or %GTK_PRINT_STATUS_FINISHED_ABORTED.

Note: when you enable print status tracking the print operation
can be in a non-finished state even after done has been called, as
the operation status then tracks the print job status on the printer.


</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if the print operation is finished.
</return>
</function>

<function name="gtk_print_operation_new">
<description>
Creates a new `GtkPrintOperation`.


</description>
<parameters>
</parameters>
<return> a new `GtkPrintOperation`
</return>
</function>

<function name="gtk_print_operation_preview_end_preview">
<description>
Ends a preview.

This function must be called to finish a custom print preview.

</description>
<parameters>
<parameter name="preview">
<parameter_description> a `GtkPrintOperationPreview`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_preview_is_selected">
<description>
Returns whether the given page is included in the set of pages that
have been selected for printing.


</description>
<parameters>
<parameter name="preview">
<parameter_description> a `GtkPrintOperationPreview`
</parameter_description>
</parameter>
<parameter name="page_nr">
<parameter_description> a page number
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the page has been selected for printing
</return>
</function>

<function name="gtk_print_operation_preview_render_page">
<description>
Renders a page to the preview.

This is using the print context that was passed to the
[signal@Gtk.PrintOperation::preview] handler together
with @preview.

A custom print preview should use this function to render
the currently selected page.

Note that this function requires a suitable cairo context to
be associated with the print context.

</description>
<parameters>
<parameter name="preview">
<parameter_description> a `GtkPrintOperationPreview`
</parameter_description>
</parameter>
<parameter name="page_nr">
<parameter_description> the page to render
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_run">
<description>
Runs the print operation.

Normally that this function does not return until the rendering
of all pages is complete. You can connect to the
[signal@Gtk.PrintOperation::status-changed] signal on @op to obtain
some information about the progress of the print operation.

Furthermore, it may use a recursive mainloop to show the print dialog.

If you set the [Gtk.PrintOperation:allow-async] property, the operation
will run asynchronously if this is supported on the platform. The
[signal@Gtk.PrintOperation::done] signal will be emitted with the result
of the operation when the it is done (i.e. when the dialog is canceled,
or when the print succeeds or fails).

```c
if (settings != NULL)
gtk_print_operation_set_print_settings (print, settings);

if (page_setup != NULL)
gtk_print_operation_set_default_page_setup (print, page_setup);

g_signal_connect (print, &quot;begin-print&quot;,
G_CALLBACK (begin_print), &amp;data);
g_signal_connect (print, &quot;draw-page&quot;,
G_CALLBACK (draw_page), &amp;data);

res = gtk_print_operation_run (print,
GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
parent,
&amp;error);

if (res == GTK_PRINT_OPERATION_RESULT_ERROR)
{
error_dialog = gtk_message_dialog_new (GTK_WINDOW (parent),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
&quot;Error printing file:\n%s&quot;,
error-&gt;message);
g_signal_connect (error_dialog, &quot;response&quot;,
G_CALLBACK (gtk_window_destroy), NULL);
gtk_window_present (GTK_WINDOW (error_dialog));
g_error_free (error);
}
else if (res == GTK_PRINT_OPERATION_RESULT_APPLY)
{
if (settings != NULL)
g_object_unref (settings);
settings = g_object_ref (gtk_print_operation_get_print_settings (print));
}
```

Note that gtk_print_operation_run() can only be called once on a
given `GtkPrintOperation`.


</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="action">
<parameter_description> the action to start
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> Transient parent of the dialog
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> Return location for errors
</parameter_description>
</parameter>
</parameters>
<return> the result of the print operation. A return value of
%GTK_PRINT_OPERATION_RESULT_APPLY indicates that the printing was
completed successfully. In this case, it is a good idea to obtain
the used print settings with
[method@Gtk.PrintOperation.get_print_settings]
and store them for reuse with the next print operation. A value of
%GTK_PRINT_OPERATION_RESULT_IN_PROGRESS means the operation is running
asynchronously, and will emit the [signal@Gtk.PrintOperation::done]
signal when done.
</return>
</function>

<function name="gtk_print_operation_set_allow_async">
<description>
Sets whether gtk_print_operation_run() may return
before the print operation is completed.

Note that some platforms may not allow asynchronous
operation.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="allow_async">
<parameter_description> %TRUE to allow asynchronous operation
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_set_current_page">
<description>
Sets the current page.

If this is called before [method@Gtk.PrintOperation.run],
the user will be able to select to print only the current page.

Note that this only makes sense for pre-paginated documents.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="current_page">
<parameter_description> the current page, 0-based
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_set_custom_tab_label">
<description>
Sets the label for the tab holding custom widgets.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="label">
<parameter_description> the label to use, or %NULL to use the default label
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_set_default_page_setup">
<description>
Makes @default_page_setup the default page setup for @op.

This page setup will be used by [method@Gtk.PrintOperation.run],
but it can be overridden on a per-page basis by connecting
to the [signal@Gtk.PrintOperation::request-page-setup] signal.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="default_page_setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_set_defer_drawing">
<description>
Sets up the `GtkPrintOperation` to wait for calling of
[method@Gtk.PrintOperation.draw_page_finish from application.

This can be used for drawing page in another thread.

This function must be called in the callback of the
[signal@Gtk.PrintOperation::draw-page] signal.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_set_embed_page_setup">
<description>
Embed page size combo box and orientation combo box into page setup page.

Selected page setup is stored as default page setup in `GtkPrintOperation`.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="embed">
<parameter_description> %TRUE to embed page setup selection in the `GtkPrintUnixDialog`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_set_export_filename">
<description>
Sets up the `GtkPrintOperation` to generate a file instead
of showing the print dialog.

The intended use of this function is for implementing
“Export to PDF” actions. Currently, PDF is the only supported
format.

“Print to PDF” support is independent of this and is done
by letting the user pick the “Print to PDF” item from the list
of printers in the print dialog.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="filename">
<parameter_description> the filename for the exported file
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_set_has_selection">
<description>
Sets whether there is a selection to print.

Application has to set number of pages to which the selection
will draw by [method@Gtk.PrintOperation.set_n_pages] in a handler
for the [signal@Gtk.PrintOperation::begin-print] signal.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="has_selection">
<parameter_description> %TRUE indicates that a selection exists
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_set_job_name">
<description>
Sets the name of the print job.

The name is used to identify the job (e.g. in monitoring
applications like eggcups).

If you don’t set a job name, GTK picks a default one by
numbering successive print jobs.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="job_name">
<parameter_description> a string that identifies the print job
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_set_n_pages">
<description>
Sets the number of pages in the document.

This must be set to a positive number before the rendering
starts. It may be set in a [signal@Gtk.PrintOperation::begin-print]
signal handler.

Note that the page numbers passed to the
[signal@Gtk.PrintOperation::request-page-setup]
and [signal@Gtk.PrintOperation::draw-page] signals are 0-based, i.e.
if the user chooses to print all pages, the last ::draw-page signal
will be for page @n_pages - 1.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="n_pages">
<parameter_description> the number of pages
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_set_print_settings">
<description>
Sets the print settings for @op.

This is typically used to re-establish print settings
from a previous print operation, see [method@Gtk.PrintOperation.run].

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="print_settings">
<parameter_description> `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_set_show_progress">
<description>
If @show_progress is %TRUE, the print operation will show
a progress dialog during the print operation.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="show_progress">
<parameter_description> %TRUE to show a progress dialog
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_set_support_selection">
<description>
Sets whether selection is supported by `GtkPrintOperation`.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="support_selection">
<parameter_description> %TRUE to support selection
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_set_track_print_status">
<description>
If track_status is %TRUE, the print operation will try to continue
report on the status of the print job in the printer queues and printer.

This can allow your application to show things like “out of paper”
issues, and when the print job actually reaches the printer.

This function is often implemented using some form of polling,
so it should not be enabled unless needed.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="track_status">
<parameter_description> %TRUE to track status after printing
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_set_unit">
<description>
Sets up the transformation for the cairo context obtained from
`GtkPrintContext` in such a way that distances are measured in
units of @unit.

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_operation_set_use_full_page">
<description>
If @full_page is %TRUE, the transformation for the cairo context
obtained from `GtkPrintContext` puts the origin at the top left
corner of the page.

This may not be the top left corner of the sheet, depending on page
orientation and the number of pages per sheet). Otherwise, the origin
is at the top left corner of the imageable area (i.e. inside the margins).

</description>
<parameters>
<parameter name="op">
<parameter_description> a `GtkPrintOperation`
</parameter_description>
</parameter>
<parameter name="full_page">
<parameter_description> %TRUE to set up the `GtkPrintContext` for the full page
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_run_page_setup_dialog">
<description>
Runs a page setup dialog, letting the user modify the values from
@page_setup. If the user cancels the dialog, the returned `GtkPageSetup`
is identical to the passed in @page_setup, otherwise it contains the
modifications done in the dialog.

Note that this function may use a recursive mainloop to show the page
setup dialog. See gtk_print_run_page_setup_dialog_async() if this is
a problem.


</description>
<parameters>
<parameter name="parent">
<parameter_description> transient parent
</parameter_description>
</parameter>
<parameter name="page_setup">
<parameter_description> an existing `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPageSetup`
</return>
</function>

<function name="gtk_print_run_page_setup_dialog_async">
<description>
Runs a page setup dialog, letting the user modify the values from @page_setup.

In contrast to gtk_print_run_page_setup_dialog(), this function  returns after
showing the page setup dialog on platforms that support this, and calls @done_cb
from a signal handler for the ::response signal of the dialog.

</description>
<parameters>
<parameter name="parent">
<parameter_description> transient parent
</parameter_description>
</parameter>
<parameter name="page_setup">
<parameter_description> an existing `GtkPageSetup`
</parameter_description>
</parameter>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="done_cb">
<parameter_description> a function to call when the user saves
the modified page setup
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> user data to pass to @done_cb
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_copy">
<description>
Copies a `GtkPrintSettings` object.


</description>
<parameters>
<parameter name="other">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated copy of @other
</return>
</function>

<function name="gtk_print_settings_foreach">
<description>
Calls @func for each key-value pair of @settings.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the function to call
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data for @func
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_get">
<description>
Looks up the string value associated with @key.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
</parameters>
<return> the string value for @key
</return>
</function>

<function name="gtk_print_settings_get_bool">
<description>
Returns the boolean represented by the value
that is associated with @key.

The string “true” represents %TRUE, any other
string %FALSE.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if @key maps to a true value.
</return>
</function>

<function name="gtk_print_settings_get_bool_with_default">
<description>
Returns the boolean represented by the value
that is associated with @key, or @default_val
if the value does not represent a boolean.

The string “true” represents %TRUE, the string
“false” represents %FALSE.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
<parameter name="default_val">
<parameter_description> the default value
</parameter_description>
</parameter>
</parameters>
<return> the boolean value associated with @key
</return>
</function>

<function name="gtk_print_settings_get_collate">
<description>
Gets the value of %GTK_PRINT_SETTINGS_COLLATE.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> whether to collate the printed pages
</return>
</function>

<function name="gtk_print_settings_get_default_source">
<description>
Gets the value of %GTK_PRINT_SETTINGS_DEFAULT_SOURCE.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the default source
</return>
</function>

<function name="gtk_print_settings_get_dither">
<description>
Gets the value of %GTK_PRINT_SETTINGS_DITHER.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the dithering that is used
</return>
</function>

<function name="gtk_print_settings_get_double">
<description>
Returns the double value associated with @key, or 0.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
</parameters>
<return> the double value of @key
</return>
</function>

<function name="gtk_print_settings_get_double_with_default">
<description>
Returns the floating point number represented by
the value that is associated with @key, or @default_val
if the value does not represent a floating point number.

Floating point numbers are parsed with g_ascii_strtod().


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
<parameter name="def">
<parameter_description> the default value
</parameter_description>
</parameter>
</parameters>
<return> the floating point number associated with @key
</return>
</function>

<function name="gtk_print_settings_get_duplex">
<description>
Gets the value of %GTK_PRINT_SETTINGS_DUPLEX.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> whether to print the output in duplex.
</return>
</function>

<function name="gtk_print_settings_get_finishings">
<description>
Gets the value of %GTK_PRINT_SETTINGS_FINISHINGS.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the finishings
</return>
</function>

<function name="gtk_print_settings_get_int">
<description>
Returns the integer value of @key, or 0.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
</parameters>
<return> the integer value of @key
</return>
</function>

<function name="gtk_print_settings_get_int_with_default">
<description>
Returns the value of @key, interpreted as
an integer, or the default value.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
<parameter name="def">
<parameter_description> the default value
</parameter_description>
</parameter>
</parameters>
<return> the integer value of @key
</return>
</function>

<function name="gtk_print_settings_get_length">
<description>
Returns the value associated with @key, interpreted
as a length.

The returned value is converted to @units.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit of the return value
</parameter_description>
</parameter>
</parameters>
<return> the length value of @key, converted to @unit
</return>
</function>

<function name="gtk_print_settings_get_media_type">
<description>
Gets the value of %GTK_PRINT_SETTINGS_MEDIA_TYPE.

The set of media types is defined in PWG 5101.1-2002 PWG.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the media type
</return>
</function>

<function name="gtk_print_settings_get_n_copies">
<description>
Gets the value of %GTK_PRINT_SETTINGS_N_COPIES.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the number of copies to print
</return>
</function>

<function name="gtk_print_settings_get_number_up">
<description>
Gets the value of %GTK_PRINT_SETTINGS_NUMBER_UP.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the number of pages per sheet
</return>
</function>

<function name="gtk_print_settings_get_number_up_layout">
<description>
Gets the value of %GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> layout of page in number-up mode
</return>
</function>

<function name="gtk_print_settings_get_orientation">
<description>
Get the value of %GTK_PRINT_SETTINGS_ORIENTATION,
converted to a `GtkPageOrientation`.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the orientation
</return>
</function>

<function name="gtk_print_settings_get_output_bin">
<description>
Gets the value of %GTK_PRINT_SETTINGS_OUTPUT_BIN.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the output bin
</return>
</function>

<function name="gtk_print_settings_get_page_ranges">
<description>
Gets the value of %GTK_PRINT_SETTINGS_PAGE_RANGES.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="num_ranges">
<parameter_description> return location for the length of the returned array
</parameter_description>
</parameter>
</parameters>
<return> an array
of `GtkPageRange`s. Use g_free() to free the array when
it is no longer needed.
</return>
</function>

<function name="gtk_print_settings_get_page_set">
<description>
Gets the value of %GTK_PRINT_SETTINGS_PAGE_SET.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the set of pages to print
</return>
</function>

<function name="gtk_print_settings_get_paper_height">
<description>
Gets the value of %GTK_PRINT_SETTINGS_PAPER_HEIGHT,
converted to @unit.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for the return value
</parameter_description>
</parameter>
</parameters>
<return> the paper height, in units of @unit
</return>
</function>

<function name="gtk_print_settings_get_paper_size">
<description>
Gets the value of %GTK_PRINT_SETTINGS_PAPER_FORMAT,
converted to a `GtkPaperSize`.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the paper size
</return>
</function>

<function name="gtk_print_settings_get_paper_width">
<description>
Gets the value of %GTK_PRINT_SETTINGS_PAPER_WIDTH,
converted to @unit.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit for the return value
</parameter_description>
</parameter>
</parameters>
<return> the paper width, in units of @unit
</return>
</function>

<function name="gtk_print_settings_get_print_pages">
<description>
Gets the value of %GTK_PRINT_SETTINGS_PRINT_PAGES.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> which pages to print
</return>
</function>

<function name="gtk_print_settings_get_printer">
<description>
Convenience function to obtain the value of
%GTK_PRINT_SETTINGS_PRINTER.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the printer name
</return>
</function>

<function name="gtk_print_settings_get_printer_lpi">
<description>
Gets the value of %GTK_PRINT_SETTINGS_PRINTER_LPI.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the resolution in lpi (lines per inch)
</return>
</function>

<function name="gtk_print_settings_get_quality">
<description>
Gets the value of %GTK_PRINT_SETTINGS_QUALITY.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the print quality
</return>
</function>

<function name="gtk_print_settings_get_resolution">
<description>
Gets the value of %GTK_PRINT_SETTINGS_RESOLUTION.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the resolution in dpi
</return>
</function>

<function name="gtk_print_settings_get_resolution_x">
<description>
Gets the value of %GTK_PRINT_SETTINGS_RESOLUTION_X.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the horizontal resolution in dpi
</return>
</function>

<function name="gtk_print_settings_get_resolution_y">
<description>
Gets the value of %GTK_PRINT_SETTINGS_RESOLUTION_Y.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the vertical resolution in dpi
</return>
</function>

<function name="gtk_print_settings_get_reverse">
<description>
Gets the value of %GTK_PRINT_SETTINGS_REVERSE.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return>  whether to reverse the order of the printed pages
</return>
</function>

<function name="gtk_print_settings_get_scale">
<description>
Gets the value of %GTK_PRINT_SETTINGS_SCALE.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> the scale in percent
</return>
</function>

<function name="gtk_print_settings_get_use_color">
<description>
Gets the value of %GTK_PRINT_SETTINGS_USE_COLOR.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> whether to use color
</return>
</function>

<function name="gtk_print_settings_has_key">
<description>
Returns %TRUE, if a value is associated with @key.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if @key has a value
</return>
</function>

<function name="gtk_print_settings_load_file">
<description>
Reads the print settings from @file_name.

If the file could not be loaded then error is set to either
a `GFileError` or `GKeyFileError`.

See [method@Gtk.PrintSettings.to_file].


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="file_name">
<parameter_description> the filename to read the settings from
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for errors
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success
</return>
</function>

<function name="gtk_print_settings_load_key_file">
<description>
Reads the print settings from the group @group_name in @key_file.

If the file could not be loaded then error is set to either a
`GFileError` or `GKeyFileError`.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key_file">
<parameter_description> the `GKeyFile` to retrieve the settings from
</parameter_description>
</parameter>
<parameter name="group_name">
<parameter_description> the name of the group to use, or %NULL
to use the default “Print Settings”
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for errors
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success
</return>
</function>

<function name="gtk_print_settings_new">
<description>
Creates a new `GtkPrintSettings` object.


</description>
<parameters>
</parameters>
<return> a new `GtkPrintSettings` object
</return>
</function>

<function name="gtk_print_settings_new_from_file">
<description>
Reads the print settings from @file_name.


</description>
<parameters>
<parameter name="file_name">
<parameter_description> the filename to read the settings from
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for errors
</parameter_description>
</parameter>
</parameters>
<return> the restored `GtkPrintSettings`
</return>
</function>

<function name="gtk_print_settings_new_from_gvariant">
<description>
Deserialize print settings from an a{sv} variant.

The variant must be in the format produced by
[method@Gtk.PrintSettings.to_gvariant].


</description>
<parameters>
<parameter name="variant">
<parameter_description> an a{sv} `GVariant`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPrintSettings` object
</return>
</function>

<function name="gtk_print_settings_new_from_key_file">
<description>
Reads the print settings from the group @group_name in @key_file.


</description>
<parameters>
<parameter name="key_file">
<parameter_description> the `GKeyFile` to retrieve the settings from
</parameter_description>
</parameter>
<parameter name="group_name">
<parameter_description> the name of the group to use, or %NULL to use
the default “Print Settings”
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for errors
</parameter_description>
</parameter>
</parameters>
<return> the restored `GtkPrintSettings`
</return>
</function>

<function name="gtk_print_settings_set">
<description>
Associates @value with @key.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a string value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_bool">
<description>
Sets @key to a boolean value.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a boolean
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_collate">
<description>
Sets the value of %GTK_PRINT_SETTINGS_COLLATE.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="collate">
<parameter_description> whether to collate the output
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_default_source">
<description>
Sets the value of %GTK_PRINT_SETTINGS_DEFAULT_SOURCE.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="default_source">
<parameter_description> the default source
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_dither">
<description>
Sets the value of %GTK_PRINT_SETTINGS_DITHER.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="dither">
<parameter_description> the dithering that is used
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_double">
<description>
Sets @key to a double value.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a double value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_duplex">
<description>
Sets the value of %GTK_PRINT_SETTINGS_DUPLEX.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="duplex">
<parameter_description> a `GtkPrintDuplex` value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_finishings">
<description>
Sets the value of %GTK_PRINT_SETTINGS_FINISHINGS.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="finishings">
<parameter_description> the finishings
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_int">
<description>
Sets @key to an integer value.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> an integer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_length">
<description>
Associates a length in units of @unit with @key.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a length
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the unit of @length
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_media_type">
<description>
Sets the value of %GTK_PRINT_SETTINGS_MEDIA_TYPE.

The set of media types is defined in PWG 5101.1-2002 PWG.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="media_type">
<parameter_description> the media type
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_n_copies">
<description>
Sets the value of %GTK_PRINT_SETTINGS_N_COPIES.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="num_copies">
<parameter_description> the number of copies
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_number_up">
<description>
Sets the value of %GTK_PRINT_SETTINGS_NUMBER_UP.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="number_up">
<parameter_description> the number of pages per sheet
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_number_up_layout">
<description>
Sets the value of %GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="number_up_layout">
<parameter_description> a `GtkNumberUpLayout` value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_orientation">
<description>
Sets the value of %GTK_PRINT_SETTINGS_ORIENTATION.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="orientation">
<parameter_description> a page orientation
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_output_bin">
<description>
Sets the value of %GTK_PRINT_SETTINGS_OUTPUT_BIN.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="output_bin">
<parameter_description> the output bin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_page_ranges">
<description>
Sets the value of %GTK_PRINT_SETTINGS_PAGE_RANGES.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="page_ranges">
<parameter_description> an array of `GtkPageRange`s
</parameter_description>
</parameter>
<parameter name="num_ranges">
<parameter_description> the length of @page_ranges
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_page_set">
<description>
Sets the value of %GTK_PRINT_SETTINGS_PAGE_SET.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="page_set">
<parameter_description> a `GtkPageSet` value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_paper_height">
<description>
Sets the value of %GTK_PRINT_SETTINGS_PAPER_HEIGHT.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the paper height
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the units of @height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_paper_size">
<description>
Sets the value of %GTK_PRINT_SETTINGS_PAPER_FORMAT,
%GTK_PRINT_SETTINGS_PAPER_WIDTH and
%GTK_PRINT_SETTINGS_PAPER_HEIGHT.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="paper_size">
<parameter_description> a paper size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_paper_width">
<description>
Sets the value of %GTK_PRINT_SETTINGS_PAPER_WIDTH.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the paper width
</parameter_description>
</parameter>
<parameter name="unit">
<parameter_description> the units of @width
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_print_pages">
<description>
Sets the value of %GTK_PRINT_SETTINGS_PRINT_PAGES.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="pages">
<parameter_description> a `GtkPrintPages` value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_printer">
<description>
Convenience function to set %GTK_PRINT_SETTINGS_PRINTER
to @printer.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="printer">
<parameter_description> the printer name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_printer_lpi">
<description>
Sets the value of %GTK_PRINT_SETTINGS_PRINTER_LPI.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="lpi">
<parameter_description> the resolution in lpi (lines per inch)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_quality">
<description>
Sets the value of %GTK_PRINT_SETTINGS_QUALITY.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="quality">
<parameter_description> a `GtkPrintQuality` value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_resolution">
<description>
Sets the values of %GTK_PRINT_SETTINGS_RESOLUTION,
%GTK_PRINT_SETTINGS_RESOLUTION_X and
%GTK_PRINT_SETTINGS_RESOLUTION_Y.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="resolution">
<parameter_description> the resolution in dpi
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_resolution_xy">
<description>
Sets the values of %GTK_PRINT_SETTINGS_RESOLUTION,
%GTK_PRINT_SETTINGS_RESOLUTION_X and
%GTK_PRINT_SETTINGS_RESOLUTION_Y.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="resolution_x">
<parameter_description> the horizontal resolution in dpi
</parameter_description>
</parameter>
<parameter name="resolution_y">
<parameter_description> the vertical resolution in dpi
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_reverse">
<description>
Sets the value of %GTK_PRINT_SETTINGS_REVERSE.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="reverse">
<parameter_description> whether to reverse the output
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_scale">
<description>
Sets the value of %GTK_PRINT_SETTINGS_SCALE.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> the scale in percent
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_set_use_color">
<description>
Sets the value of %GTK_PRINT_SETTINGS_USE_COLOR.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="use_color">
<parameter_description> whether to use color
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_to_file">
<description>
This function saves the print settings from @settings to @file_name.

If the file could not be written then error is set to either a
`GFileError` or `GKeyFileError`.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="file_name">
<parameter_description> the file to save to
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for errors
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success
</return>
</function>

<function name="gtk_print_settings_to_gvariant">
<description>
Serialize print settings to an a{sv} variant.


</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return> a new, floating, `GVariant`
</return>
</function>

<function name="gtk_print_settings_to_key_file">
<description>
This function adds the print settings from @settings to @key_file.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key_file">
<parameter_description> the `GKeyFile` to save the print settings to
</parameter_description>
</parameter>
<parameter name="group_name">
<parameter_description> the group to add the settings to in @key_file, or
%NULL to use the default “Print Settings”
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_settings_unset">
<description>
Removes any value associated with @key.

This has the same effect as setting the value to %NULL.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
<parameter name="key">
<parameter_description> a key
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_setup_get_page_setup">
<description>
Returns the page setup of @setup.

It may be different from the `GtkPrintDialog`'s page setup
if the user changed it during the setup process.

Since: 4.14

</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPrintSetup`
</parameter_description>
</parameter>
</parameters>
<return> the page setup, or `NULL`

</return>
</function>

<function name="gtk_print_setup_get_print_settings">
<description>
Returns the print settings of @setup.

They may be different from the `GtkPrintDialog`'s settings
if the user changed them during the setup process.

Since: 4.14

</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPrintSetup`
</parameter_description>
</parameter>
</parameters>
<return> the print settings, or `NULL`

</return>
</function>

<function name="gtk_print_setup_ref">
<description>
Increase the reference count of @setup.

Since: 4.14

</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPrintSetup`
</parameter_description>
</parameter>
</parameters>
<return> the print setup

</return>
</function>

<function name="gtk_print_setup_unref">
<description>
Decrease the reference count of @setup.

If the reference count reaches zero,
the object is freed.

Since: 4.14

</description>
<parameters>
<parameter name="setup">
<parameter_description> a `GtkPrintSetup`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_unix_dialog_add_custom_tab">
<description>
Adds a custom tab to the print dialog.

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the widget to put in the custom tab
</parameter_description>
</parameter>
<parameter name="tab_label">
<parameter_description> the widget to use as tab label
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_unix_dialog_get_current_page">
<description>
Gets the current page of the `GtkPrintUnixDialog`.


</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
</parameters>
<return> the current page of @dialog
</return>
</function>

<function name="gtk_print_unix_dialog_get_embed_page_setup">
<description>
Gets whether to embed the page setup.


</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
</parameters>
<return> whether to embed the page setup
</return>
</function>

<function name="gtk_print_unix_dialog_get_has_selection">
<description>
Gets whether there is a selection.


</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
</parameters>
<return> whether there is a selection
</return>
</function>

<function name="gtk_print_unix_dialog_get_manual_capabilities">
<description>
Gets the capabilities that have been set on this `GtkPrintUnixDialog`.


</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
</parameters>
<return> the printing capabilities
</return>
</function>

<function name="gtk_print_unix_dialog_get_page_setup">
<description>
Gets the page setup that is used by the `GtkPrintUnixDialog`.


</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
</parameters>
<return> the page setup of @dialog.
</return>
</function>

<function name="gtk_print_unix_dialog_get_page_setup_set">
<description>
Gets whether a page setup was set by the user.


</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
</parameters>
<return> whether a page setup was set by user.
</return>
</function>

<function name="gtk_print_unix_dialog_get_selected_printer">
<description>
Gets the currently selected printer.


</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
</parameters>
<return> the currently selected printer
</return>
</function>

<function name="gtk_print_unix_dialog_get_settings">
<description>
Gets a new `GtkPrintSettings` object that represents the
current values in the print dialog.

Note that this creates a new object, and you need to unref
it if don’t want to keep it.


</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPrintSettings` object with the values from @dialog
</return>
</function>

<function name="gtk_print_unix_dialog_get_support_selection">
<description>
Gets whether the print dialog allows user to print a selection.


</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
</parameters>
<return> whether the application supports print of selection
</return>
</function>

<function name="gtk_print_unix_dialog_new">
<description>
Creates a new `GtkPrintUnixDialog`.


</description>
<parameters>
<parameter name="title">
<parameter_description> Title of the dialog
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> Transient parent of the dialog
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPrintUnixDialog`
</return>
</function>

<function name="gtk_print_unix_dialog_set_current_page">
<description>
Sets the current page number.

If @current_page is not -1, this enables the current page choice
for the range of pages to print.

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
<parameter name="current_page">
<parameter_description> the current page number.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_unix_dialog_set_embed_page_setup">
<description>
Embed page size combo box and orientation combo box into page setup page.

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
<parameter name="embed">
<parameter_description> embed page setup selection
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_unix_dialog_set_has_selection">
<description>
Sets whether a selection exists.

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
<parameter name="has_selection">
<parameter_description> %TRUE indicates that a selection exists
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_unix_dialog_set_manual_capabilities">
<description>
This lets you specify the printing capabilities your application
supports.

For instance, if you can handle scaling the output then you pass
%GTK_PRINT_CAPABILITY_SCALE. If you don’t pass that, then the dialog
will only let you select the scale if the printing system automatically
handles scaling.

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
<parameter name="capabilities">
<parameter_description> the printing capabilities of your application
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_unix_dialog_set_page_setup">
<description>
Sets the page setup of the `GtkPrintUnixDialog`.

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
<parameter name="page_setup">
<parameter_description> a `GtkPageSetup`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_unix_dialog_set_settings">
<description>
Sets the `GtkPrintSettings` for the `GtkPrintUnixDialog`.

Typically, this is used to restore saved print settings
from a previous print operation before the print dialog
is shown.

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
<parameter name="settings">
<parameter_description> a `GtkPrintSettings`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_print_unix_dialog_set_support_selection">
<description>
Sets whether the print dialog allows user to print a selection.

</description>
<parameters>
<parameter name="dialog">
<parameter_description> a `GtkPrintUnixDialog`
</parameter_description>
</parameter>
<parameter name="support_selection">
<parameter_description> %TRUE to allow print selection
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_printer_accepts_pdf">
<description>
Returns whether the printer accepts input in
PDF format.


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @printer accepts PDF
</return>
</function>

<function name="gtk_printer_accepts_ps">
<description>
Returns whether the printer accepts input in
PostScript format.


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @printer accepts PostScript
</return>
</function>

<function name="gtk_printer_compare">
<description>
Compares two printers.


</description>
<parameters>
<parameter name="a">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> another `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> 0 if the printer match, a negative value if @a &lt; @b,
or a positive value if @a &gt; @b
</return>
</function>

<function name="gtk_printer_get_backend">
<description>
Returns the backend of the printer.


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> the backend of @printer
</return>
</function>

<function name="gtk_printer_get_capabilities">
<description>
Returns the printer’s capabilities.

This is useful when you’re using `GtkPrintUnixDialog`’s
manual-capabilities setting and need to know which settings
the printer can handle and which you must handle yourself.

This will return 0 unless the printer’s details are
available, see [method@Gtk.Printer.has_details] and
[method@Gtk.Printer.request_details].


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> the printer’s capabilities
</return>
</function>

<function name="gtk_printer_get_default_page_size">
<description>
Returns default page size of @printer.


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated `GtkPageSetup` with default page size
of the printer.
</return>
</function>

<function name="gtk_printer_get_description">
<description>
Gets the description of the printer.


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> the description of @printer
</return>
</function>

<function name="gtk_printer_get_hard_margins">
<description>
Retrieve the hard margins of @printer.

These are the margins that define the area at the borders
of the paper that the printer cannot print to.

Note: This will not succeed unless the printer’s details are
available, see [method@Gtk.Printer.has_details] and
[method@Gtk.Printer.request_details].


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
<parameter name="top">
<parameter_description> a location to store the top margin in
</parameter_description>
</parameter>
<parameter name="bottom">
<parameter_description> a location to store the bottom margin in
</parameter_description>
</parameter>
<parameter name="left">
<parameter_description> a location to store the left margin in
</parameter_description>
</parameter>
<parameter name="right">
<parameter_description> a location to store the right margin in
</parameter_description>
</parameter>
</parameters>
<return> %TRUE iff the hard margins were retrieved
</return>
</function>

<function name="gtk_printer_get_hard_margins_for_paper_size">
<description>
Retrieve the hard margins of @printer for @paper_size.

These are the margins that define the area at the borders
of the paper that the printer cannot print to.

Note: This will not succeed unless the printer’s details are
available, see [method@Gtk.Printer.has_details] and
[method@Gtk.Printer.request_details].


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
<parameter name="paper_size">
<parameter_description> a `GtkPaperSize`
</parameter_description>
</parameter>
<parameter name="top">
<parameter_description> a location to store the top margin in
</parameter_description>
</parameter>
<parameter name="bottom">
<parameter_description> a location to store the bottom margin in
</parameter_description>
</parameter>
<parameter name="left">
<parameter_description> a location to store the left margin in
</parameter_description>
</parameter>
<parameter name="right">
<parameter_description> a location to store the right margin in
</parameter_description>
</parameter>
</parameters>
<return> %TRUE iff the hard margins were retrieved
</return>
</function>

<function name="gtk_printer_get_icon_name">
<description>
Gets the name of the icon to use for the printer.


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> the icon name for @printer
</return>
</function>

<function name="gtk_printer_get_job_count">
<description>
Gets the number of jobs currently queued on the printer.


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> the number of jobs on @printer
</return>
</function>

<function name="gtk_printer_get_location">
<description>
Returns a description of the location of the printer.


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> the location of @printer
</return>
</function>

<function name="gtk_printer_get_name">
<description>
Returns the name of the printer.


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> the name of @printer
</return>
</function>

<function name="gtk_printer_get_state_message">
<description>
Returns the state message describing the current state
of the printer.


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> the state message of @printer
</return>
</function>

<function name="gtk_printer_has_details">
<description>
Returns whether the printer details are available.


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @printer details are available
</return>
</function>

<function name="gtk_printer_is_accepting_jobs">
<description>
Returns whether the printer is accepting jobs


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @printer is accepting jobs
</return>
</function>

<function name="gtk_printer_is_active">
<description>
Returns whether the printer is currently active (i.e.
accepts new jobs).


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @printer is active
</return>
</function>

<function name="gtk_printer_is_default">
<description>
Returns whether the printer is the default printer.


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @printer is the default
</return>
</function>

<function name="gtk_printer_is_paused">
<description>
Returns whether the printer is currently paused.

A paused printer still accepts jobs, but it is not
printing them.


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @printer is paused
</return>
</function>

<function name="gtk_printer_is_virtual">
<description>
Returns whether the printer is virtual (i.e. does not
represent actual printer hardware, but something like
a CUPS class).


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @printer is virtual
</return>
</function>

<function name="gtk_printer_list_papers">
<description>
Lists all the paper sizes @printer supports.

This will return and empty list unless the printer’s details
are available, see [method@Gtk.Printer.has_details] and
[method@Gtk.Printer.request_details].


</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return> a newly
allocated list of newly allocated `GtkPageSetup`s.
</return>
</function>

<function name="gtk_printer_new">
<description>
Creates a new `GtkPrinter`.


</description>
<parameters>
<parameter name="name">
<parameter_description> the name of the printer
</parameter_description>
</parameter>
<parameter name="backend">
<parameter_description> a `GtkPrintBackend`
</parameter_description>
</parameter>
<parameter name="virtual_">
<parameter_description> whether the printer is virtual
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkPrinter`
</return>
</function>

<function name="gtk_printer_option_set_get_groups">
<description>
Gets the groups in this set.


</description>
<parameters>
<parameter name="set">
<parameter_description> a `GtkPrinterOptionSet`
</parameter_description>
</parameter>
</parameters>
<return> a list of group names.
</return>
</function>

<function name="gtk_printer_request_details">
<description>
Requests the printer details.

When the details are available, the
[signal@Gtk.Printer::details-acquired] signal
will be emitted on @printer.

</description>
<parameters>
<parameter name="printer">
<parameter_description> a `GtkPrinter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_progress_bar_get_ellipsize">
<description>
Returns the ellipsizing position of the progress bar.

See [method@Gtk.ProgressBar.set_ellipsize].


</description>
<parameters>
<parameter name="pbar">
<parameter_description> a `GtkProgressBar`
</parameter_description>
</parameter>
</parameters>
<return> `PangoEllipsizeMode`
</return>
</function>

<function name="gtk_progress_bar_get_fraction">
<description>
Returns the current fraction of the task that’s been completed.


</description>
<parameters>
<parameter name="pbar">
<parameter_description> a `GtkProgressBar`
</parameter_description>
</parameter>
</parameters>
<return> a fraction from 0.0 to 1.0
</return>
</function>

<function name="gtk_progress_bar_get_inverted">
<description>
Returns whether the progress bar is inverted.


</description>
<parameters>
<parameter name="pbar">
<parameter_description> a `GtkProgressBar`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the progress bar is inverted
</return>
</function>

<function name="gtk_progress_bar_get_pulse_step">
<description>
Retrieves the pulse step.

See [method@Gtk.ProgressBar.set_pulse_step].


</description>
<parameters>
<parameter name="pbar">
<parameter_description> a `GtkProgressBar`
</parameter_description>
</parameter>
</parameters>
<return> a fraction from 0.0 to 1.0
</return>
</function>

<function name="gtk_progress_bar_get_show_text">
<description>
Returns whether the `GtkProgressBar` shows text.

See [method@Gtk.ProgressBar.set_show_text].


</description>
<parameters>
<parameter name="pbar">
<parameter_description> a `GtkProgressBar`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if text is shown in the progress bar
</return>
</function>

<function name="gtk_progress_bar_get_text">
<description>
Retrieves the text that is displayed with the progress bar.

The return value is a reference to the text, not a copy of it,
so will become invalid if you change the text in the progress bar.


</description>
<parameters>
<parameter name="pbar">
<parameter_description> a `GtkProgressBar`
</parameter_description>
</parameter>
</parameters>
<return> the text
</return>
</function>

<function name="gtk_progress_bar_new">
<description>
Creates a new `GtkProgressBar`.


</description>
<parameters>
</parameters>
<return> a `GtkProgressBar`.
</return>
</function>

<function name="gtk_progress_bar_pulse">
<description>
Indicates that some progress has been made, but you don’t know how much.

Causes the progress bar to enter “activity mode,” where a block
bounces back and forth. Each call to [method@Gtk.ProgressBar.pulse]
causes the block to move by a little bit (the amount of movement
per pulse is determined by [method@Gtk.ProgressBar.set_pulse_step]).

</description>
<parameters>
<parameter name="pbar">
<parameter_description> a `GtkProgressBar`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_progress_bar_set_ellipsize">
<description>
Sets the mode used to ellipsize the text.

The text is ellipsized if there is not enough space
to render the entire string.

</description>
<parameters>
<parameter name="pbar">
<parameter_description> a `GtkProgressBar`
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> a `PangoEllipsizeMode`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_progress_bar_set_fraction">
<description>
Causes the progress bar to “fill in” the given fraction
of the bar.

The fraction should be between 0.0 and 1.0, inclusive.

</description>
<parameters>
<parameter name="pbar">
<parameter_description> a `GtkProgressBar`
</parameter_description>
</parameter>
<parameter name="fraction">
<parameter_description> fraction of the task that’s been completed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_progress_bar_set_inverted">
<description>
Sets whether the progress bar is inverted.

Progress bars normally grow from top to bottom or left to right.
Inverted progress bars grow in the opposite direction.

</description>
<parameters>
<parameter name="pbar">
<parameter_description> a `GtkProgressBar`
</parameter_description>
</parameter>
<parameter name="inverted">
<parameter_description> %TRUE to invert the progress bar
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_progress_bar_set_pulse_step">
<description>
Sets the fraction of total progress bar length to move the
bouncing block.

The bouncing block is moved when [method@Gtk.ProgressBar.pulse]
is called.

</description>
<parameters>
<parameter name="pbar">
<parameter_description> a `GtkProgressBar`
</parameter_description>
</parameter>
<parameter name="fraction">
<parameter_description> fraction between 0.0 and 1.0
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_progress_bar_set_show_text">
<description>
Sets whether the progress bar will show text next to the bar.

The shown text is either the value of the [property@Gtk.ProgressBar:text]
property or, if that is %NULL, the [property@Gtk.ProgressBar:fraction] value,
as a percentage.

To make a progress bar that is styled and sized suitably for containing
text (even if the actual text is blank), set [property@Gtk.ProgressBar:show-text]
to %TRUE and [property@Gtk.ProgressBar:text] to the empty string (not %NULL).

</description>
<parameters>
<parameter name="pbar">
<parameter_description> a `GtkProgressBar`
</parameter_description>
</parameter>
<parameter name="show_text">
<parameter_description> whether to show text
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_progress_bar_set_text">
<description>
Causes the given @text to appear next to the progress bar.

If @text is %NULL and [property@Gtk.ProgressBar:show-text] is %TRUE,
the current value of [property@Gtk.ProgressBar:fraction] will be displayed
as a percentage.

If @text is non-%NULL and [property@Gtk.ProgressBar:show-text] is %TRUE,
the text will be displayed. In this case, it will not display the progress
percentage. If @text is the empty string, the progress bar will still
be styled and sized suitably for containing text, as long as
[property@Gtk.ProgressBar:show-text] is %TRUE.

</description>
<parameters>
<parameter name="pbar">
<parameter_description> a `GtkProgressBar`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> a UTF-8 string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_progress_tracker_advance_frame">
<description>
Increments the progress of the animation forward a frame. If no animation has
been started, does nothing.

</description>
<parameters>
<parameter name="tracker">
<parameter_description> The progress tracker
</parameter_description>
</parameter>
<parameter name="frame_time">
<parameter_description> The current frame time, usually from the frame clock.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_progress_tracker_finish">
<description>
Stops running the current animation.

</description>
<parameters>
<parameter name="tracker">
<parameter_description> The progress tracker
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_progress_tracker_get_ease_out_cubic">
<description>
Applies a simple ease out cubic function to the result of
gtk_progress_tracker_get_progress().


</description>
<parameters>
<parameter name="tracker">
<parameter_description> The progress tracker
</parameter_description>
</parameter>
<parameter name="reversed">
<parameter_description> If progress should be reversed before applying the ease function.
</parameter_description>
</parameter>
</parameters>
<return> The eased progress value.
</return>
</function>

<function name="gtk_progress_tracker_get_iteration">
<description>
Returns the fractional number of cycles the animation has completed. For
example, it you started an animation with iteration-count of 2 and are half
way through the second animation, this returns 1.5.


</description>
<parameters>
<parameter name="tracker">
<parameter_description> The progress tracker
</parameter_description>
</parameter>
</parameters>
<return> The current iteration.
</return>
</function>

<function name="gtk_progress_tracker_get_iteration_cycle">
<description>
Returns an integer index of the current iteration cycle tracker is
progressing through. Handles edge cases, such as an iteration value of 2.0
which could be considered the end of the second iteration of the beginning of
the third, in the same way as gtk_progress_tracker_get_progress().


</description>
<parameters>
<parameter name="tracker">
<parameter_description> The progress tracker
</parameter_description>
</parameter>
</parameters>
<return> The integer count of the current animation cycle.
</return>
</function>

<function name="gtk_progress_tracker_get_progress">
<description>
Gets the progress through the current animation iteration, from [0, 1]. Use
to interpolate between animation targets. If reverse is true each iteration
will begin at 1 and end at 0.


</description>
<parameters>
<parameter name="tracker">
<parameter_description> The progress tracker
</parameter_description>
</parameter>
<parameter name="reversed">
<parameter_description> If progress should be reversed.
</parameter_description>
</parameter>
</parameters>
<return> The progress value.
</return>
</function>

<function name="gtk_progress_tracker_get_state">
<description>
Returns whether the tracker is before, during or after the currently started
animation. The tracker will only ever be in the before state if the animation
was started with a delay. If no animation has been started, returns
%GTK_PROGRESS_STATE_AFTER.


</description>
<parameters>
<parameter name="tracker">
<parameter_description> The progress tracker
</parameter_description>
</parameter>
</parameters>
<return> A GtkProgressState
</return>
</function>

<function name="gtk_progress_tracker_init_copy">
<description>
Copy all progress tracker state from the source tracker to dest tracker.

</description>
<parameters>
<parameter name="source">
<parameter_description> The source progress tracker
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description> The destination progress tracker
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_progress_tracker_skip_frame">
<description>
Does not update the progress of the animation forward, but records the frame
to calculate future deltas. Calling this each frame will effectively pause
the animation.

</description>
<parameters>
<parameter name="tracker">
<parameter_description> The progress tracker
</parameter_description>
</parameter>
<parameter name="frame_time">
<parameter_description> The current frame time, usually from the frame clock.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_progress_tracker_start">
<description>
Begins tracking progress for a new animation. Clears all previous state.

</description>
<parameters>
<parameter name="tracker">
<parameter_description> The progress tracker
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> Animation duration in us
</parameter_description>
</parameter>
<parameter name="delay">
<parameter_description> Animation delay in us
</parameter_description>
</parameter>
<parameter name="iteration_count">
<parameter_description> Number of iterations to run the animation, must be &gt;= 0
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_propagate_event">
<description>
Sends an event to a widget, propagating the event to parent widgets
if the event remains unhandled. This function will emit the event
through all the hierarchy of @widget through all propagation phases.

Events received by GTK from GDK normally begin at a `GtkRoot` widget.
Depending on the type of event, existence of modal dialogs, grabs, etc.,
the event may be propagated; if so, this function is used.

All that said, you most likely don’t want to use any of these
functions; synthesizing events is rarely needed. There are almost
certainly better ways to achieve your goals. For example, use
gtk_widget_queue_draw() instead
of making up expose events.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> an event
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the event was handled
</return>
</function>

<function name="gtk_property_expression_get_expression">
<description>
Gets the expression specifying the object of
a property expression.


</description>
<parameters>
<parameter name="expression">
<parameter_description> a property `GtkExpression`
</parameter_description>
</parameter>
</parameters>
<return> the object expression
</return>
</function>

<function name="gtk_property_expression_get_pspec">
<description>
Gets the `GParamSpec` specifying the property of
a property expression.


</description>
<parameters>
<parameter name="expression">
<parameter_description> a property `GtkExpression`
</parameter_description>
</parameter>
</parameters>
<return> the `GParamSpec` for the property
</return>
</function>

<function name="gtk_property_expression_new">
<description>
Creates an expression that looks up a property.

The object to use is found by evaluating the `expression`,
or using the `this` argument when `expression` is `NULL`.

If the resulting object conforms to `this_type`, its property named
`property_name` will be queried. Otherwise, this expression's
evaluation will fail.

The given `this_type` must have a property with `property_name`.


</description>
<parameters>
<parameter name="this_type">
<parameter_description> The type to expect for the this type
</parameter_description>
</parameter>
<parameter name="expression">
<parameter_description> Expression to
evaluate to get the object to query or `NULL` to
query the `this` object
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> name of the property
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkExpression`
</return>
</function>

<function name="gtk_property_expression_new_for_pspec">
<description>
Creates an expression that looks up a property.

The object to use is found by evaluating the `expression`,
or using the `this` argument when `expression` is `NULL`.

If the resulting object conforms to `this_type`, its
property specified by `pspec` will be queried.
Otherwise, this expression's evaluation will fail.


</description>
<parameters>
<parameter name="expression">
<parameter_description> Expression to
evaluate to get the object to query or `NULL` to
query the `this` object
</parameter_description>
</parameter>
<parameter name="pspec">
<parameter_description> the `GParamSpec` for the property to query
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkExpression`
</return>
</function>

<function name="gtk_range_get_adjustment">
<description>
Get the adjustment which is the “model” object for `GtkRange`.


</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkAdjustment`
</return>
</function>

<function name="gtk_range_get_fill_level">
<description>
Gets the current position of the fill level indicator.


</description>
<parameters>
<parameter name="range">
<parameter_description> A `GtkRange`
</parameter_description>
</parameter>
</parameters>
<return> The current fill level
</return>
</function>

<function name="gtk_range_get_flippable">
<description>
Gets whether the `GtkRange` respects text direction.

See [method@Gtk.Range.set_flippable].


</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the range is flippable
</return>
</function>

<function name="gtk_range_get_inverted">
<description>
Gets whether the range is inverted.

See [method@Gtk.Range.set_inverted].


</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the range is inverted
</return>
</function>

<function name="gtk_range_get_range_rect">
<description>
This function returns the area that contains the range’s trough,
in coordinates relative to @range's origin.

This function is useful mainly for `GtkRange` subclasses.

</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
<parameter name="range_rect">
<parameter_description> return location for the range rectangle
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_range_get_restrict_to_fill_level">
<description>
Gets whether the range is restricted to the fill level.


</description>
<parameters>
<parameter name="range">
<parameter_description> A `GtkRange`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @range is restricted to the fill level.
</return>
</function>

<function name="gtk_range_get_round_digits">
<description>
Gets the number of digits to round the value to when
it changes.

See [signal@Gtk.Range::change-value].


</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
</parameters>
<return> the number of digits to round to
</return>
</function>

<function name="gtk_range_get_show_fill_level">
<description>
Gets whether the range displays the fill level graphically.


</description>
<parameters>
<parameter name="range">
<parameter_description> A `GtkRange`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @range shows the fill level.
</return>
</function>

<function name="gtk_range_get_slider_range">
<description>
This function returns sliders range along the long dimension,
in widget-&gt;window coordinates.

This function is useful mainly for `GtkRange` subclasses.

</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
<parameter name="slider_start">
<parameter_description> return location for the slider's start
</parameter_description>
</parameter>
<parameter name="slider_end">
<parameter_description> return location for the slider's end
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_range_get_slider_size_fixed">
<description>
This function is useful mainly for `GtkRange` subclasses.

See [method@Gtk.Range.set_slider_size_fixed].


</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
</parameters>
<return> whether the range’s slider has a fixed size.
</return>
</function>

<function name="gtk_range_get_value">
<description>
Gets the current value of the range.


</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
</parameters>
<return> current value of the range.
</return>
</function>

<function name="gtk_range_set_adjustment">
<description>
Sets the adjustment to be used as the “model” object for the `GtkRange`

The adjustment indicates the current range value, the minimum and
maximum range values, the step/page increments used for keybindings
and scrolling, and the page size.

The page size is normally 0 for `GtkScale` and nonzero for `GtkScrollbar`,
and indicates the size of the visible area of the widget being scrolled.
The page size affects the size of the scrollbar slider.

</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_range_set_fill_level">
<description>
Set the new position of the fill level indicator.

The “fill level” is probably best described by its most prominent
use case, which is an indicator for the amount of pre-buffering in
a streaming media player. In that use case, the value of the range
would indicate the current play position, and the fill level would
be the position up to which the file/stream has been downloaded.

This amount of prebuffering can be displayed on the range’s trough
and is themeable separately from the trough. To enable fill level
display, use [method@Gtk.Range.set_show_fill_level]. The range defaults
to not showing the fill level.

Additionally, it’s possible to restrict the range’s slider position
to values which are smaller than the fill level. This is controlled
by [method@Gtk.Range.set_restrict_to_fill_level] and is by default
enabled.

</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
<parameter name="fill_level">
<parameter_description> the new position of the fill level indicator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_range_set_flippable">
<description>
Sets whether the `GtkRange` respects text direction.

If a range is flippable, it will switch its direction
if it is horizontal and its direction is %GTK_TEXT_DIR_RTL.

See [method@Gtk.Widget.get_direction].

</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
<parameter name="flippable">
<parameter_description> %TRUE to make the range flippable
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_range_set_increments">
<description>
Sets the step and page sizes for the range.

The step size is used when the user clicks the `GtkScrollbar`
arrows or moves a `GtkScale` via arrow keys. The page size
is used for example when moving via Page Up or Page Down keys.

</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
<parameter name="step">
<parameter_description> step size
</parameter_description>
</parameter>
<parameter name="page">
<parameter_description> page size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_range_set_inverted">
<description>
Sets whether to invert the range.

Ranges normally move from lower to higher values as the
slider moves from top to bottom or left to right. Inverted
ranges have higher values at the top or on the right rather
than on the bottom or left.

</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> %TRUE to invert the range
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_range_set_range">
<description>
Sets the allowable values in the `GtkRange`.

The range value is clamped to be between @min and @max.
(If the range has a non-zero page size, it is clamped
between @min and @max - page-size.)

</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
<parameter name="min">
<parameter_description> minimum range value
</parameter_description>
</parameter>
<parameter name="max">
<parameter_description> maximum range value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_range_set_restrict_to_fill_level">
<description>
Sets whether the slider is restricted to the fill level.

See [method@Gtk.Range.set_fill_level] for a general description
of the fill level concept.

</description>
<parameters>
<parameter name="range">
<parameter_description> A `GtkRange`
</parameter_description>
</parameter>
<parameter name="restrict_to_fill_level">
<parameter_description> Whether the fill level restricts slider movement.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_range_set_round_digits">
<description>
Sets the number of digits to round the value to when
it changes.

See [signal@Gtk.Range::change-value].

</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
<parameter name="round_digits">
<parameter_description> the precision in digits, or -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_range_set_show_fill_level">
<description>
Sets whether a graphical fill level is show on the trough.

See [method@Gtk.Range.set_fill_level] for a general description
of the fill level concept.

</description>
<parameters>
<parameter name="range">
<parameter_description> A `GtkRange`
</parameter_description>
</parameter>
<parameter name="show_fill_level">
<parameter_description> Whether a fill level indicator graphics is shown.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_range_set_slider_size_fixed">
<description>
Sets whether the range’s slider has a fixed size, or a size that
depends on its adjustment’s page size.

This function is useful mainly for `GtkRange` subclasses.

</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
<parameter name="size_fixed">
<parameter_description> %TRUE to make the slider size constant
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_range_set_value">
<description>
Sets the current value of the range.

If the value is outside the minimum or maximum range values,
it will be clamped to fit inside them. The range emits the
[signal@Gtk.Range::value-changed] signal if the value changes.

</description>
<parameters>
<parameter name="range">
<parameter_description> a `GtkRange`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> new value of the range
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_recent_info_create_app_info">
<description>
Creates a `GAppInfo` for the specified `GtkRecentInfo`

In case of error, @error will be set either with a
%GTK_RECENT_MANAGER_ERROR or a %G_IO_ERROR


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
<parameter name="app_name">
<parameter_description> the name of the application that should
be mapped to a `GAppInfo`; if %NULL is used then the default
application for the MIME type is used
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a `GError`
</parameter_description>
</parameter>
</parameters>
<return> the newly created `GAppInfo`
</return>
</function>

<function name="gtk_recent_info_exists">
<description>
Checks whether the resource pointed by @info still exists.
At the moment this check is done only on resources pointing
to local files.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the resource exists
</return>
</function>

<function name="gtk_recent_info_get_added">
<description>
Gets the time when the resource
was added to the recently used resources list.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> a `GDateTime` for the time
when the resource was added
</return>
</function>

<function name="gtk_recent_info_get_age">
<description>
Gets the number of days elapsed since the last update
of the resource pointed by @info.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> a positive integer containing the number of days
elapsed since the time this resource was last modified
</return>
</function>

<function name="gtk_recent_info_get_application_info">
<description>
Gets the data regarding the application that has registered the resource
pointed by @info.

If the command line contains any escape characters defined inside the
storage specification, they will be expanded.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
<parameter name="app_name">
<parameter_description> the name of the application that has registered this item
</parameter_description>
</parameter>
<parameter name="app_exec">
<parameter_description> return location for the string containing
the command line
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> return location for the number of times this item was registered
</parameter_description>
</parameter>
<parameter name="stamp">
<parameter_description> return location for the time this item was last
registered for this application
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if an application with @app_name has registered this
resource inside the recently used list, or %FALSE otherwise. The
@app_exec string is owned by the `GtkRecentInfo` and should not be
modified or freed
</return>
</function>

<function name="gtk_recent_info_get_applications">
<description>
Retrieves the list of applications that have registered this resource.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> return location for the length of the returned list
</parameter_description>
</parameter>
</parameters>
<return> a newly
allocated %NULL-terminated array of strings. Use g_strfreev() to free it.
</return>
</function>

<function name="gtk_recent_info_get_description">
<description>
Gets the (short) description of the resource.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> the description of the resource. The returned string
is owned by the recent manager, and should not be freed.
</return>
</function>

<function name="gtk_recent_info_get_display_name">
<description>
Gets the name of the resource.

If none has been defined, the basename
of the resource is obtained.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> the display name of the resource. The returned string
is owned by the recent manager, and should not be freed.
</return>
</function>

<function name="gtk_recent_info_get_gicon">
<description>
Retrieves the icon associated to the resource MIME type.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> a `GIcon` containing the icon
</return>
</function>

<function name="gtk_recent_info_get_groups">
<description>
Returns all groups registered for the recently used item @info.

The array of returned group names will be %NULL terminated, so
length might optionally be %NULL.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> return location for the number of groups returned
</parameter_description>
</parameter>
</parameters>
<return>
a newly allocated %NULL terminated array of strings.
Use g_strfreev() to free it.
</return>
</function>

<function name="gtk_recent_info_get_mime_type">
<description>
Gets the MIME type of the resource.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> the MIME type of the resource. The returned string
is owned by the recent manager, and should not be freed.
</return>
</function>

<function name="gtk_recent_info_get_modified">
<description>
Gets the time when the meta-data
for the resource was last modified.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> a `GDateTime` for the time
when the resource was last modified
</return>
</function>

<function name="gtk_recent_info_get_private_hint">
<description>
Gets the value of the “private” flag.

Resources in the recently used list that have this flag
set to %TRUE should only be displayed by the applications
that have registered them.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the private flag was found, %FALSE otherwise
</return>
</function>

<function name="gtk_recent_info_get_short_name">
<description>
Computes a valid UTF-8 string that can be used as the
name of the item in a menu or list.

For example, calling this function on an item that refers
to “file:///foo/bar.txt” will yield “bar.txt”.


</description>
<parameters>
<parameter name="info">
<parameter_description> an `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> A newly-allocated string in UTF-8 encoding
free it with g_free()
</return>
</function>

<function name="gtk_recent_info_get_uri">
<description>
Gets the URI of the resource.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `tkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> the URI of the resource. The returned string is
owned by the recent manager, and should not be freed.
</return>
</function>

<function name="gtk_recent_info_get_uri_display">
<description>
Gets a displayable version of the resource’s URI.

If the resource is local, it returns a local path; if the
resource is not local, it returns the UTF-8 encoded content
of [method@Gtk.RecentInfo.get_uri].


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated UTF-8 string containing the
resource’s URI or %NULL. Use g_free() when done using it.
</return>
</function>

<function name="gtk_recent_info_get_visited">
<description>
Gets the time when the meta-data
for the resource was last visited.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> a `GDateTime` for the time
when the resource was last visited
</return>
</function>

<function name="gtk_recent_info_has_application">
<description>
Checks whether an application registered this resource using @app_name.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
<parameter name="app_name">
<parameter_description> a string containing an application name
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if an application with name @app_name was found,
%FALSE otherwise
</return>
</function>

<function name="gtk_recent_info_has_group">
<description>
Checks whether @group_name appears inside the groups
registered for the recently used item @info.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
<parameter name="group_name">
<parameter_description> name of a group
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the group was found
</return>
</function>

<function name="gtk_recent_info_is_local">
<description>
Checks whether the resource is local or not by looking at the
scheme of its URI.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the resource is local
</return>
</function>

<function name="gtk_recent_info_last_application">
<description>
Gets the name of the last application that have registered the
recently used resource represented by @info.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> an application name. Use g_free() to free it.
</return>
</function>

<function name="gtk_recent_info_match">
<description>
Checks whether two `GtkRecentInfo` point to the same resource.


</description>
<parameters>
<parameter name="info_a">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
<parameter name="info_b">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if both `GtkRecentInfo` point to the same
resource, %FALSE otherwise
</return>
</function>

<function name="gtk_recent_info_ref">
<description>
Increases the reference count of @recent_info by one.


</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return> the recent info object with its reference count
increased by one
</return>
</function>

<function name="gtk_recent_info_unref">
<description>
Decreases the reference count of @info by one.

If the reference count reaches zero, @info is
deallocated, and the memory freed.

</description>
<parameters>
<parameter name="info">
<parameter_description> a `GtkRecentInfo`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_recent_manager_add_full">
<description>
Adds a new resource, pointed by @uri, into the recently used
resources list, using the metadata specified inside the
`GtkRecentData` passed in @recent_data.

The passed URI will be used to identify this resource inside the
list.

In order to register the new recently used resource, metadata about
the resource must be passed as well as the URI; the metadata is
stored in a `GtkRecentData`, which must contain the MIME
type of the resource pointed by the URI; the name of the application
that is registering the item, and a command line to be used when
launching the item.

Optionally, a `GtkRecentData` might contain a UTF-8 string
to be used when viewing the item instead of the last component of
the URI; a short description of the item; whether the item should
be considered private - that is, should be displayed only by the
applications that have registered it.


</description>
<parameters>
<parameter name="manager">
<parameter_description> a `GtkRecentManager`
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> a valid URI
</parameter_description>
</parameter>
<parameter name="recent_data">
<parameter_description> metadata of the resource
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the new item was successfully added to the
recently used resources list, %FALSE otherwise
</return>
</function>

<function name="gtk_recent_manager_add_item">
<description>
Adds a new resource, pointed by @uri, into the recently used
resources list.

This function automatically retrieves some of the needed
metadata and setting other metadata to common default values;
it then feeds the data to [method@Gtk.RecentManager.add_full].

See [method@Gtk.RecentManager.add_full] if you want to explicitly
define the metadata for the resource pointed by @uri.


</description>
<parameters>
<parameter name="manager">
<parameter_description> a `GtkRecentManager`
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> a valid URI
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the new item was successfully added
to the recently used resources list
</return>
</function>

<function name="gtk_recent_manager_get_default">
<description>
Gets a unique instance of `GtkRecentManager` that you can share
in your application without caring about memory management.


</description>
<parameters>
</parameters>
<return> A unique `GtkRecentManager`. Do not ref or
unref it.
</return>
</function>

<function name="gtk_recent_manager_get_items">
<description>
Gets the list of recently used resources.


</description>
<parameters>
<parameter name="manager">
<parameter_description> a `GtkRecentManager`
</parameter_description>
</parameter>
</parameters>
<return> a list of
newly allocated `GtkRecentInfo objects`. Use
[method@Gtk.RecentInfo.unref] on each item inside the list, and then
free the list itself using g_list_free().
</return>
</function>

<function name="gtk_recent_manager_has_item">
<description>
Checks whether there is a recently used resource registered
with @uri inside the recent manager.


</description>
<parameters>
<parameter name="manager">
<parameter_description> a `GtkRecentManager`
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> a URI
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the resource was found, %FALSE otherwise
</return>
</function>

<function name="gtk_recent_manager_lookup_item">
<description>
Searches for a URI inside the recently used resources list, and
returns a `GtkRecentInfo` containing information about the resource
like its MIME type, or its display name.


</description>
<parameters>
<parameter name="manager">
<parameter_description> a `GtkRecentManager`
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> a URI
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a return location for a `GError`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkRecentInfo` containing information
about the resource pointed by @uri, or %NULL if the URI was
not registered in the recently used resources list. Free with
[method@Gtk.RecentInfo.unref].
</return>
</function>

<function name="gtk_recent_manager_move_item">
<description>
Changes the location of a recently used resource from @uri to @new_uri.

Please note that this function will not affect the resource pointed
by the URIs, but only the URI used in the recently used resources list.


</description>
<parameters>
<parameter name="manager">
<parameter_description> a `GtkRecentManager`
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> the URI of a recently used resource
</parameter_description>
</parameter>
<parameter name="new_uri">
<parameter_description> the new URI of the recently used resource, or
%NULL to remove the item pointed by @uri in the list
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a return location for a `GError`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success
</return>
</function>

<function name="gtk_recent_manager_new">
<description>
Creates a new recent manager object.

Recent manager objects are used to handle the list of recently used
resources. A `GtkRecentManager` object monitors the recently used
resources list, and emits the [signal@Gtk.RecentManager::changed]
signal each time something inside the list changes.

`GtkRecentManager` objects are expensive: be sure to create them
only when needed. You should use [func@Gtk.RecentManager.get_default]
instead.


</description>
<parameters>
</parameters>
<return> A newly created `GtkRecentManager` object
</return>
</function>

<function name="gtk_recent_manager_purge_items">
<description>
Purges every item from the recently used resources list.


</description>
<parameters>
<parameter name="manager">
<parameter_description> a `GtkRecentManager`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a return location for a `GError`
</parameter_description>
</parameter>
</parameters>
<return> the number of items that have been removed from the
recently used resources list
</return>
</function>

<function name="gtk_recent_manager_remove_item">
<description>
Removes a resource pointed by @uri from the recently used resources
list handled by a recent manager.


</description>
<parameters>
<parameter name="manager">
<parameter_description> a `GtkRecentManager`
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> the URI of the item you wish to remove
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a `GError`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the item pointed by @uri has been successfully
removed by the recently used resources list, and %FALSE otherwise
</return>
</function>

<function name="gtk_render_activity">
<description>
Renders an activity indicator (such as in `GtkSpinner`).
The state %GTK_STATE_FLAG_CHECKED determines whether there is
activity going on.

Deprecated: 4.10

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a `cairo_t`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X origin of the rectangle
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y origin of the rectangle
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> rectangle width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> rectangle height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_render_arrow">
<description>
Renders an arrow pointing to @angle.

Typical arrow rendering at 0, 1⁄2 π;, π; and 3⁄2 π:

![](arrows.png)

Deprecated: 4.10

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a `cairo_t`
</parameter_description>
</parameter>
<parameter name="angle">
<parameter_description> arrow angle from 0 to 2 * %G_PI, being 0 the arrow pointing to the north
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X origin of the render area
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y origin of the render area
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> square side for render area
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_render_background">
<description>
Renders the background of an element.

Typical background rendering, showing the effect of
`background-image`, `border-width` and `border-radius`:

![](background.png)

Deprecated: 4.10

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a `cairo_t`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X origin of the rectangle
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y origin of the rectangle
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> rectangle width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> rectangle height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_render_check">
<description>
Renders a checkmark (as in a `GtkCheckButton`).

The %GTK_STATE_FLAG_CHECKED state determines whether the check is
on or off, and %GTK_STATE_FLAG_INCONSISTENT determines whether it
should be marked as undefined.

Typical checkmark rendering:

![](checks.png)

Deprecated: 4.10

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a `cairo_t`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X origin of the rectangle
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y origin of the rectangle
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> rectangle width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> rectangle height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_render_expander">
<description>
Renders an expander (as used in `GtkTreeView` and `GtkExpander`) in the area
defined by @x, @y, @width, @height. The state %GTK_STATE_FLAG_CHECKED
determines whether the expander is collapsed or expanded.

Typical expander rendering:

![](expanders.png)

Deprecated: 4.10

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a `cairo_t`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X origin of the rectangle
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y origin of the rectangle
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> rectangle width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> rectangle height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_render_focus">
<description>
Renders a focus indicator on the rectangle determined by @x, @y, @width, @height.

Typical focus rendering:

![](focus.png)

Deprecated: 4.10

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a `cairo_t`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X origin of the rectangle
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y origin of the rectangle
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> rectangle width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> rectangle height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_render_frame">
<description>
Renders a frame around the rectangle defined by @x, @y, @width, @height.

Examples of frame rendering, showing the effect of `border-image`,
`border-color`, `border-width`, `border-radius` and junctions:

![](frames.png)

Deprecated: 4.10

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a `cairo_t`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X origin of the rectangle
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y origin of the rectangle
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> rectangle width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> rectangle height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_render_handle">
<description>
Renders a handle (as in `GtkPaned` and `GtkWindow`’s resize grip),
in the rectangle determined by @x, @y, @width, @height.

Handles rendered for the paned and grip classes:

![](handles.png)

Deprecated: 4.10

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a `cairo_t`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X origin of the rectangle
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y origin of the rectangle
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> rectangle width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> rectangle height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_render_icon">
<description>
Renders the icon in @texture at the specified @x and @y coordinates.

This function will render the icon in @texture at exactly its size,
regardless of scaling factors, which may not be appropriate when
drawing on displays with high pixel densities.

Deprecated: 4.10

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a `cairo_t`
</parameter_description>
</parameter>
<parameter name="texture">
<parameter_description> a `GdkTexture` containing the icon to draw
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X position for the @texture
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y position for the @texture
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_render_layout">
<description>
Renders @layout on the coordinates @x, @y

Deprecated: 4.10

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a `cairo_t`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X origin
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y origin
</parameter_description>
</parameter>
<parameter name="layout">
<parameter_description> the `PangoLayout` to render
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_render_line">
<description>
Renders a line from (x0, y0) to (x1, y1).

Deprecated: 4.10

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a `cairo_t`
</parameter_description>
</parameter>
<parameter name="x0">
<parameter_description> X coordinate for the origin of the line
</parameter_description>
</parameter>
<parameter name="y0">
<parameter_description> Y coordinate for the origin of the line
</parameter_description>
</parameter>
<parameter name="x1">
<parameter_description> X coordinate for the end of the line
</parameter_description>
</parameter>
<parameter name="y1">
<parameter_description> Y coordinate for the end of the line
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_render_option">
<description>
Renders an option mark (as in a radio button), the %GTK_STATE_FLAG_CHECKED
state will determine whether the option is on or off, and
%GTK_STATE_FLAG_INCONSISTENT whether it should be marked as undefined.

Typical option mark rendering:

![](options.png)

Deprecated: 4.10

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="cr">
<parameter_description> a `cairo_t`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X origin of the rectangle
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y origin of the rectangle
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> rectangle width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> rectangle height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_requisition_copy">
<description>
Copies a `GtkRequisition`.


</description>
<parameters>
<parameter name="requisition">
<parameter_description> a `GtkRequisition`
</parameter_description>
</parameter>
</parameters>
<return> a copy of @requisition
</return>
</function>

<function name="gtk_requisition_free">
<description>
Frees a `GtkRequisition`.

</description>
<parameters>
<parameter name="requisition">
<parameter_description> a `GtkRequisition`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_requisition_new">
<description>
Allocates a new `GtkRequisition`.

The struct is initialized to zero.


</description>
<parameters>
</parameters>
<return> a new empty `GtkRequisition`. The newly
allocated `GtkRequisition` should be freed with
[method@Gtk.Requisition.free]
</return>
</function>

<function name="gtk_revealer_get_child">
<description>
Gets the child widget of @revealer.


</description>
<parameters>
<parameter name="revealer">
<parameter_description> a `GtkRevealer`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @revealer
</return>
</function>

<function name="gtk_revealer_get_child_revealed">
<description>
Returns whether the child is fully revealed.

In other words, this returns whether the transition
to the revealed state is completed.


</description>
<parameters>
<parameter name="revealer">
<parameter_description> a `GtkRevealer`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the child is fully revealed
</return>
</function>

<function name="gtk_revealer_get_reveal_child">
<description>
Returns whether the child is currently revealed.

This function returns %TRUE as soon as the transition
is to the revealed state is started. To learn whether
the child is fully revealed (ie the transition is completed),
use [method@Gtk.Revealer.get_child_revealed].


</description>
<parameters>
<parameter name="revealer">
<parameter_description> a `GtkRevealer`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the child is revealed.
</return>
</function>

<function name="gtk_revealer_get_transition_duration">
<description>
Returns the amount of time (in milliseconds) that
transitions will take.


</description>
<parameters>
<parameter name="revealer">
<parameter_description> a `GtkRevealer`
</parameter_description>
</parameter>
</parameters>
<return> the transition duration
</return>
</function>

<function name="gtk_revealer_get_transition_type">
<description>
Gets the type of animation that will be used
for transitions in @revealer.


</description>
<parameters>
<parameter name="revealer">
<parameter_description> a `GtkRevealer`
</parameter_description>
</parameter>
</parameters>
<return> the current transition type of @revealer
</return>
</function>

<function name="gtk_revealer_new">
<description>
Creates a new `GtkRevealer`.


</description>
<parameters>
</parameters>
<return> a newly created `GtkRevealer`
</return>
</function>

<function name="gtk_revealer_set_child">
<description>
Sets the child widget of @revealer.

</description>
<parameters>
<parameter name="revealer">
<parameter_description> a `GtkRevealer`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_revealer_set_reveal_child">
<description>
Tells the `GtkRevealer` to reveal or conceal its child.

The transition will be animated with the current
transition type of @revealer.

</description>
<parameters>
<parameter name="revealer">
<parameter_description> a `GtkRevealer`
</parameter_description>
</parameter>
<parameter name="reveal_child">
<parameter_description> %TRUE to reveal the child
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_revealer_set_transition_duration">
<description>
Sets the duration that transitions will take.

</description>
<parameters>
<parameter name="revealer">
<parameter_description> a `GtkRevealer`
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> the new duration, in milliseconds
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_revealer_set_transition_type">
<description>
Sets the type of animation that will be used for
transitions in @revealer.

Available types include various kinds of fades and slides.

</description>
<parameters>
<parameter name="revealer">
<parameter_description> a `GtkRevealer`
</parameter_description>
</parameter>
<parameter name="transition">
<parameter_description> the new transition type
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_rgb_to_hsv">
<description>
Converts a color from RGB space to HSV.

Input values must be in the [0.0, 1.0] range;
output values will be in the same range.

</description>
<parameters>
<parameter name="r">
<parameter_description> Red
</parameter_description>
</parameter>
<parameter name="g">
<parameter_description> Green
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> Blue
</parameter_description>
</parameter>
<parameter name="h">
<parameter_description> Return value for the hue component
</parameter_description>
</parameter>
<parameter name="s">
<parameter_description> Return value for the saturation component
</parameter_description>
</parameter>
<parameter name="v">
<parameter_description> Return value for the value component
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_root_get_display">
<description>
Returns the display that this `GtkRoot` is on.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkRoot`
</parameter_description>
</parameter>
</parameters>
<return> the display of @root
</return>
</function>

<function name="gtk_root_get_focus">
<description>
Retrieves the current focused widget within the root.

Note that this is the widget that would have the focus
if the root is active; if the root is not focused then
`gtk_widget_has_focus (widget)` will be %FALSE for the
widget.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkRoot`
</parameter_description>
</parameter>
</parameters>
<return> the currently focused widget
</return>
</function>

<function name="gtk_root_set_focus">
<description>
If @focus is not the current focus widget, and is focusable, sets
it as the focus widget for the root.

If @focus is %NULL, unsets the focus widget for the root.

To set the focus to a particular widget in the root, it is usually
more convenient to use [method@Gtk.Widget.grab_focus] instead of
this function.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkRoot`
</parameter_description>
</parameter>
<parameter name="focus">
<parameter_description> widget to be the new focus widget, or %NULL
to unset the focus widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scale_add_mark">
<description>
Adds a mark at @value.

A mark is indicated visually by drawing a tick mark next to the scale,
and GTK makes it easy for the user to position the scale exactly at the
marks value.

If @markup is not %NULL, text is shown next to the tick mark.

To remove marks from a scale, use [method@Gtk.Scale.clear_marks].

</description>
<parameters>
<parameter name="scale">
<parameter_description> a `GtkScale`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value at which the mark is placed, must be between
the lower and upper limits of the scales’ adjustment
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> where to draw the mark. For a horizontal scale, %GTK_POS_TOP
and %GTK_POS_LEFT are drawn above the scale, anything else below.
For a vertical scale, %GTK_POS_LEFT and %GTK_POS_TOP are drawn to
the left of the scale, anything else to the right.
</parameter_description>
</parameter>
<parameter name="markup">
<parameter_description> Text to be shown at the mark, using Pango markup
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scale_button_get_active">
<description>
Queries a `GtkScaleButton` and returns its current state.

Since: 4.10

</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkScaleButton`
</parameter_description>
</parameter>
</parameters>
<return> whether the button is pressed

</return>
</function>

<function name="gtk_scale_button_get_adjustment">
<description>
Gets the `GtkAdjustment` associated with the `GtkScaleButton`’s scale.

See [method@Gtk.Range.get_adjustment] for details.


</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkScaleButton`
</parameter_description>
</parameter>
</parameters>
<return> the adjustment associated with the scale
</return>
</function>

<function name="gtk_scale_button_get_minus_button">
<description>
Retrieves the minus button of the `GtkScaleButton`.


</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkScaleButton`
</parameter_description>
</parameter>
</parameters>
<return> the minus button
of the `GtkScaleButton`
</return>
</function>

<function name="gtk_scale_button_get_plus_button">
<description>
Retrieves the plus button of the `GtkScaleButton.`


</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkScaleButton`
</parameter_description>
</parameter>
</parameters>
<return> the plus button
of the `GtkScaleButton`
</return>
</function>

<function name="gtk_scale_button_get_popup">
<description>
Retrieves the popup of the `GtkScaleButton`.


</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkScaleButton`
</parameter_description>
</parameter>
</parameters>
<return> the popup of the `GtkScaleButton`
</return>
</function>

<function name="gtk_scale_button_get_value">
<description>
Gets the current value of the scale button.


</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkScaleButton`
</parameter_description>
</parameter>
</parameters>
<return> current value of the scale button
</return>
</function>

<function name="gtk_scale_button_new">
<description>
Creates a `GtkScaleButton`.

The new scale button has a range between @min and @max,
with a stepping of @step.


</description>
<parameters>
<parameter name="min">
<parameter_description> the minimum value of the scale (usually 0)
</parameter_description>
</parameter>
<parameter name="max">
<parameter_description> the maximum value of the scale (usually 100)
</parameter_description>
</parameter>
<parameter name="step">
<parameter_description> the stepping of value when a scroll-wheel event,
or up/down arrow event occurs (usually 2)
</parameter_description>
</parameter>
<parameter name="icons">
<parameter_description> a %NULL-terminated
array of icon names, or %NULL if you want to set the list
later with gtk_scale_button_set_icons()
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkScaleButton`
</return>
</function>

<function name="gtk_scale_button_set_adjustment">
<description>
Sets the `GtkAdjustment` to be used as a model
for the `GtkScaleButton`’s scale.

See [method@Gtk.Range.set_adjustment] for details.

</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkScaleButton`
</parameter_description>
</parameter>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scale_button_set_icons">
<description>
Sets the icons to be used by the scale button.

</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkScaleButton`
</parameter_description>
</parameter>
<parameter name="icons">
<parameter_description> a %NULL-terminated array of icon names
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scale_button_set_value">
<description>
Sets the current value of the scale.

If the value is outside the minimum or maximum range values,
it will be clamped to fit inside them.

The scale button emits the [signal@Gtk.ScaleButton::value-changed]
signal if the value changes.

</description>
<parameters>
<parameter name="button">
<parameter_description> a `GtkScaleButton`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> new value of the scale button
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scale_clear_marks">
<description>
Removes any marks that have been added.

</description>
<parameters>
<parameter name="scale">
<parameter_description> a `GtkScale`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scale_get_digits">
<description>
Gets the number of decimal places that are displayed in the value.


</description>
<parameters>
<parameter name="scale">
<parameter_description> a `GtkScale`
</parameter_description>
</parameter>
</parameters>
<return> the number of decimal places that are displayed
</return>
</function>

<function name="gtk_scale_get_draw_value">
<description>
Returns whether the current value is displayed as a string
next to the slider.


</description>
<parameters>
<parameter name="scale">
<parameter_description> a `GtkScale`
</parameter_description>
</parameter>
</parameters>
<return> whether the current value is displayed as a string
</return>
</function>

<function name="gtk_scale_get_has_origin">
<description>
Returns whether the scale has an origin.


</description>
<parameters>
<parameter name="scale">
<parameter_description> a `GtkScale`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the scale has an origin.
</return>
</function>

<function name="gtk_scale_get_layout">
<description>
Gets the `PangoLayout` used to display the scale.

The returned object is owned by the scale so does not need
to be freed by the caller.


</description>
<parameters>
<parameter name="scale">
<parameter_description> A `GtkScale`
</parameter_description>
</parameter>
</parameters>
<return> the [class@Pango.Layout]
for this scale, or %NULL if the [property@Gtk.Scale:draw-value]
property is %FALSE.
</return>
</function>

<function name="gtk_scale_get_layout_offsets">
<description>
Obtains the coordinates where the scale will draw the
`PangoLayout` representing the text in the scale.

Remember when using the `PangoLayout` function you need to
convert to and from pixels using `PANGO_PIXELS()` or `PANGO_SCALE`.

If the [property@Gtk.Scale:draw-value] property is %FALSE, the return
values are undefined.

</description>
<parameters>
<parameter name="scale">
<parameter_description> a `GtkScale`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> location to store X offset of layout
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> location to store Y offset of layout
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scale_get_value_pos">
<description>
Gets the position in which the current value is displayed.


</description>
<parameters>
<parameter name="scale">
<parameter_description> a `GtkScale`
</parameter_description>
</parameter>
</parameters>
<return> the position in which the current value is displayed
</return>
</function>

<function name="gtk_scale_new">
<description>
Creates a new `GtkScale`.


</description>
<parameters>
<parameter name="orientation">
<parameter_description> the scale’s orientation.
</parameter_description>
</parameter>
<parameter name="adjustment">
<parameter_description> the [class@Gtk.Adjustment] which sets
the range of the scale, or %NULL to create a new adjustment.
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkScale`
</return>
</function>

<function name="gtk_scale_new_with_range">
<description>
Creates a new scale widget with a range from @min to @max.

The returns scale will have the given orientation and will let the
user input a number between @min and @max (including @min and @max)
with the increment @step. @step must be nonzero; it’s the distance
the slider moves when using the arrow keys to adjust the scale
value.

Note that the way in which the precision is derived works best if
@step is a power of ten. If the resulting precision is not suitable
for your needs, use [method@Gtk.Scale.set_digits] to correct it.


</description>
<parameters>
<parameter name="orientation">
<parameter_description> the scale’s orientation.
</parameter_description>
</parameter>
<parameter name="min">
<parameter_description> minimum value
</parameter_description>
</parameter>
<parameter name="max">
<parameter_description> maximum value
</parameter_description>
</parameter>
<parameter name="step">
<parameter_description> step increment (tick size) used with keyboard shortcuts
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkScale`
</return>
</function>

<function name="gtk_scale_set_digits">
<description>
Sets the number of decimal places that are displayed in the value.

Also causes the value of the adjustment to be rounded to this number
of digits, so the retrieved value matches the displayed one, if
[property@Gtk.Scale:draw-value] is %TRUE when the value changes. If
you want to enforce rounding the value when [property@Gtk.Scale:draw-value]
is %FALSE, you can set [property@Gtk.Range:round-digits] instead.

Note that rounding to a small number of digits can interfere with
the smooth autoscrolling that is built into `GtkScale`. As an alternative,
you can use [method@Gtk.Scale.set_format_value_func] to format the displayed
value yourself.

</description>
<parameters>
<parameter name="scale">
<parameter_description> a `GtkScale`
</parameter_description>
</parameter>
<parameter name="digits">
<parameter_description> the number of decimal places to display,
e.g. use 1 to display 1.0, 2 to display 1.00, etc
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scale_set_draw_value">
<description>
Specifies whether the current value is displayed as a string next
to the slider.

</description>
<parameters>
<parameter name="scale">
<parameter_description> a `GtkScale`
</parameter_description>
</parameter>
<parameter name="draw_value">
<parameter_description> %TRUE to draw the value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scale_set_format_value_func">
<description>
@func allows you to change how the scale value is displayed.

The given function will return an allocated string representing
@value. That string will then be used to display the scale's value.

If #NULL is passed as @func, the value will be displayed on
its own, rounded according to the value of the
[property@Gtk.Scale:digits] property.

</description>
<parameters>
<parameter name="scale">
<parameter_description> a `GtkScale`
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> function that formats the value
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data to pass to @func
</parameter_description>
</parameter>
<parameter name="destroy_notify">
<parameter_description> destroy function for @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scale_set_has_origin">
<description>
Sets whether the scale has an origin.

If [property@Gtk.Scale:has-origin] is set to %TRUE (the default),
the scale will highlight the part of the trough between the origin
(bottom or left side) and the current value.

</description>
<parameters>
<parameter name="scale">
<parameter_description> a `GtkScale`
</parameter_description>
</parameter>
<parameter name="has_origin">
<parameter_description> %TRUE if the scale has an origin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scale_set_value_pos">
<description>
Sets the position in which the current value is displayed.

</description>
<parameters>
<parameter name="scale">
<parameter_description> a `GtkScale`
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> the position in which the current value is displayed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scroll_info_get_enable_horizontal">
<description>
Checks if horizontal scrolling is enabled.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkScrollInfo`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if horizontal scrolling is enabled.

</return>
</function>

<function name="gtk_scroll_info_get_enable_vertical">
<description>
Checks if vertical scrolling is enabled.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkScrollInfo`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if vertical scrolling is enabled.

</return>
</function>

<function name="gtk_scroll_info_new">
<description>
Creates a new scroll info for scrolling an element into view.

Since: 4.12

</description>
<parameters>
</parameters>
<return> A new scroll info

</return>
</function>

<function name="gtk_scroll_info_ref">
<description>
Increases the reference count of a `GtkScrollInfo` by one.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description>  a `GtkScrollInfo`
</parameter_description>
</parameter>
</parameters>
<return> the passed in `GtkScrollInfo`.

</return>
</function>

<function name="gtk_scroll_info_set_enable_horizontal">
<description>
Turns horizontal scrolling on or off.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkScrollInfo`
</parameter_description>
</parameter>
<parameter name="horizontal">
<parameter_description> if scrolling in the horizontal direction
should happen
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scroll_info_set_enable_vertical">
<description>
Turns vertical scrolling on or off.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkScrollInfo`
</parameter_description>
</parameter>
<parameter name="vertical">
<parameter_description> if scrolling in the vertical direction
should happen
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scroll_info_unref">
<description>
Decreases the reference count of a `GtkScrollInfo` by one.

If the resulting reference count is zero, frees the self.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkScrollInfo`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrollable_get_border">
<description>
Returns the size of a non-scrolling border around the
outside of the scrollable.

An example for this would be treeview headers. GTK can use
this information to display overlaid graphics, like the
overshoot indication, at the right position.


</description>
<parameters>
<parameter name="scrollable">
<parameter_description> a `GtkScrollable`
</parameter_description>
</parameter>
<parameter name="border">
<parameter_description> return location for the results
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @border has been set
</return>
</function>

<function name="gtk_scrollable_get_hadjustment">
<description>
Retrieves the `GtkAdjustment` used for horizontal scrolling.


</description>
<parameters>
<parameter name="scrollable">
<parameter_description> a `GtkScrollable`
</parameter_description>
</parameter>
</parameters>
<return> horizontal `GtkAdjustment`.
</return>
</function>

<function name="gtk_scrollable_get_hscroll_policy">
<description>
Gets the horizontal `GtkScrollablePolicy`.


</description>
<parameters>
<parameter name="scrollable">
<parameter_description> a `GtkScrollable`
</parameter_description>
</parameter>
</parameters>
<return> The horizontal `GtkScrollablePolicy`.
</return>
</function>

<function name="gtk_scrollable_get_vadjustment">
<description>
Retrieves the `GtkAdjustment` used for vertical scrolling.


</description>
<parameters>
<parameter name="scrollable">
<parameter_description> a `GtkScrollable`
</parameter_description>
</parameter>
</parameters>
<return> vertical `GtkAdjustment`.
</return>
</function>

<function name="gtk_scrollable_get_vscroll_policy">
<description>
Gets the vertical `GtkScrollablePolicy`.


</description>
<parameters>
<parameter name="scrollable">
<parameter_description> a `GtkScrollable`
</parameter_description>
</parameter>
</parameters>
<return> The vertical `GtkScrollablePolicy`.
</return>
</function>

<function name="gtk_scrollable_set_hadjustment">
<description>
Sets the horizontal adjustment of the `GtkScrollable`.

</description>
<parameters>
<parameter name="scrollable">
<parameter_description> a `GtkScrollable`
</parameter_description>
</parameter>
<parameter name="hadjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrollable_set_hscroll_policy">
<description>
Sets the `GtkScrollablePolicy`.

The policy determines whether horizontal scrolling should start
below the minimum width or below the natural width.

</description>
<parameters>
<parameter name="scrollable">
<parameter_description> a `GtkScrollable`
</parameter_description>
</parameter>
<parameter name="policy">
<parameter_description> the horizontal `GtkScrollablePolicy`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrollable_set_vadjustment">
<description>
Sets the vertical adjustment of the `GtkScrollable`.

</description>
<parameters>
<parameter name="scrollable">
<parameter_description> a `GtkScrollable`
</parameter_description>
</parameter>
<parameter name="vadjustment">
<parameter_description> a `GtkAdjustment`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrollable_set_vscroll_policy">
<description>
Sets the `GtkScrollablePolicy`.

The policy determines whether vertical scrolling should start
below the minimum height or below the natural height.

</description>
<parameters>
<parameter name="scrollable">
<parameter_description> a `GtkScrollable`
</parameter_description>
</parameter>
<parameter name="policy">
<parameter_description> the vertical `GtkScrollablePolicy`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrollbar_get_adjustment">
<description>
Returns the scrollbar's adjustment.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkScrollbar`
</parameter_description>
</parameter>
</parameters>
<return> the scrollbar's adjustment
</return>
</function>

<function name="gtk_scrollbar_new">
<description>
Creates a new scrollbar with the given orientation.


</description>
<parameters>
<parameter name="orientation">
<parameter_description> the scrollbar’s orientation.
</parameter_description>
</parameter>
<parameter name="adjustment">
<parameter_description> the [class@Gtk.Adjustment] to use, or %NULL
to create a new adjustment.
</parameter_description>
</parameter>
</parameters>
<return>  the new `GtkScrollbar`.
</return>
</function>

<function name="gtk_scrollbar_set_adjustment">
<description>
Makes the scrollbar use the given adjustment.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkScrollbar`
</parameter_description>
</parameter>
<parameter name="adjustment">
<parameter_description> the adjustment to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrolled_window_get_child">
<description>
Gets the child widget of @scrolled_window.


</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @scrolled_window
</return>
</function>

<function name="gtk_scrolled_window_get_hadjustment">
<description>
Returns the horizontal scrollbar’s adjustment.

This is the adjustment used to connect the horizontal scrollbar
to the child widget’s horizontal scroll functionality.


</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
</parameters>
<return> the horizontal `GtkAdjustment`
</return>
</function>

<function name="gtk_scrolled_window_get_has_frame">
<description>
Gets whether the scrolled window draws a frame.


</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the @scrolled_window has a frame
</return>
</function>

<function name="gtk_scrolled_window_get_hscrollbar">
<description>
Returns the horizontal scrollbar of @scrolled_window.


</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
</parameters>
<return> the horizontal scrollbar of the scrolled window.
</return>
</function>

<function name="gtk_scrolled_window_get_kinetic_scrolling">
<description>
Returns the specified kinetic scrolling behavior.


</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
</parameters>
<return> the scrolling behavior flags.
</return>
</function>

<function name="gtk_scrolled_window_get_max_content_height">
<description>
Returns the maximum content height set.


</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
</parameters>
<return> the maximum content height, or -1
</return>
</function>

<function name="gtk_scrolled_window_get_max_content_width">
<description>
Returns the maximum content width set.


</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
</parameters>
<return> the maximum content width, or -1
</return>
</function>

<function name="gtk_scrolled_window_get_min_content_height">
<description>
Gets the minimal content height of @scrolled_window.


</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
</parameters>
<return> the minimal content height
</return>
</function>

<function name="gtk_scrolled_window_get_min_content_width">
<description>
Gets the minimum content width of @scrolled_window.


</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
</parameters>
<return> the minimum content width
</return>
</function>

<function name="gtk_scrolled_window_get_overlay_scrolling">
<description>
Returns whether overlay scrolling is enabled for this scrolled window.


</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if overlay scrolling is enabled
</return>
</function>

<function name="gtk_scrolled_window_get_placement">
<description>
Gets the placement of the contents with respect to the scrollbars.


</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
</parameters>
<return> the current placement value.
</return>
</function>

<function name="gtk_scrolled_window_get_policy">
<description>
Retrieves the current policy values for the horizontal and vertical
scrollbars.

See [method@Gtk.ScrolledWindow.set_policy].

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="hscrollbar_policy">
<parameter_description> location to store the policy
for the horizontal scrollbar
</parameter_description>
</parameter>
<parameter name="vscrollbar_policy">
<parameter_description> location to store the policy
for the vertical scrollbar
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrolled_window_get_propagate_natural_height">
<description>
Reports whether the natural height of the child will be calculated
and propagated through the scrolled window’s requested natural height.


</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
</parameters>
<return> whether natural height propagation is enabled.
</return>
</function>

<function name="gtk_scrolled_window_get_propagate_natural_width">
<description>
Reports whether the natural width of the child will be calculated
and propagated through the scrolled window’s requested natural width.


</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
</parameters>
<return> whether natural width propagation is enabled.
</return>
</function>

<function name="gtk_scrolled_window_get_vadjustment">
<description>
Returns the vertical scrollbar’s adjustment.

This is the adjustment used to connect the vertical
scrollbar to the child widget’s vertical scroll functionality.


</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
</parameters>
<return> the vertical `GtkAdjustment`
</return>
</function>

<function name="gtk_scrolled_window_get_vscrollbar">
<description>
Returns the vertical scrollbar of @scrolled_window.


</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
</parameters>
<return> the vertical scrollbar of the scrolled window.
</return>
</function>

<function name="gtk_scrolled_window_new">
<description>
Creates a new scrolled window.


</description>
<parameters>
</parameters>
<return> a new scrolled window
</return>
</function>

<function name="gtk_scrolled_window_set_child">
<description>
Sets the child widget of @scrolled_window.

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrolled_window_set_hadjustment">
<description>
Sets the `GtkAdjustment` for the horizontal scrollbar.

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="hadjustment">
<parameter_description> the `GtkAdjustment` to use, or %NULL to create a new one
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrolled_window_set_has_frame">
<description>
Changes the frame drawn around the contents of @scrolled_window.

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="has_frame">
<parameter_description> whether to draw a frame around scrolled window contents
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrolled_window_set_kinetic_scrolling">
<description>
Turns kinetic scrolling on or off.

Kinetic scrolling only applies to devices with source
%GDK_SOURCE_TOUCHSCREEN.

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="kinetic_scrolling">
<parameter_description> %TRUE to enable kinetic scrolling
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrolled_window_set_max_content_height">
<description>
Sets the maximum height that @scrolled_window should keep visible.

The @scrolled_window will grow up to this height before it starts
scrolling the content.

It is a programming error to set the maximum content height to a value
smaller than [property@Gtk.ScrolledWindow:min-content-height].

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the maximum content height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrolled_window_set_max_content_width">
<description>
Sets the maximum width that @scrolled_window should keep visible.

The @scrolled_window will grow up to this width before it starts
scrolling the content.

It is a programming error to set the maximum content width to a
value smaller than [property@Gtk.ScrolledWindow:min-content-width].

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the maximum content width
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrolled_window_set_min_content_height">
<description>
Sets the minimum height that @scrolled_window should keep visible.

Note that this can and (usually will) be smaller than the minimum
size of the content.

It is a programming error to set the minimum content height to a
value greater than [property@Gtk.ScrolledWindow:max-content-height].

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> the minimal content height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrolled_window_set_min_content_width">
<description>
Sets the minimum width that @scrolled_window should keep visible.

Note that this can and (usually will) be smaller than the minimum
size of the content.

It is a programming error to set the minimum content width to a
value greater than [property@Gtk.ScrolledWindow:max-content-width].

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> the minimal content width
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrolled_window_set_overlay_scrolling">
<description>
Enables or disables overlay scrolling for this scrolled window.

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="overlay_scrolling">
<parameter_description> whether to enable overlay scrolling
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrolled_window_set_placement">
<description>
Sets the placement of the contents with respect to the scrollbars
for the scrolled window.

The default is %GTK_CORNER_TOP_LEFT, meaning the child is
in the top left, with the scrollbars underneath and to the right.
Other values in [enum@Gtk.CornerType] are %GTK_CORNER_TOP_RIGHT,
%GTK_CORNER_BOTTOM_LEFT, and %GTK_CORNER_BOTTOM_RIGHT.

See also [method@Gtk.ScrolledWindow.get_placement] and
[method@Gtk.ScrolledWindow.unset_placement].

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="window_placement">
<parameter_description> position of the child window
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrolled_window_set_policy">
<description>
Sets the scrollbar policy for the horizontal and vertical scrollbars.

The policy determines when the scrollbar should appear; it is a value
from the [enum@Gtk.PolicyType] enumeration. If %GTK_POLICY_ALWAYS, the
scrollbar is always present; if %GTK_POLICY_NEVER, the scrollbar is
never present; if %GTK_POLICY_AUTOMATIC, the scrollbar is present only
if needed (that is, if the slider part of the bar would be smaller
than the trough — the display is larger than the page size).

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="hscrollbar_policy">
<parameter_description> policy for horizontal bar
</parameter_description>
</parameter>
<parameter name="vscrollbar_policy">
<parameter_description> policy for vertical bar
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrolled_window_set_propagate_natural_height">
<description>
Sets whether the natural height of the child should be calculated
and propagated through the scrolled window’s requested natural height.

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="propagate">
<parameter_description> whether to propagate natural height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrolled_window_set_propagate_natural_width">
<description>
Sets whether the natural width of the child should be calculated
and propagated through the scrolled window’s requested natural width.

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="propagate">
<parameter_description> whether to propagate natural width
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrolled_window_set_vadjustment">
<description>
Sets the `GtkAdjustment` for the vertical scrollbar.

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
<parameter name="vadjustment">
<parameter_description> the `GtkAdjustment` to use, or %NULL to create a new one
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_scrolled_window_unset_placement">
<description>
Unsets the placement of the contents with respect to the scrollbars.

If no window placement is set for a scrolled window,
it defaults to %GTK_CORNER_TOP_LEFT.

</description>
<parameters>
<parameter name="scrolled_window">
<parameter_description> a `GtkScrolledWindow`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_search_bar_connect_entry">
<description>
Connects the `GtkEditable` widget passed as the one to be used in
this search bar.

The entry should be a descendant of the search bar. Calling this
function manually is only required if the entry isn’t the direct
child of the search bar (as in our main example).

</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkSearchBar`
</parameter_description>
</parameter>
<parameter name="entry">
<parameter_description> a `GtkEditable`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_search_bar_get_child">
<description>
Gets the child widget of @bar.


</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkSearchBar`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @bar
</return>
</function>

<function name="gtk_search_bar_get_key_capture_widget">
<description>
Gets the widget that @bar is capturing key events from.


</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkSearchBar`
</parameter_description>
</parameter>
</parameters>
<return> The key capture widget.
</return>
</function>

<function name="gtk_search_bar_get_search_mode">
<description>
Returns whether the search mode is on or off.


</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkSearchBar`
</parameter_description>
</parameter>
</parameters>
<return> whether search mode is toggled on
</return>
</function>

<function name="gtk_search_bar_get_show_close_button">
<description>
Returns whether the close button is shown.


</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkSearchBar`
</parameter_description>
</parameter>
</parameters>
<return> whether the close button is shown
</return>
</function>

<function name="gtk_search_bar_new">
<description>
Creates a `GtkSearchBar`.

You will need to tell it about which widget is going to be your text
entry using [method@Gtk.SearchBar.connect_entry].


</description>
<parameters>
</parameters>
<return> a new `GtkSearchBar`
</return>
</function>

<function name="gtk_search_bar_set_child">
<description>
Sets the child widget of @bar.

</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkSearchBar`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_search_bar_set_key_capture_widget">
<description>
Sets @widget as the widget that @bar will capture key events
from.

If key events are handled by the search bar, the bar will
be shown, and the entry populated with the entered text.

Note that despite the name of this function, the events
are only 'captured' in the bubble phase, which means that
editable child widgets of @widget will receive text input
before it gets captured. If that is not desired, you can
capture and forward the events yourself with
[method@Gtk.EventControllerKey.forward].

</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkSearchBar`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_search_bar_set_search_mode">
<description>
Switches the search mode on or off.

</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkSearchBar`
</parameter_description>
</parameter>
<parameter name="search_mode">
<parameter_description> the new state of the search mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_search_bar_set_show_close_button">
<description>
Shows or hides the close button.

Applications that already have a “search” toggle button should not
show a close button in their search bar, as it duplicates the role
of the toggle button.

</description>
<parameters>
<parameter name="bar">
<parameter_description> a `GtkSearchBar`
</parameter_description>
</parameter>
<parameter name="visible">
<parameter_description> whether the close button will be shown or not
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_search_entry_get_key_capture_widget">
<description>
Gets the widget that @entry is capturing key events from.


</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkSearchEntry`
</parameter_description>
</parameter>
</parameters>
<return> The key capture widget.
</return>
</function>

<function name="gtk_search_entry_get_placeholder_text">
<description>
Gets the placeholder text associated with @entry.

Since: 4.10

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkSearchEntry`
</parameter_description>
</parameter>
</parameters>
<return> The placeholder text.

</return>
</function>

<function name="gtk_search_entry_get_search_delay">
<description>
Get the delay to be used between the last keypress and the
[signal@Gtk.SearchEntry::search-changed] signal being emitted.

Since: 4.8

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkSearchEntry`
</parameter_description>
</parameter>
</parameters>
<return> a delay in milliseconds.

</return>
</function>

<function name="gtk_search_entry_new">
<description>
Creates a `GtkSearchEntry`.


</description>
<parameters>
</parameters>
<return> a new `GtkSearchEntry`
</return>
</function>

<function name="gtk_search_entry_set_key_capture_widget">
<description>
Sets @widget as the widget that @entry will capture key
events from.

Key events are consumed by the search entry to start or
continue a search.

If the entry is part of a `GtkSearchBar`, it is preferable
to call [method@Gtk.SearchBar.set_key_capture_widget] instead,
which will reveal the entry in addition to triggering the
search entry.

Note that despite the name of this function, the events
are only 'captured' in the bubble phase, which means that
editable child widgets of @widget will receive text input
before it gets captured. If that is not desired, you can
capture and forward the events yourself with
[method@Gtk.EventControllerKey.forward].

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkSearchEntry`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_search_entry_set_placeholder_text">
<description>
Sets the placeholder text associated with @entry.

Since: 4.10

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkSearchEntry`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> the text to set as a placeholder
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_search_entry_set_search_delay">
<description>
Set the delay to be used between the last keypress and the
[signal@Gtk.SearchEntry::search-changed] signal being emitted.

Since: 4.8

</description>
<parameters>
<parameter name="entry">
<parameter_description> a `GtkSearchEntry`
</parameter_description>
</parameter>
<parameter name="delay">
<parameter_description> a delay in milliseconds
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_section_model_get_section">
<description>
Query the section that covers the given position. The number of
items in the section can be computed by `out_end - out_start`.

If the position is larger than the number of items, a single
range from n_items to G_MAXUINT will be returned.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSectionModel`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position of the item to query
</parameter_description>
</parameter>
<parameter name="out_start">
<parameter_description> the position of the first item in the section
</parameter_description>
</parameter>
<parameter name="out_end">
<parameter_description> the position of the first item not part of the section
anymore.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_section_model_section_changed">
<description>
This function emits the [signal@Gtk.SectionModel::section-changed]
signal to notify about changes to sections.

It must cover all positions that used to be a section start or that
are now a section start. It does not have to cover all positions for
which the section has changed.

The [signal@Gio.ListModel::items-changed] implies the effect of the
[signal@Gtk.SectionModel::section-changed] signal for all the items
it covers.

It is recommended that when changes to the items cause section changes
in a larger range, that the larger range is included in the emission
of the [signal@Gio.ListModel::items-changed] instead of emitting
two signals.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSectionModel`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the first changed item
</parameter_description>
</parameter>
<parameter name="n_items">
<parameter_description> the number of changed items
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_selection_filter_model_get_model">
<description>
Gets the model currently filtered or %NULL if none.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSelectionFilterModel`
</parameter_description>
</parameter>
</parameters>
<return> The model that gets filtered
</return>
</function>

<function name="gtk_selection_filter_model_new">
<description>
Creates a new `GtkSelectionFilterModel` that will include the
selected items from the underlying selection model.


</description>
<parameters>
<parameter name="model">
<parameter_description> the selection model to filter
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkSelectionFilterModel`
</return>
</function>

<function name="gtk_selection_filter_model_set_model">
<description>
Sets the model to be filtered.

Note that GTK makes no effort to ensure that @model conforms to
the item type of @self. It assumes that the caller knows what they
are doing and have set up an appropriate filter to ensure that item
types match.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSelectionFilterModel`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> The model to be filtered
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_selection_model_get_selection">
<description>
Gets the set containing all currently selected items in the model.

This function may be slow, so if you are only interested in single item,
consider using [method@Gtk.SelectionModel.is_selected] or if you are only
interested in a few, consider [method@Gtk.SelectionModel.get_selection_in_range].


</description>
<parameters>
<parameter name="model">
<parameter_description> a `GtkSelectionModel`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkBitset` containing all the values currently
selected in @model. If no items are selected, the bitset is empty.
The bitset must not be modified.
</return>
</function>

<function name="gtk_selection_model_get_selection_in_range">
<description>
Gets the set of selected items in a range.

This function is an optimization for
[method@Gtk.SelectionModel.get_selection] when you are only
interested in part of the model's selected state. A common use
case is in response to the [signal@Gtk.SelectionModel::selection-changed]
signal.


</description>
<parameters>
<parameter name="model">
<parameter_description> a `GtkSelectionModel`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> start of the queried range
</parameter_description>
</parameter>
<parameter name="n_items">
<parameter_description> number of items in the queried range
</parameter_description>
</parameter>
</parameters>
<return> A `GtkBitset` that matches the selection state
for the given range with all other values being undefined.
The bitset must not be modified.
</return>
</function>

<function name="gtk_selection_model_is_selected">
<description>
Checks if the given item is selected.


</description>
<parameters>
<parameter name="model">
<parameter_description> a `GtkSelectionModel`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position of the item to query
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the item is selected
</return>
</function>

<function name="gtk_selection_model_select_all">
<description>
Requests to select all items in the model.


</description>
<parameters>
<parameter name="model">
<parameter_description> a `GtkSelectionModel`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if this action was supported and no fallback should be
tried. This does not mean that all items are now selected.
</return>
</function>

<function name="gtk_selection_model_select_item">
<description>
Requests to select an item in the model.


</description>
<parameters>
<parameter name="model">
<parameter_description> a `GtkSelectionModel`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position of the item to select
</parameter_description>
</parameter>
<parameter name="unselect_rest">
<parameter_description> whether previously selected items should be unselected
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if this action was supported and no fallback should be
tried. This does not mean the item was selected.
</return>
</function>

<function name="gtk_selection_model_select_range">
<description>
Requests to select a range of items in the model.


</description>
<parameters>
<parameter name="model">
<parameter_description> a `GtkSelectionModel`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the first item to select
</parameter_description>
</parameter>
<parameter name="n_items">
<parameter_description> the number of items to select
</parameter_description>
</parameter>
<parameter name="unselect_rest">
<parameter_description> whether previously selected items should be unselected
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if this action was supported and no fallback should be
tried. This does not mean the range was selected.
</return>
</function>

<function name="gtk_selection_model_selection_changed">
<description>
Helper function for implementations of `GtkSelectionModel`.

Call this when the selection changes to emit the
[signal@Gtk.SelectionModel::selection-changed] signal.

</description>
<parameters>
<parameter name="model">
<parameter_description> a `GtkSelectionModel`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the first changed item
</parameter_description>
</parameter>
<parameter name="n_items">
<parameter_description> the number of changed items
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_selection_model_set_selection">
<description>
Make selection changes.

This is the most advanced selection updating method that allows
the most fine-grained control over selection changes. If you can,
you should try the simpler versions, as implementations are more
likely to implement support for those.

Requests that the selection state of all positions set in @mask
be updated to the respective value in the @selected bitmask.

In pseudocode, it would look something like this:

```c
for (i = 0; i &lt; n_items; i++)
{
// don't change values not in the mask
if (!gtk_bitset_contains (mask, i))
continue;

if (gtk_bitset_contains (selected, i))
select_item (i);
else
unselect_item (i);
}

gtk_selection_model_selection_changed (model,
first_changed_item,
n_changed_items);
```

@mask and @selected must not be modified. They may refer to the
same bitset, which would mean that every item in the set should
be selected.


</description>
<parameters>
<parameter name="model">
<parameter_description> a `GtkSelectionModel`
</parameter_description>
</parameter>
<parameter name="selected">
<parameter_description> bitmask specifying if items should be selected or unselected
</parameter_description>
</parameter>
<parameter name="mask">
<parameter_description> bitmask specifying which items should be updated
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if this action was supported and no fallback should be
tried. This does not mean that all items were updated according
to the inputs.
</return>
</function>

<function name="gtk_selection_model_unselect_all">
<description>
Requests to unselect all items in the model.


</description>
<parameters>
<parameter name="model">
<parameter_description> a `GtkSelectionModel`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if this action was supported and no fallback should be
tried. This does not mean that all items are now unselected.
</return>
</function>

<function name="gtk_selection_model_unselect_item">
<description>
Requests to unselect an item in the model.


</description>
<parameters>
<parameter name="model">
<parameter_description> a `GtkSelectionModel`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position of the item to unselect
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if this action was supported and no fallback should be
tried. This does not mean the item was unselected.
</return>
</function>

<function name="gtk_selection_model_unselect_range">
<description>
Requests to unselect a range of items in the model.


</description>
<parameters>
<parameter name="model">
<parameter_description> a `GtkSelectionModel`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the first item to unselect
</parameter_description>
</parameter>
<parameter name="n_items">
<parameter_description> the number of items to unselect
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if this action was supported and no fallback should be
tried. This does not mean the range was unselected.
</return>
</function>

<function name="gtk_separator_new">
<description>
Creates a new `GtkSeparator` with the given orientation.


</description>
<parameters>
<parameter name="orientation">
<parameter_description> the separator’s orientation.
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkSeparator`.
</return>
</function>

<function name="gtk_set_debug_flags">
<description>
Sets the GTK debug flags.

</description>
<parameters>
<parameter name="flags">
<parameter_description> the debug flags to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_settings_get_default">
<description>
Gets the `GtkSettings` object for the default display, creating
it if necessary.

See [func@Gtk.Settings.get_for_display].


</description>
<parameters>
</parameters>
<return> a `GtkSettings` object. If there is
no default display, then returns %NULL.
</return>
</function>

<function name="gtk_settings_get_for_display">
<description>
Gets the `GtkSettings` object for @display, creating it if necessary.


</description>
<parameters>
<parameter name="display">
<parameter_description> a `GdkDisplay`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkSettings` object
</return>
</function>

<function name="gtk_settings_reset_property">
<description>
Undoes the effect of calling g_object_set() to install an
application-specific value for a setting.

After this call, the setting will again follow the session-wide
value for this setting.

</description>
<parameters>
<parameter name="settings">
<parameter_description> a `GtkSettings` object
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the setting to reset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_shortcut_action_activate">
<description>
Activates the action on the @widget with the given @args.

Note that some actions ignore the passed in @flags, @widget or @args.

Activation of an action can fail for various reasons. If the action
is not supported by the @widget, if the @args don't match the action
or if the activation otherwise had no effect, %FALSE will be returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutAction`
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags to activate with
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> Target of the activation
</parameter_description>
</parameter>
<parameter name="args">
<parameter_description> arguments to pass
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if this action was activated successfully
</return>
</function>

<function name="gtk_shortcut_action_parse_string">
<description>
Tries to parse the given string into an action.

On success, the parsed action is returned. When parsing
failed, %NULL is returned.

The accepted strings are:

- `nothing`, for `GtkNothingAction`
- `activate`, for `GtkActivateAction`
- `mnemonic-activate`, for `GtkMnemonicAction`
- `action(NAME)`, for a `GtkNamedAction` for the action named `NAME`
- `signal(NAME)`, for a `GtkSignalAction` for the signal `NAME`


</description>
<parameters>
<parameter name="string">
<parameter_description> the string to parse
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkShortcutAction`
</return>
</function>

<function name="gtk_shortcut_action_print">
<description>
Prints the given action into a string for the developer.

This is meant for debugging and logging.

The form of the representation may change at any time and is
not guaranteed to stay identical.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutAction`
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> a `GString` to print into
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_shortcut_action_to_string">
<description>
Prints the given action into a human-readable string.

This is a small wrapper around [method@Gtk.ShortcutAction.print]
to help when debugging.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutAction`
</parameter_description>
</parameter>
</parameters>
<return> a new string
</return>
</function>

<function name="gtk_shortcut_controller_add_shortcut">
<description>
Adds @shortcut to the list of shortcuts handled by @self.

If this controller uses an external shortcut list, this
function does nothing.

</description>
<parameters>
<parameter name="self">
<parameter_description> the controller
</parameter_description>
</parameter>
<parameter name="shortcut">
<parameter_description> a `GtkShortcut`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_shortcut_controller_get_mnemonics_modifiers">
<description>
Gets the mnemonics modifiers for when this controller activates its shortcuts.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutController`
</parameter_description>
</parameter>
</parameters>
<return> the controller's mnemonics modifiers
</return>
</function>

<function name="gtk_shortcut_controller_get_scope">
<description>
Gets the scope for when this controller activates its shortcuts.

See [method@Gtk.ShortcutController.set_scope] for details.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutController`
</parameter_description>
</parameter>
</parameters>
<return> the controller's scope
</return>
</function>

<function name="gtk_shortcut_controller_new">
<description>
Creates a new shortcut controller.


</description>
<parameters>
</parameters>
<return> a newly created shortcut controller
</return>
</function>

<function name="gtk_shortcut_controller_new_for_model">
<description>
Creates a new shortcut controller that takes its shortcuts from
the given list model.

A controller created by this function does not let you add or
remove individual shortcuts using the shortcut controller api,
but you can change the contents of the model.


</description>
<parameters>
<parameter name="model">
<parameter_description> a `GListModel` containing shortcuts
</parameter_description>
</parameter>
</parameters>
<return> a newly created shortcut controller
</return>
</function>

<function name="gtk_shortcut_controller_remove_shortcut">
<description>
Removes @shortcut from the list of shortcuts handled by @self.

If @shortcut had not been added to @controller or this controller
uses an external shortcut list, this function does nothing.

</description>
<parameters>
<parameter name="self">
<parameter_description> the controller
</parameter_description>
</parameter>
<parameter name="shortcut">
<parameter_description> a `GtkShortcut`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_shortcut_controller_set_mnemonics_modifiers">
<description>
Sets the controller to use the given modifier for mnemonics.

The mnemonics modifiers determines which modifiers need to be pressed to allow
activation of shortcuts with mnemonics triggers.

GTK normally uses the Alt modifier for mnemonics, except in `GtkPopoverMenu`s,
where mnemonics can be triggered without any modifiers. It should be very
rarely necessary to change this, and doing so is likely to interfere with
other shortcuts.

This value is only relevant for local shortcut controllers. Global and managed
shortcut controllers will have their shortcuts activated from other places which
have their own modifiers for activating mnemonics.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutController`
</parameter_description>
</parameter>
<parameter name="modifiers">
<parameter_description> the new mnemonics_modifiers to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_shortcut_controller_set_scope">
<description>
Sets the controller to have the given @scope.

The scope allows shortcuts to be activated outside of the normal
event propagation. In particular, it allows installing global
keyboard shortcuts that can be activated even when a widget does
not have focus.

With %GTK_SHORTCUT_SCOPE_LOCAL, shortcuts will only be activated
when the widget has focus.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutController`
</parameter_description>
</parameter>
<parameter name="scope">
<parameter_description> the new scope to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_shortcut_get_action">
<description>
Gets the action that is activated by this shortcut.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcut`
</parameter_description>
</parameter>
</parameters>
<return> the action
</return>
</function>

<function name="gtk_shortcut_get_arguments">
<description>
Gets the arguments that are passed when activating the shortcut.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcut`
</parameter_description>
</parameter>
</parameters>
<return> the arguments
</return>
</function>

<function name="gtk_shortcut_get_trigger">
<description>
Gets the trigger used to trigger @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcut`
</parameter_description>
</parameter>
</parameters>
<return> the trigger used
</return>
</function>

<function name="gtk_shortcut_label_get_accelerator">
<description>
Retrieves the current accelerator of @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutLabel`
</parameter_description>
</parameter>
</parameters>
<return> the current accelerator.
</return>
</function>

<function name="gtk_shortcut_label_get_disabled_text">
<description>
Retrieves the text that is displayed when no accelerator is set.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutLabel`
</parameter_description>
</parameter>
</parameters>
<return> the current text displayed when no
accelerator is set.
</return>
</function>

<function name="gtk_shortcut_label_new">
<description>
Creates a new `GtkShortcutLabel` with @accelerator set.


</description>
<parameters>
<parameter name="accelerator">
<parameter_description> the initial accelerator
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated `GtkShortcutLabel`
</return>
</function>

<function name="gtk_shortcut_label_set_accelerator">
<description>
Sets the accelerator to be displayed by @self.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutLabel`
</parameter_description>
</parameter>
<parameter name="accelerator">
<parameter_description> the new accelerator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_shortcut_label_set_disabled_text">
<description>
Sets the text to be displayed by @self when no accelerator is set.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutLabel`
</parameter_description>
</parameter>
<parameter name="disabled_text">
<parameter_description> the text to be displayed when no accelerator is set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_shortcut_new">
<description>
Creates a new `GtkShortcut` that is triggered by
@trigger and then activates @action.


</description>
<parameters>
<parameter name="trigger">
<parameter_description> The trigger that will trigger the shortcut
</parameter_description>
</parameter>
<parameter name="action">
<parameter_description> The action that will be activated upon
triggering
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkShortcut`
</return>
</function>

<function name="gtk_shortcut_new_with_arguments">
<description>
Creates a new `GtkShortcut` that is triggered by @trigger and then activates
@action with arguments given by @format_string.


</description>
<parameters>
<parameter name="trigger">
<parameter_description> The trigger that will trigger the shortcut
</parameter_description>
</parameter>
<parameter name="action">
<parameter_description> The action that will be activated upon
triggering
</parameter_description>
</parameter>
<parameter name="format_string">
<parameter_description> GVariant format string for arguments or %NULL for
no arguments
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments, as given by format string.
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkShortcut`
</return>
</function>

<function name="gtk_shortcut_set_action">
<description>
Sets the new action for @self to be @action.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcut`
</parameter_description>
</parameter>
<parameter name="action">
<parameter_description> The new action.
If the @action is %NULL, the nothing action will be used.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_shortcut_set_arguments">
<description>
Sets the arguments to pass when activating the shortcut.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcut`
</parameter_description>
</parameter>
<parameter name="args">
<parameter_description> arguments to pass when activating @self
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_shortcut_set_trigger">
<description>
Sets the new trigger for @self to be @trigger.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcut`
</parameter_description>
</parameter>
<parameter name="trigger">
<parameter_description> The new trigger.
If the @trigger is %NULL, the never trigger will be used.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_shortcut_trigger_compare">
<description>
The types of @trigger1 and @trigger2 are `gconstpointer` only to allow
use of this function as a `GCompareFunc`.

They must each be a `GtkShortcutTrigger`.


</description>
<parameters>
<parameter name="trigger1">
<parameter_description> a `GtkShortcutTrigger`
</parameter_description>
</parameter>
<parameter name="trigger2">
<parameter_description> a `GtkShortcutTrigger`
</parameter_description>
</parameter>
</parameters>
<return> An integer less than, equal to, or greater than zero if
@trigger1 is found, respectively, to be less than, to match,
or be greater than @trigger2.
</return>
</function>

<function name="gtk_shortcut_trigger_equal">
<description>
Checks if @trigger1 and @trigger2 trigger under the same conditions.

The types of @one and @two are `gconstpointer` only to allow use of this
function with `GHashTable`. They must each be a `GtkShortcutTrigger`.


</description>
<parameters>
<parameter name="trigger1">
<parameter_description> a `GtkShortcutTrigger`
</parameter_description>
</parameter>
<parameter name="trigger2">
<parameter_description> a `GtkShortcutTrigger`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @trigger1 and @trigger2 are equal
</return>
</function>

<function name="gtk_shortcut_trigger_hash">
<description>
Generates a hash value for a `GtkShortcutTrigger`.

The output of this function is guaranteed to be the same for a given
value only per-process. It may change between different processor
architectures or even different versions of GTK. Do not use this
function as a basis for building protocols or file formats.

The types of @trigger is `gconstpointer` only to allow use of this
function with `GHashTable`. They must each be a `GtkShortcutTrigger`.


</description>
<parameters>
<parameter name="trigger">
<parameter_description> a `GtkShortcutTrigger`
</parameter_description>
</parameter>
</parameters>
<return> a hash value corresponding to @trigger
</return>
</function>

<function name="gtk_shortcut_trigger_parse_string">
<description>
Tries to parse the given string into a trigger.

On success, the parsed trigger is returned.
When parsing failed, %NULL is returned.

The accepted strings are:

- `never`, for `GtkNeverTrigger`
- a string parsed by gtk_accelerator_parse(), for a `GtkKeyvalTrigger`, e.g. `&lt;Control&gt;C`
- underscore, followed by a single character, for `GtkMnemonicTrigger`, e.g. `_l`
- two valid trigger strings, separated by a `|` character, for a
`GtkAlternativeTrigger`: `&lt;Control&gt;q|&lt;Control&gt;w`

Note that you will have to escape the `&lt;` and `&gt;` characters when specifying
triggers in XML files, such as GtkBuilder ui files. Use `&lt;` instead of
`&lt;` and `&gt;` instead of `&gt;`.


</description>
<parameters>
<parameter name="string">
<parameter_description> the string to parse
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkShortcutTrigger`
</return>
</function>

<function name="gtk_shortcut_trigger_print">
<description>
Prints the given trigger into a string for the developer.
This is meant for debugging and logging.

The form of the representation may change at any time
and is not guaranteed to stay identical.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutTrigger`
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> a `GString` to print into
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_shortcut_trigger_print_label">
<description>
Prints the given trigger into a string.

This function is returning a translated string for presentation
to end users for example in menu items or in help texts.

The @display in use may influence the resulting string in
various forms, such as resolving hardware keycodes or by
causing display-specific modifier names.

The form of the representation may change at any time and is
not guaranteed to stay identical.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutTrigger`
</parameter_description>
</parameter>
<parameter name="display">
<parameter_description> `GdkDisplay` to print for
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> a `GString` to print into
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if something was printed or %FALSE if the
trigger did not have a textual representation suitable
for end users.
</return>
</function>

<function name="gtk_shortcut_trigger_to_label">
<description>
Gets textual representation for the given trigger.

This function is returning a translated string for
presentation to end users for example in menu items
or in help texts.

The @display in use may influence the resulting string in
various forms, such as resolving hardware keycodes or by
causing display-specific modifier names.

The form of the representation may change at any time and is
not guaranteed to stay identical.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutTrigger`
</parameter_description>
</parameter>
<parameter name="display">
<parameter_description> `GdkDisplay` to print for
</parameter_description>
</parameter>
</parameters>
<return> a new string
</return>
</function>

<function name="gtk_shortcut_trigger_to_string">
<description>
Prints the given trigger into a human-readable string.

This is a small wrapper around [method@Gtk.ShortcutTrigger.print]
to help when debugging.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutTrigger`
</parameter_description>
</parameter>
</parameters>
<return> a new string
</return>
</function>

<function name="gtk_shortcut_trigger_trigger">
<description>
Checks if the given @event triggers @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutTrigger`
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> the event to check
</parameter_description>
</parameter>
<parameter name="enable_mnemonics">
<parameter_description> %TRUE if mnemonics should trigger. Usually the
value of this property is determined by checking that the passed
in @event is a Key event and has the right modifiers set.
</parameter_description>
</parameter>
</parameters>
<return> Whether the event triggered the shortcut
</return>
</function>

<function name="gtk_shortcuts_group_add_shortcut">
<description>
Adds a shortcut to the shortcuts group.

This is the programmatic equivalent to using [class@Gtk.Builder] and a
`&lt;child&gt;` tag to add the child. Adding children with other API is not
appropriate as `GtkShortcutsGroup` manages its children internally.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutsGroup`
</parameter_description>
</parameter>
<parameter name="shortcut">
<parameter_description> the `GtkShortcutsShortcut` to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_shortcuts_section_add_group">
<description>
Adds a group to the shortcuts section.

This is the programmatic equivalent to using [class@Gtk.Builder] and a
`&lt;child&gt;` tag to add the child.

Adding children with the `GtkBox` API is not appropriate, as
`GtkShortcutsSection` manages its children internally.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutsSection`
</parameter_description>
</parameter>
<parameter name="group">
<parameter_description> the `GtkShortcutsGroup` to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_shortcuts_window_add_section">
<description>
Adds a section to the shortcuts window.

This is the programmatic equivalent to using [class@Gtk.Builder] and a
`&lt;child&gt;` tag to add the child.

Using [method@Gtk.Window.set_child] is not appropriate as the shortcuts
window manages its children internally.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkShortcutsWindow`
</parameter_description>
</parameter>
<parameter name="section">
<parameter_description> the `GtkShortcutsSection` to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_show_about_dialog">
<description>
A convenience function for showing an application’s about dialog.

The constructed dialog is associated with the parent window and
reused for future invocations of this function.

</description>
<parameters>
<parameter name="parent">
<parameter_description> the parent top-level window
</parameter_description>
</parameter>
<parameter name="first_property_name">
<parameter_description> the name of the first property
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> value of first property, followed by more pairs of property
name and value, `NULL`-terminated
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_show_uri">
<description>
This function launches the default application for showing
a given uri, or shows an error dialog if that fails.

Deprecated: 4.10: Use [method@Gtk.FileLauncher.launch] or
[method@Gtk.UriLauncher.launch] instead

</description>
<parameters>
<parameter name="parent">
<parameter_description> parent window
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> the uri to show
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> timestamp from the event that triggered this call, or %GDK_CURRENT_TIME
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_show_uri_full">
<description>
This function launches the default application for showing
a given uri.

The @callback will be called when the launch is completed.
It should call gtk_show_uri_full_finish() to obtain the result.

This is the recommended call to be used as it passes information
necessary for sandbox helpers to parent their dialogs properly.

Deprecated: 4.10: Use [method@Gtk.FileLauncher.launch] or
[method@Gtk.UriLauncher.launch] instead

</description>
<parameters>
<parameter name="parent">
<parameter_description> parent window
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> the uri to show
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> timestamp from the event that triggered this call, or %GDK_CURRENT_TIME
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the launch
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the action is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_show_uri_full_finish">
<description>
Finishes the gtk_show_uri() call and returns the result
of the operation.

Deprecated: 4.10: Use [method@Gtk.FileLauncher.launch_finish] or
[method@Gtk.UriLauncher.launch_finish] instead

</description>
<parameters>
<parameter name="parent">
<parameter_description> the `GtkWindow` passed to gtk_show_uri()
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> `GAsyncResult` that was passed to @callback
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for an error
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the URI was shown successfully.
Otherwise, %FALSE is returned and @error is set

</return>
</function>

<function name="gtk_signal_action_get_signal_name">
<description>
Returns the name of the signal that will be emitted.


</description>
<parameters>
<parameter name="self">
<parameter_description> a signal action
</parameter_description>
</parameter>
</parameters>
<return> the name of the signal to emit
</return>
</function>

<function name="gtk_signal_action_new">
<description>
Creates an action that when activated, emits the given action signal
on the provided widget.

It will also unpack the args into arguments passed to the signal.


</description>
<parameters>
<parameter name="signal_name">
<parameter_description> name of the signal to emit
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkShortcutAction`
</return>
</function>

<function name="gtk_signal_list_item_factory_new">
<description>
Creates a new `GtkSignalListItemFactory`.

You need to connect signal handlers before you use it.


</description>
<parameters>
</parameters>
<return> a new `GtkSignalListItemFactory`
</return>
</function>

<function name="gtk_single_selection_get_autoselect">
<description>
Checks if autoselect has been enabled or disabled via
gtk_single_selection_set_autoselect().


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSingleSelection`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if autoselect is enabled
</return>
</function>

<function name="gtk_single_selection_get_can_unselect">
<description>
If %TRUE, gtk_selection_model_unselect_item() is supported and allows
unselecting the selected item.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSingleSelection`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE to support unselecting
</return>
</function>

<function name="gtk_single_selection_get_model">
<description>
Gets the model that @self is wrapping.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSingleSelection`
</parameter_description>
</parameter>
</parameters>
<return> The model being wrapped
</return>
</function>

<function name="gtk_single_selection_get_selected">
<description>
Gets the position of the selected item.

If no item is selected, %GTK_INVALID_LIST_POSITION is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSingleSelection`
</parameter_description>
</parameter>
</parameters>
<return> The position of the selected item
</return>
</function>

<function name="gtk_single_selection_get_selected_item">
<description>
Gets the selected item.

If no item is selected, %NULL is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSingleSelection`
</parameter_description>
</parameter>
</parameters>
<return> The selected item
</return>
</function>

<function name="gtk_single_selection_new">
<description>
Creates a new selection to handle @model.


</description>
<parameters>
<parameter name="model">
<parameter_description> the `GListModel` to manage
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkSingleSelection`
</return>
</function>

<function name="gtk_single_selection_set_autoselect">
<description>
Enables or disables autoselect.

If @autoselect is %TRUE, @self will enforce that an item is always
selected. It will select a new item when the currently selected
item is deleted and it will disallow unselecting the current item.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSingleSelection`
</parameter_description>
</parameter>
<parameter name="autoselect">
<parameter_description> %TRUE to always select an item
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_single_selection_set_can_unselect">
<description>
If %TRUE, unselecting the current item via
gtk_selection_model_unselect_item() is supported.

Note that setting [property@Gtk.SingleSelection:autoselect] will
cause unselecting to not work, so it practically makes no sense
to set both at the same time the same time.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSingleSelection`
</parameter_description>
</parameter>
<parameter name="can_unselect">
<parameter_description> %TRUE to allow unselecting
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_single_selection_set_model">
<description>
Sets the model that @self should wrap.

If @model is %NULL, @self will be empty.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSingleSelection`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> A `GListModel` to wrap
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_single_selection_set_selected">
<description>
Selects the item at the given position.

If the list does not have an item at @position or
%GTK_INVALID_LIST_POSITION is given, the behavior depends on the
value of the [property@Gtk.SingleSelection:autoselect] property:
If it is set, no change will occur and the old item will stay
selected. If it is unset, the selection will be unset and no item
will be selected.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSingleSelection`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the item to select or %GTK_INVALID_LIST_POSITION
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_size_group_add_widget">
<description>
Adds a widget to a `GtkSizeGroup`.

In the future, the requisition
of the widget will be determined as the maximum of its requisition
and the requisition of the other widgets in the size group.
Whether this applies horizontally, vertically, or in both directions
depends on the mode of the size group.
See [method@Gtk.SizeGroup.set_mode].

When the widget is destroyed or no longer referenced elsewhere, it
will be removed from the size group.

</description>
<parameters>
<parameter name="size_group">
<parameter_description> a `GtkSizeGroup`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_size_group_get_mode">
<description>
Gets the current mode of the size group.


</description>
<parameters>
<parameter name="size_group">
<parameter_description> a `GtkSizeGroup`
</parameter_description>
</parameter>
</parameters>
<return> the current mode of the size group.
</return>
</function>

<function name="gtk_size_group_get_widgets">
<description>
Returns the list of widgets associated with @size_group.


</description>
<parameters>
<parameter name="size_group">
<parameter_description> a `GtkSizeGroup`
</parameter_description>
</parameter>
</parameters>
<return> a `GSList` of
widgets. The list is owned by GTK and should not be modified.
</return>
</function>

<function name="gtk_size_group_new">
<description>
Create a new `GtkSizeGroup`.


</description>
<parameters>
<parameter name="mode">
<parameter_description> the mode for the new size group.
</parameter_description>
</parameter>
</parameters>
<return> a newly created `GtkSizeGroup`
</return>
</function>

<function name="gtk_size_group_remove_widget">
<description>
Removes a widget from a `GtkSizeGroup`.

</description>
<parameters>
<parameter name="size_group">
<parameter_description> a `GtkSizeGroup`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the `GtkWidget` to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_size_group_set_mode">
<description>
Sets the `GtkSizeGroupMode` of the size group.

The mode of the size group determines whether the widgets in the
size group should all have the same horizontal requisition
(%GTK_SIZE_GROUP_HORIZONTAL) all have the same vertical requisition
(%GTK_SIZE_GROUP_VERTICAL), or should all have the same requisition
in both directions (%GTK_SIZE_GROUP_BOTH).

</description>
<parameters>
<parameter name="size_group">
<parameter_description> a `GtkSizeGroup`
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the mode to set for the size group.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_slice_list_model_get_model">
<description>
Gets the model that is currently being used or %NULL if none.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSliceListModel`
</parameter_description>
</parameter>
</parameters>
<return> The model in use
</return>
</function>

<function name="gtk_slice_list_model_get_offset">
<description>
Gets the offset set via gtk_slice_list_model_set_offset().


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSliceListModel`
</parameter_description>
</parameter>
</parameters>
<return> The offset
</return>
</function>

<function name="gtk_slice_list_model_get_size">
<description>
Gets the size set via gtk_slice_list_model_set_size().


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSliceListModel`
</parameter_description>
</parameter>
</parameters>
<return> The size
</return>
</function>

<function name="gtk_slice_list_model_new">
<description>
Creates a new slice model.

It presents the slice from @offset to offset + @size
of the given @model.


</description>
<parameters>
<parameter name="model">
<parameter_description> The model to use
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the offset of the slice
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> maximum size of the slice
</parameter_description>
</parameter>
</parameters>
<return> A new `GtkSliceListModel`
</return>
</function>

<function name="gtk_slice_list_model_set_model">
<description>
Sets the model to show a slice of.

The model's item type must conform to @self's item type.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSliceListModel`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> The model to be sliced
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_slice_list_model_set_offset">
<description>
Sets the offset into the original model for this slice.

If the offset is too large for the sliced model,
@self will end up empty.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSliceListModel`
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> the new offset to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_slice_list_model_set_size">
<description>
Sets the maximum size. @self will never have more items
than @size.

It can however have fewer items if the offset is too large
or the model sliced from doesn't have enough items.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSliceListModel`
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the maximum size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_append_border">
<description>
Appends a stroked border rectangle inside the given @outline.

The four sides of the border can have different widths and colors.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="outline">
<parameter_description> the outline of the border
</parameter_description>
</parameter>
<parameter name="border_width">
<parameter_description> the stroke width of the border on
the top, right, bottom and left side respectively.
</parameter_description>
</parameter>
<parameter name="border_color">
<parameter_description> the color used on the top, right,
bottom and left side.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_append_cairo">
<description>
Creates a new [class@Gsk.CairoNode] and appends it to the current
render node of @snapshot, without changing the current node.


</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the bounds for the new node
</parameter_description>
</parameter>
</parameters>
<return> a `cairo_t` suitable for drawing the contents of
the newly created render node
</return>
</function>

<function name="gtk_snapshot_append_color">
<description>
Creates a new render node drawing the @color into the
given @bounds and appends it to the current render node
of @snapshot.

You should try to avoid calling this function if
@color is transparent.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="color">
<parameter_description> the color to draw
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the bounds for the new node
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_append_conic_gradient">
<description>
Appends a conic gradient node with the given stops to @snapshot.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the rectangle to render the gradient into
</parameter_description>
</parameter>
<parameter name="center">
<parameter_description> the center point of the conic gradient
</parameter_description>
</parameter>
<parameter name="rotation">
<parameter_description> the clockwise rotation in degrees of the starting angle.
0 means the starting angle is the top.
</parameter_description>
</parameter>
<parameter name="stops">
<parameter_description> the color stops defining the gradient
</parameter_description>
</parameter>
<parameter name="n_stops">
<parameter_description> the number of elements in @stops
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_append_fill">
<description>
A convenience method to fill a path with a color.

See [method@Gtk.Snapshot.push_fill] if you need
to fill a path with more complex content than
a color.

Since: 4.14

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> The path describing the area to fill
</parameter_description>
</parameter>
<parameter name="fill_rule">
<parameter_description> The fill rule to use
</parameter_description>
</parameter>
<parameter name="color">
<parameter_description> the color to fill the path with
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_append_inset_shadow">
<description>
Appends an inset shadow into the box given by @outline.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="outline">
<parameter_description> outline of the region surrounded by shadow
</parameter_description>
</parameter>
<parameter name="color">
<parameter_description> color of the shadow
</parameter_description>
</parameter>
<parameter name="dx">
<parameter_description> horizontal offset of shadow
</parameter_description>
</parameter>
<parameter name="dy">
<parameter_description> vertical offset of shadow
</parameter_description>
</parameter>
<parameter name="spread">
<parameter_description> how far the shadow spreads towards the inside
</parameter_description>
</parameter>
<parameter name="blur_radius">
<parameter_description> how much blur to apply to the shadow
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_append_layout">
<description>
Creates render nodes for rendering @layout in the given foregound @color
and appends them to the current node of @snapshot without changing the
current node. The current theme's foreground color for a widget can be
obtained with [method@Gtk.Widget.get_color].

Note that if the layout does not produce any visible output, then nodes
may not be added to the @snapshot.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="layout">
<parameter_description> the `PangoLayout` to render
</parameter_description>
</parameter>
<parameter name="color">
<parameter_description> the foreground color to render the layout in
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_append_linear_gradient">
<description>
Appends a linear gradient node with the given stops to @snapshot.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the rectangle to render the linear gradient into
</parameter_description>
</parameter>
<parameter name="start_point">
<parameter_description> the point at which the linear gradient will begin
</parameter_description>
</parameter>
<parameter name="end_point">
<parameter_description> the point at which the linear gradient will finish
</parameter_description>
</parameter>
<parameter name="stops">
<parameter_description> the color stops defining the gradient
</parameter_description>
</parameter>
<parameter name="n_stops">
<parameter_description> the number of elements in @stops
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_append_node">
<description>
Appends @node to the current render node of @snapshot,
without changing the current node.

If @snapshot does not have a current node yet, @node
will become the initial node.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="node">
<parameter_description> a `GskRenderNode`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_append_outset_shadow">
<description>
Appends an outset shadow node around the box given by @outline.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="outline">
<parameter_description> outline of the region surrounded by shadow
</parameter_description>
</parameter>
<parameter name="color">
<parameter_description> color of the shadow
</parameter_description>
</parameter>
<parameter name="dx">
<parameter_description> horizontal offset of shadow
</parameter_description>
</parameter>
<parameter name="dy">
<parameter_description> vertical offset of shadow
</parameter_description>
</parameter>
<parameter name="spread">
<parameter_description> how far the shadow spreads towards the outside
</parameter_description>
</parameter>
<parameter name="blur_radius">
<parameter_description> how much blur to apply to the shadow
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_append_radial_gradient">
<description>
Appends a radial gradient node with the given stops to @snapshot.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the rectangle to render the readial gradient into
</parameter_description>
</parameter>
<parameter name="center">
<parameter_description> the center point for the radial gradient
</parameter_description>
</parameter>
<parameter name="hradius">
<parameter_description> the horizontal radius
</parameter_description>
</parameter>
<parameter name="vradius">
<parameter_description> the vertical radius
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start position (on the horizontal axis)
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> the end position (on the horizontal axis)
</parameter_description>
</parameter>
<parameter name="stops">
<parameter_description> the color stops defining the gradient
</parameter_description>
</parameter>
<parameter name="n_stops">
<parameter_description> the number of elements in @stops
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_append_repeating_linear_gradient">
<description>
Appends a repeating linear gradient node with the given stops to @snapshot.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the rectangle to render the linear gradient into
</parameter_description>
</parameter>
<parameter name="start_point">
<parameter_description> the point at which the linear gradient will begin
</parameter_description>
</parameter>
<parameter name="end_point">
<parameter_description> the point at which the linear gradient will finish
</parameter_description>
</parameter>
<parameter name="stops">
<parameter_description> the color stops defining the gradient
</parameter_description>
</parameter>
<parameter name="n_stops">
<parameter_description> the number of elements in @stops
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_append_repeating_radial_gradient">
<description>
Appends a repeating radial gradient node with the given stops to @snapshot.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the rectangle to render the readial gradient into
</parameter_description>
</parameter>
<parameter name="center">
<parameter_description> the center point for the radial gradient
</parameter_description>
</parameter>
<parameter name="hradius">
<parameter_description> the horizontal radius
</parameter_description>
</parameter>
<parameter name="vradius">
<parameter_description> the vertical radius
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> the start position (on the horizontal axis)
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> the end position (on the horizontal axis)
</parameter_description>
</parameter>
<parameter name="stops">
<parameter_description> the color stops defining the gradient
</parameter_description>
</parameter>
<parameter name="n_stops">
<parameter_description> the number of elements in @stops
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_append_scaled_texture">
<description>
Creates a new render node drawing the @texture
into the given @bounds and appends it to the
current render node of @snapshot.

In contrast to [method@Gtk.Snapshot.append_texture],
this function provides control about how the filter
that is used when scaling.

Since: 4.10

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="texture">
<parameter_description> the texture to render
</parameter_description>
</parameter>
<parameter name="filter">
<parameter_description> the filter to use
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the bounds for the new node
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_append_stroke">
<description>
A convenience method to stroke a path with a color.

See [method@Gtk.Snapshot.push_stroke] if you need
to stroke a path with more complex content than
a color.

Since: 4.14

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> The path describing the area to fill
</parameter_description>
</parameter>
<parameter name="stroke">
<parameter_description> The stroke attributes
</parameter_description>
</parameter>
<parameter name="color">
<parameter_description> the color to fill the path with
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_append_texture">
<description>
Creates a new render node drawing the @texture
into the given @bounds and appends it to the
current render node of @snapshot.

If the texture needs to be scaled to fill @bounds,
linear filtering is used. See [method@Gtk.Snapshot.append_scaled_texture]
if you need other filtering, such as nearest-neighbour.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="texture">
<parameter_description> the texture to render
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the bounds for the new node
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_free_to_node">
<description>
Returns the node that was constructed by @snapshot
and frees @snapshot.

See also [method@Gtk.Snapshot.to_node].


</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
</parameters>
<return> a newly-created [class@Gsk.RenderNode]
</return>
</function>

<function name="gtk_snapshot_free_to_paintable">
<description>
Returns a paintable for the node that was
constructed by @snapshot and frees @snapshot.


</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> The size of the resulting paintable
or %NULL to use the bounds of the snapshot
</parameter_description>
</parameter>
</parameters>
<return> a newly-created [iface@Gdk.Paintable]
</return>
</function>

<function name="gtk_snapshot_gl_shader_pop_texture">
<description>
Removes the top element from the stack of render nodes and
adds it to the nearest [class@Gsk.GLShaderNode] below it.

This must be called the same number of times as the number
of textures is needed for the shader in
[method@Gtk.Snapshot.push_gl_shader].

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_new">
<description>
Creates a new `GtkSnapshot`.


</description>
<parameters>
</parameters>
<return> a newly-allocated `GtkSnapshot`
</return>
</function>

<function name="gtk_snapshot_perspective">
<description>
Applies a perspective projection transform.

See [method@Gsk.Transform.perspective] for a discussion on the details.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="depth">
<parameter_description> distance of the z=0 plane
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_pop">
<description>
Removes the top element from the stack of render nodes,
and appends it to the node underneath it.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_push_blend">
<description>
Blends together two images with the given blend mode.

Until the first call to [method@Gtk.Snapshot.pop], the
bottom image for the blend operation will be recorded.
After that call, the top image to be blended will be
recorded until the second call to [method@Gtk.Snapshot.pop].

Calling this function requires two subsequent calls
to [method@Gtk.Snapshot.pop].

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="blend_mode">
<parameter_description> blend mode to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_push_blur">
<description>
Blurs an image.

The image is recorded until the next call to [method@Gtk.Snapshot.pop].

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="radius">
<parameter_description> the blur radius to use. Must be positive
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_push_clip">
<description>
Clips an image to a rectangle.

The image is recorded until the next call to [method@Gtk.Snapshot.pop].

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the rectangle to clip to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_push_collect">
<description>
Private.

Pushes state so a later pop_collect call can collect all nodes
appended until that point.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_push_color_matrix">
<description>
Modifies the colors of an image by applying an affine transformation
in RGB space.

In particular, the colors will be transformed by applying

pixel = transpose(color_matrix) * pixel + color_offset

for every pixel. The transformation operates on unpremultiplied
colors, with color components ordered R, G, B, A.

The image is recorded until the next call to [method@Gtk.Snapshot.pop].

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="color_matrix">
<parameter_description> the color matrix to use
</parameter_description>
</parameter>
<parameter name="color_offset">
<parameter_description> the color offset to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_push_cross_fade">
<description>
Snapshots a cross-fade operation between two images with the
given @progress.

Until the first call to [method@Gtk.Snapshot.pop], the start image
will be snapshot. After that call, the end image will be recorded
until the second call to [method@Gtk.Snapshot.pop].

Calling this function requires two subsequent calls
to [method@Gtk.Snapshot.pop].

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="progress">
<parameter_description> progress between 0.0 and 1.0
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_push_debug">
<description>
Inserts a debug node with a message.

Debug nodes don't affect the rendering at all, but can be
helpful in identifying parts of a render node tree dump,
for example in the GTK inspector.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="message">
<parameter_description> a printf-style format string
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments for @message
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_push_fill">
<description>
Fills the area given by @path and @fill_rule with an image and discards everything
outside of it.

The image is recorded until the next call to [method@Gtk.Snapshot.pop].

If you want to fill the path with a color, [method@Gtk.Snapshot.append_fill]
may be more convenient.

Since: 4.14

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> The path describing the area to fill
</parameter_description>
</parameter>
<parameter name="fill_rule">
<parameter_description> The fill rule to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_push_gl_shader">
<description>
Push a [class@Gsk.GLShaderNode].

The node uses the given [class@Gsk.GLShader] and uniform values
Additionally this takes a list of @n_children other nodes
which will be passed to the [class@Gsk.GLShaderNode].

The @take_args argument is a block of data to use for uniform
arguments, as per types and offsets defined by the @shader.
Normally this is generated by [method@Gsk.GLShader.format_args]
or [struct@Gsk.ShaderArgsBuilder].

The snapshotter takes ownership of @take_args, so the caller should
not free it after this.

If the renderer doesn't support GL shaders, or if there is any
problem when compiling the shader, then the node will draw pink.
You should use [method@Gsk.GLShader.compile] to ensure the @shader
will work for the renderer before using it.

If the shader requires textures (see [method@Gsk.GLShader.get_n_textures]),
then it is expected that you call [method@Gtk.Snapshot.gl_shader_pop_texture]
the number of times that are required. Each of these calls will generate
a node that is added as a child to the `GskGLShaderNode`, which in turn
will render these offscreen and pass as a texture to the shader.

Once all textures (if any) are pop:ed, you must call the regular
[method@Gtk.Snapshot.pop].

If you want to use pre-existing textures as input to the shader rather
than rendering new ones, use [method@Gtk.Snapshot.append_texture] to
push a texture node. These will be used directly rather than being
re-rendered.

For details on how to write shaders, see [class@Gsk.GLShader].

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="shader">
<parameter_description> The code to run
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the rectangle to render into
</parameter_description>
</parameter>
<parameter name="take_args">
<parameter_description> Data block with arguments for the shader.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_push_mask">
<description>
Until the first call to [method@Gtk.Snapshot.pop], the
mask image for the mask operation will be recorded.

After that call, the source image will be recorded until
the second call to [method@Gtk.Snapshot.pop].

Calling this function requires 2 subsequent calls to gtk_snapshot_pop().

Since: 4.10

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a #GtkSnapshot
</parameter_description>
</parameter>
<parameter name="mask_mode">
<parameter_description> mask mode to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_push_opacity">
<description>
Modifies the opacity of an image.

The image is recorded until the next call to [method@Gtk.Snapshot.pop].

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="opacity">
<parameter_description> the opacity to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_push_repeat">
<description>
Creates a node that repeats the child node.

The child is recorded until the next call to [method@Gtk.Snapshot.pop].

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the bounds within which to repeat
</parameter_description>
</parameter>
<parameter name="child_bounds">
<parameter_description> the bounds of the child or %NULL
to use the full size of the collected child node
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_push_rounded_clip">
<description>
Clips an image to a rounded rectangle.

The image is recorded until the next call to [method@Gtk.Snapshot.pop].

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="bounds">
<parameter_description> the rounded rectangle to clip to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_push_shadow">
<description>
Applies a shadow to an image.

The image is recorded until the next call to [method@Gtk.Snapshot.pop].

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="shadow">
<parameter_description> the first shadow specification
</parameter_description>
</parameter>
<parameter name="n_shadows">
<parameter_description> number of shadow specifications
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_push_stroke">
<description>
Strokes the given @path with the attributes given by @stroke and
an image.

The image is recorded until the next call to [method@Gtk.Snapshot.pop].

Note that the strokes are subject to the same transformation as
everything else, so uneven scaling will cause horizontal and vertical
strokes to have different widths.

If you want to stroke the path with a color, [method@Gtk.Snapshot.append_stroke]
may be more convenient.

Since: 4.14

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a #GtkSnapshot
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> The path to stroke
</parameter_description>
</parameter>
<parameter name="stroke">
<parameter_description> The stroke attributes
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_render_background">
<description>
Creates a render node for the CSS background according to @context,
and appends it to the current node of @snapshot, without changing
the current node.

Deprecated: 4.10

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the style context that defines the background
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X origin of the rectangle
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y origin of the rectangle
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> rectangle width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> rectangle height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_render_focus">
<description>
Creates a render node for the focus outline according to @context,
and appends it to the current node of @snapshot, without changing
the current node.

Deprecated: 4.10

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the style context that defines the focus ring
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X origin of the rectangle
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y origin of the rectangle
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> rectangle width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> rectangle height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_render_frame">
<description>
Creates a render node for the CSS border according to @context,
and appends it to the current node of @snapshot, without changing
the current node.

Deprecated: 4.10

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the style context that defines the frame
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X origin of the rectangle
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y origin of the rectangle
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> rectangle width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> rectangle height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_render_insertion_cursor">
<description>
Draws a text caret using @snapshot at the specified index of @layout.

Deprecated: 4.10

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> snapshot to render to
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X origin
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y origin
</parameter_description>
</parameter>
<parameter name="layout">
<parameter_description> the `PangoLayout` of the text
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> the index in the `PangoLayout`
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> the `PangoDirection` of the text
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_render_layout">
<description>
Creates a render node for rendering @layout according to the style
information in @context, and appends it to the current node of @snapshot,
without changing the current node.

Deprecated: 4.10

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> the style context that defines the text
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X origin of the rectangle
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y origin of the rectangle
</parameter_description>
</parameter>
<parameter name="layout">
<parameter_description> the `PangoLayout` to render
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_restore">
<description>
Restores @snapshot to the state saved by a preceding call to
[method@Snapshot.save] and removes that state from the stack of
saved states.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_rotate">
<description>
Rotates @@snapshot's coordinate system by @angle degrees in 2D space -
or in 3D speak, rotates around the Z axis. The rotation happens around
the origin point of (0, 0) in the @snapshot's current coordinate system.

To rotate around axes other than the Z axis, use [method@Gsk.Transform.rotate_3d].

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="angle">
<parameter_description> the rotation angle, in degrees (clockwise)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_rotate_3d">
<description>
Rotates @snapshot's coordinate system by @angle degrees around @axis.

For a rotation in 2D space, use [method@Gsk.Transform.rotate].

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="angle">
<parameter_description> the rotation angle, in degrees (clockwise)
</parameter_description>
</parameter>
<parameter name="axis">
<parameter_description> The rotation axis
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_save">
<description>
Makes a copy of the current state of @snapshot and saves it
on an internal stack.

When [method@Gtk.Snapshot.restore] is called, @snapshot will
be restored to the saved state. Multiple calls to
[method@Snapshot.save] and [class@Snapshot.restore] can be nested;
each call to `gtk_snapshot_restore()` restores the state from
the matching paired `gtk_snapshot_save()`.

It is necessary to clear all saved states with corresponding
calls to `gtk_snapshot_restore()`.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_scale">
<description>
Scales @snapshot's coordinate system in 2-dimensional space by
the given factors.

Use [method@Gtk.Snapshot.scale_3d] to scale in all 3 dimensions.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="factor_x">
<parameter_description> scaling factor on the X axis
</parameter_description>
</parameter>
<parameter name="factor_y">
<parameter_description> scaling factor on the Y axis
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_scale_3d">
<description>
Scales @snapshot's coordinate system by the given factors.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="factor_x">
<parameter_description> scaling factor on the X axis
</parameter_description>
</parameter>
<parameter name="factor_y">
<parameter_description> scaling factor on the Y axis
</parameter_description>
</parameter>
<parameter name="factor_z">
<parameter_description> scaling factor on the Z axis
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_to_node">
<description>
Returns the render node that was constructed
by @snapshot.

Note that this function may return %NULL if nothing has been
added to the snapshot or if its content does not produce pixels
to be rendered.

After calling this function, it is no longer possible to
add more nodes to @snapshot. The only function that should
be called after this is [method@GObject.Object.unref].


</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
</parameters>
<return> the constructed `GskRenderNode` or
%NULL if there are no nodes to render.
</return>
</function>

<function name="gtk_snapshot_to_paintable">
<description>
Returns a paintable encapsulating the render node
that was constructed by @snapshot.

After calling this function, it is no longer possible to
add more nodes to @snapshot. The only function that should
be called after this is [method@GObject.Object.unref].


</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> The size of the resulting paintable
or %NULL to use the bounds of the snapshot
</parameter_description>
</parameter>
</parameters>
<return> a new `GdkPaintable`
</return>
</function>

<function name="gtk_snapshot_transform">
<description>
Transforms @snapshot's coordinate system with the given @transform.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="transform">
<parameter_description> the transform to apply
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_transform_matrix">
<description>
Transforms @snapshot's coordinate system with the given @matrix.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="matrix">
<parameter_description> the matrix to multiply the transform with
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_translate">
<description>
Translates @snapshot's coordinate system by @point in 2-dimensional space.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="point">
<parameter_description> the point to translate the snapshot by
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_snapshot_translate_3d">
<description>
Translates @snapshot's coordinate system by @point.

</description>
<parameters>
<parameter name="snapshot">
<parameter_description> a `GtkSnapshot`
</parameter_description>
</parameter>
<parameter name="point">
<parameter_description> the point to translate the snapshot by
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_sort_list_model_get_incremental">
<description>
Returns whether incremental sorting is enabled.

See [method@Gtk.SortListModel.set_incremental].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSortListModel`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if incremental sorting is enabled
</return>
</function>

<function name="gtk_sort_list_model_get_model">
<description>
Gets the model currently sorted or %NULL if none.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSortListModel`
</parameter_description>
</parameter>
</parameters>
<return> The model that gets sorted
</return>
</function>

<function name="gtk_sort_list_model_get_pending">
<description>
Estimates progress of an ongoing sorting operation.

The estimate is the number of items that would still need to be
sorted to finish the sorting operation if this was a linear
algorithm. So this number is not related to how many items are
already correctly sorted.

If you want to estimate the progress, you can use code like this:
```c
pending = gtk_sort_list_model_get_pending (self);
model = gtk_sort_list_model_get_model (self);
progress = 1.0 - pending / (double) MAX (1, g_list_model_get_n_items (model));
```

If no sort operation is ongoing - in particular when
[property@Gtk.SortListModel:incremental] is %FALSE - this
function returns 0.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSortListModel`
</parameter_description>
</parameter>
</parameters>
<return> a progress estimate of remaining items to sort
</return>
</function>

<function name="gtk_sort_list_model_get_section_sorter">
<description>
Gets the section sorter that is used to sort items of @self into
sections.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSortListModel`
</parameter_description>
</parameter>
</parameters>
<return> the sorter of #self

</return>
</function>

<function name="gtk_sort_list_model_get_sorter">
<description>
Gets the sorter that is used to sort @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSortListModel`
</parameter_description>
</parameter>
</parameters>
<return> the sorter of #self
</return>
</function>

<function name="gtk_sort_list_model_new">
<description>
Creates a new sort list model that uses the @sorter to sort @model.


</description>
<parameters>
<parameter name="model">
<parameter_description> the model to sort
</parameter_description>
</parameter>
<parameter name="sorter">
<parameter_description> the `GtkSorter` to sort @model with,
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkSortListModel`
</return>
</function>

<function name="gtk_sort_list_model_set_incremental">
<description>
Sets the sort model to do an incremental sort.

When incremental sorting is enabled, the `GtkSortListModel` will not do
a complete sort immediately, but will instead queue an idle handler that
incrementally sorts the items towards their correct position. This of
course means that items do not instantly appear in the right place. It
also means that the total sorting time is a lot slower.

When your filter blocks the UI while sorting, you might consider
turning this on. Depending on your model and sorters, this may become
interesting around 10,000 to 100,000 items.

By default, incremental sorting is disabled.

See [method@Gtk.SortListModel.get_pending] for progress information
about an ongoing incremental sorting operation.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSortListModel`
</parameter_description>
</parameter>
<parameter name="incremental">
<parameter_description> %TRUE to sort incrementally
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_sort_list_model_set_model">
<description>
Sets the model to be sorted.

The @model's item type must conform to the item type of @self.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSortListModel`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> The model to be sorted
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_sort_list_model_set_section_sorter">
<description>
Sets a new section sorter on @self.

Since: 4.12

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSortListModel`
</parameter_description>
</parameter>
<parameter name="sorter">
<parameter_description> the `GtkSorter` to sort @model with
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_sort_list_model_set_sorter">
<description>
Sets a new sorter on @self.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSortListModel`
</parameter_description>
</parameter>
<parameter name="sorter">
<parameter_description> the `GtkSorter` to sort @model with
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_sorter_changed">
<description>
Notifies all users of the sorter that it has changed.

This emits the [signal@Gtk.Sorter::changed] signal. Users
of the sorter should then update the sort order via
[method@Gtk.Sorter.compare].

Depending on the @change parameter, it may be possible to
update the sort order without a full resorting. Refer to
the [enum@Gtk.SorterChange] documentation for details.

This function is intended for implementors of `GtkSorter`
subclasses and should not be called from other functions.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSorter`
</parameter_description>
</parameter>
<parameter name="change">
<parameter_description> How the sorter changed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_sorter_compare">
<description>
Compares two given items according to the sort order implemented
by the sorter.

Sorters implement a partial order:

* It is reflexive, ie a = a
* It is antisymmetric, ie if a &lt; b and b &lt; a, then a = b
* It is transitive, ie given any 3 items with a ≤ b and b ≤ c,
then a ≤ c

The sorter may signal it conforms to additional constraints
via the return value of [method@Gtk.Sorter.get_order].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSorter`
</parameter_description>
</parameter>
<parameter name="item1">
<parameter_description> first item to compare
</parameter_description>
</parameter>
<parameter name="item2">
<parameter_description> second item to compare
</parameter_description>
</parameter>
</parameters>
<return> %GTK_ORDERING_EQUAL if @item1 == @item2,
%GTK_ORDERING_SMALLER if @item1 &lt; @item2,
%GTK_ORDERING_LARGER if @item1 &gt; @item2
</return>
</function>

<function name="gtk_sorter_get_order">
<description>
Gets the order that @self conforms to.

See [enum@Gtk.SorterOrder] for details
of the possible return values.

This function is intended to allow optimizations.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSorter`
</parameter_description>
</parameter>
</parameters>
<return> The order
</return>
</function>

<function name="gtk_spin_button_configure">
<description>
Changes the properties of an existing spin button.

The adjustment, climb rate, and number of decimal places
are updated accordingly.

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment` to replace the spin button’s
existing adjustment, or %NULL to leave its current adjustment unchanged
</parameter_description>
</parameter>
<parameter name="climb_rate">
<parameter_description> the new climb rate
</parameter_description>
</parameter>
<parameter name="digits">
<parameter_description> the number of decimal places to display in the spin button
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spin_button_get_adjustment">
<description>
Get the adjustment associated with a `GtkSpinButton`.


</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkAdjustment` of @spin_button
</return>
</function>

<function name="gtk_spin_button_get_climb_rate">
<description>
Returns the acceleration rate for repeated changes.


</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
</parameters>
<return> the acceleration rate
</return>
</function>

<function name="gtk_spin_button_get_digits">
<description>
Fetches the precision of @spin_button.


</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
</parameters>
<return> the current precision
</return>
</function>

<function name="gtk_spin_button_get_increments">
<description>
Gets the current step and page the increments
used by @spin_button.

See [method@Gtk.SpinButton.set_increments].

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
<parameter name="step">
<parameter_description> location to store step increment
</parameter_description>
</parameter>
<parameter name="page">
<parameter_description> location to store page increment
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spin_button_get_numeric">
<description>
Returns whether non-numeric text can be typed into the spin button.


</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if only numeric text can be entered
</return>
</function>

<function name="gtk_spin_button_get_range">
<description>
Gets the range allowed for @spin_button.

See [method@Gtk.SpinButton.set_range].

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
<parameter name="min">
<parameter_description> location to store minimum allowed value
</parameter_description>
</parameter>
<parameter name="max">
<parameter_description> location to store maximum allowed value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spin_button_get_snap_to_ticks">
<description>
Returns whether the values are corrected to the nearest step.


</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if values are snapped to the nearest step
</return>
</function>

<function name="gtk_spin_button_get_update_policy">
<description>
Gets the update behavior of a spin button.

See [method@Gtk.SpinButton.set_update_policy].


</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
</parameters>
<return> the current update policy
</return>
</function>

<function name="gtk_spin_button_get_value">
<description>
Get the value in the @spin_button.


</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
</parameters>
<return> the value of @spin_button
</return>
</function>

<function name="gtk_spin_button_get_value_as_int">
<description>
Get the value @spin_button represented as an integer.


</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
</parameters>
<return> the value of @spin_button
</return>
</function>

<function name="gtk_spin_button_get_wrap">
<description>
Returns whether the spin button’s value wraps around to the
opposite limit when the upper or lower limit of the range is
exceeded.


</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the spin button wraps around
</return>
</function>

<function name="gtk_spin_button_new">
<description>
Creates a new `GtkSpinButton`.


</description>
<parameters>
<parameter name="adjustment">
<parameter_description> the `GtkAdjustment` that this spin button should use
</parameter_description>
</parameter>
<parameter name="climb_rate">
<parameter_description> specifies by how much the rate of change in the value will
accelerate if you continue to hold down an up/down button or arrow key
</parameter_description>
</parameter>
<parameter name="digits">
<parameter_description> the number of decimal places to display
</parameter_description>
</parameter>
</parameters>
<return> The new `GtkSpinButton`
</return>
</function>

<function name="gtk_spin_button_new_with_range">
<description>
Creates a new `GtkSpinButton` with the given properties.

This is a convenience constructor that allows creation
of a numeric `GtkSpinButton` without manually creating
an adjustment. The value is initially set to the minimum
value and a page increment of 10 * @step is the default.
The precision of the spin button is equivalent to the
precision of @step.

Note that the way in which the precision is derived works
best if @step is a power of ten. If the resulting precision
is not suitable for your needs, use
[method@Gtk.SpinButton.set_digits] to correct it.


</description>
<parameters>
<parameter name="min">
<parameter_description> Minimum allowable value
</parameter_description>
</parameter>
<parameter name="max">
<parameter_description> Maximum allowable value
</parameter_description>
</parameter>
<parameter name="step">
<parameter_description> Increment added or subtracted by spinning the widget
</parameter_description>
</parameter>
</parameters>
<return> The new `GtkSpinButton`
</return>
</function>

<function name="gtk_spin_button_set_adjustment">
<description>
Replaces the `GtkAdjustment` associated with @spin_button.

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
<parameter name="adjustment">
<parameter_description> a `GtkAdjustment` to replace the existing adjustment
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spin_button_set_climb_rate">
<description>
Sets the acceleration rate for repeated changes when you
hold down a button or key.

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
<parameter name="climb_rate">
<parameter_description> the rate of acceleration, must be &gt;= 0
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spin_button_set_digits">
<description>
Set the precision to be displayed by @spin_button.

Up to 20 digit precision is allowed.

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
<parameter name="digits">
<parameter_description> the number of digits after the decimal point to be
displayed for the spin button’s value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spin_button_set_increments">
<description>
Sets the step and page increments for spin_button.

This affects how quickly the value changes when
the spin button’s arrows are activated.

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
<parameter name="step">
<parameter_description> increment applied for a button 1 press.
</parameter_description>
</parameter>
<parameter name="page">
<parameter_description> increment applied for a button 2 press.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spin_button_set_numeric">
<description>
Sets the flag that determines if non-numeric text can be typed
into the spin button.

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
<parameter name="numeric">
<parameter_description> flag indicating if only numeric entry is allowed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spin_button_set_range">
<description>
Sets the minimum and maximum allowable values for @spin_button.

If the current value is outside this range, it will be adjusted
to fit within the range, otherwise it will remain unchanged.

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
<parameter name="min">
<parameter_description> minimum allowable value
</parameter_description>
</parameter>
<parameter name="max">
<parameter_description> maximum allowable value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spin_button_set_snap_to_ticks">
<description>
Sets the policy as to whether values are corrected to the
nearest step increment when a spin button is activated after
providing an invalid value.

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
<parameter name="snap_to_ticks">
<parameter_description> a flag indicating if invalid values should be corrected
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spin_button_set_update_policy">
<description>
Sets the update behavior of a spin button.

This determines whether the spin button is always
updated or only when a valid value is set.

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
<parameter name="policy">
<parameter_description> a `GtkSpinButtonUpdatePolicy` value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spin_button_set_value">
<description>
Sets the value of @spin_button.

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spin_button_set_wrap">
<description>
Sets the flag that determines if a spin button value wraps
around to the opposite limit when the upper or lower limit
of the range is exceeded.

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
<parameter name="wrap">
<parameter_description> a flag indicating if wrapping behavior is performed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spin_button_spin">
<description>
Increment or decrement a spin button’s value in a specified
direction by a specified amount.

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> a `GtkSpinType` indicating the direction to spin
</parameter_description>
</parameter>
<parameter name="increment">
<parameter_description> step increment to apply in the specified direction
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spin_button_update">
<description>
Manually force an update of the spin button.

</description>
<parameters>
<parameter name="spin_button">
<parameter_description> a `GtkSpinButton`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spinner_get_spinning">
<description>
Returns whether the spinner is spinning.


</description>
<parameters>
<parameter name="spinner">
<parameter_description> a `GtkSpinner`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the spinner is active
</return>
</function>

<function name="gtk_spinner_new">
<description>
Returns a new spinner widget. Not yet started.


</description>
<parameters>
</parameters>
<return> a new `GtkSpinner`
</return>
</function>

<function name="gtk_spinner_set_spinning">
<description>
Sets the activity of the spinner.

</description>
<parameters>
<parameter name="spinner">
<parameter_description> a `GtkSpinner`
</parameter_description>
</parameter>
<parameter name="spinning">
<parameter_description> whether the spinner should be spinning
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spinner_start">
<description>
Starts the animation of the spinner.

</description>
<parameters>
<parameter name="spinner">
<parameter_description> a `GtkSpinner`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_spinner_stop">
<description>
Stops the animation of the spinner.

</description>
<parameters>
<parameter name="spinner">
<parameter_description> a `GtkSpinner`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_add_child">
<description>
Adds a child to @stack.


</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the widget to add
</parameter_description>
</parameter>
</parameters>
<return> the `GtkStackPage` for @child
</return>
</function>

<function name="gtk_stack_add_named">
<description>
Adds a child to @stack.

The child is identified by the @name.


</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the widget to add
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name for @child
</parameter_description>
</parameter>
</parameters>
<return> the `GtkStackPage` for @child
</return>
</function>

<function name="gtk_stack_add_titled">
<description>
Adds a child to @stack.

The child is identified by the @name. The @title
will be used by `GtkStackSwitcher` to represent
@child in a tab bar, so it should be short.


</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the widget to add
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name for @child
</parameter_description>
</parameter>
<parameter name="title">
<parameter_description> a human-readable title for @child
</parameter_description>
</parameter>
</parameters>
<return> the `GtkStackPage` for @child
</return>
</function>

<function name="gtk_stack_get_child_by_name">
<description>
Finds the child with the name given as the argument.


</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the child to find
</parameter_description>
</parameter>
</parameters>
<return> the requested child
of the `GtkStack`
</return>
</function>

<function name="gtk_stack_get_hhomogeneous">
<description>
Gets whether @stack is horizontally homogeneous.


</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
</parameters>
<return> whether @stack is horizontally homogeneous.
</return>
</function>

<function name="gtk_stack_get_interpolate_size">
<description>
Returns whether the `GtkStack` is set up to interpolate between
the sizes of children on page switch.


</description>
<parameters>
<parameter name="stack">
<parameter_description> A `GtkStack`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if child sizes are interpolated
</return>
</function>

<function name="gtk_stack_get_page">
<description>
Returns the `GtkStackPage` object for @child.


</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child of @stack
</parameter_description>
</parameter>
</parameters>
<return> the `GtkStackPage` for @child
</return>
</function>

<function name="gtk_stack_get_pages">
<description>
Returns a `GListModel` that contains the pages of the stack.

This can be used to keep an up-to-date view. The model also
implements [iface@Gtk.SelectionModel] and can be used to track
and modify the visible page.


</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkSelectionModel` for the stack's children
</return>
</function>

<function name="gtk_stack_get_transition_duration">
<description>
Returns the amount of time (in milliseconds) that
transitions between pages in @stack will take.


</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
</parameters>
<return> the transition duration
</return>
</function>

<function name="gtk_stack_get_transition_running">
<description>
Returns whether the @stack is currently in a transition from one page to
another.


</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the transition is currently running, %FALSE otherwise.
</return>
</function>

<function name="gtk_stack_get_transition_type">
<description>
Gets the type of animation that will be used
for transitions between pages in @stack.


</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
</parameters>
<return> the current transition type of @stack
</return>
</function>

<function name="gtk_stack_get_vhomogeneous">
<description>
Gets whether @stack is vertically homogeneous.


</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
</parameters>
<return> whether @stack is vertically homogeneous.
</return>
</function>

<function name="gtk_stack_get_visible_child">
<description>
Gets the currently visible child of @stack.


</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
</parameters>
<return> the visible child of the `GtkStack`
</return>
</function>

<function name="gtk_stack_get_visible_child_name">
<description>
Returns the name of the currently visible child of @stack.


</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
</parameters>
<return> the name of the visible child
of the `GtkStack`
</return>
</function>

<function name="gtk_stack_new">
<description>
Creates a new `GtkStack`.


</description>
<parameters>
</parameters>
<return> a new `GtkStack`
</return>
</function>

<function name="gtk_stack_page_get_child">
<description>
Returns the stack child to which @self belongs.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStackPage`
</parameter_description>
</parameter>
</parameters>
<return> the child to which @self belongs
</return>
</function>

<function name="gtk_stack_page_get_icon_name">
<description>
Returns the icon name of the page.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStackPage`
</parameter_description>
</parameter>
</parameters>
<return> The value of the [property@Gtk.StackPage:icon-name] property
</return>
</function>

<function name="gtk_stack_page_get_name">
<description>
Returns the name of the page.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStackPage`
</parameter_description>
</parameter>
</parameters>
<return> The value of the [property@Gtk.StackPage:name] property
</return>
</function>

<function name="gtk_stack_page_get_needs_attention">
<description>
Returns whether the page is marked as “needs attention”.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStackPage`
</parameter_description>
</parameter>
</parameters>
<return> The value of the [property@Gtk.StackPage:needs-attention]
property.
</return>
</function>

<function name="gtk_stack_page_get_title">
<description>
Gets the page title.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStackPage`
</parameter_description>
</parameter>
</parameters>
<return> The value of the [property@Gtk.StackPage:title] property
</return>
</function>

<function name="gtk_stack_page_get_use_underline">
<description>
Gets whether underlines in the page title indicate mnemonics.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStackPage`
</parameter_description>
</parameter>
</parameters>
<return> The value of the [property@Gtk.StackPage:use-underline] property
</return>
</function>

<function name="gtk_stack_page_get_visible">
<description>
Returns whether @page is visible in its `GtkStack`.

This is independent from the [property@Gtk.Widget:visible]
property of its widget.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStackPage`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @page is visible
</return>
</function>

<function name="gtk_stack_page_set_icon_name">
<description>
Sets the icon name of the page.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStackPage`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the new value to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_page_set_name">
<description>
Sets the name of the page.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStackPage`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the new value to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_page_set_needs_attention">
<description>
Sets whether the page is marked as “needs attention”.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStackPage`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the new value to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_page_set_title">
<description>
Sets the page title.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStackPage`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the new value to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_page_set_use_underline">
<description>
Sets whether underlines in the page title indicate mnemonics.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStackPage`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the new value to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_page_set_visible">
<description>
Sets whether @page is visible in its `GtkStack`.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStackPage`
</parameter_description>
</parameter>
<parameter name="visible">
<parameter_description> The new property value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_remove">
<description>
Removes a child widget from @stack.

</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_set_hhomogeneous">
<description>
Sets the `GtkStack` to be horizontally homogeneous or not.

If it is homogeneous, the `GtkStack` will request the same
width for all its children. If it isn't, the stack
may change width when a different child becomes visible.

</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
<parameter name="hhomogeneous">
<parameter_description> %TRUE to make @stack horizontally homogeneous
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_set_interpolate_size">
<description>
Sets whether or not @stack will interpolate its size when
changing the visible child.

If the [property@Gtk.Stack:interpolate-size] property is set
to %TRUE, @stack will interpolate its size between the current
one and the one it'll take after changing the visible child,
according to the set transition duration.

</description>
<parameters>
<parameter name="stack">
<parameter_description> A `GtkStack`
</parameter_description>
</parameter>
<parameter name="interpolate_size">
<parameter_description> the new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_set_transition_duration">
<description>
Sets the duration that transitions between pages in @stack
will take.

</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
<parameter name="duration">
<parameter_description> the new duration, in milliseconds
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_set_transition_type">
<description>
Sets the type of animation that will be used for
transitions between pages in @stack.

Available types include various kinds of fades and slides.

The transition type can be changed without problems
at runtime, so it is possible to change the animation
based on the page that is about to become current.

</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
<parameter name="transition">
<parameter_description> the new transition type
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_set_vhomogeneous">
<description>
Sets the `GtkStack` to be vertically homogeneous or not.

If it is homogeneous, the `GtkStack` will request the same
height for all its children. If it isn't, the stack
may change height when a different child becomes visible.

</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
<parameter name="vhomogeneous">
<parameter_description> %TRUE to make @stack vertically homogeneous
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_set_visible_child">
<description>
Makes @child the visible child of @stack.

If @child is different from the currently visible child,
the transition between the two will be animated with the
current transition type of @stack.

Note that the @child widget has to be visible itself
(see [method@Gtk.Widget.show]) in order to become the visible
child of @stack.

</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child of @stack
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_set_visible_child_full">
<description>
Makes the child with the given name visible.

Note that the child widget has to be visible itself
(see [method@Gtk.Widget.show]) in order to become the visible
child of @stack.

</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the child to make visible
</parameter_description>
</parameter>
<parameter name="transition">
<parameter_description> the transition type to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_set_visible_child_name">
<description>
Makes the child with the given name visible.

If @child is different from the currently visible child,
the transition between the two will be animated with the
current transition type of @stack.

Note that the child widget has to be visible itself
(see [method@Gtk.Widget.show]) in order to become the visible
child of @stack.

</description>
<parameters>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the child to make visible
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_sidebar_get_stack">
<description>
Retrieves the stack.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStackSidebar`
</parameter_description>
</parameter>
</parameters>
<return> the associated `GtkStack` or
%NULL if none has been set explicitly
</return>
</function>

<function name="gtk_stack_sidebar_new">
<description>
Creates a new `GtkStackSidebar`.


</description>
<parameters>
</parameters>
<return> the new `GtkStackSidebar`
</return>
</function>

<function name="gtk_stack_sidebar_set_stack">
<description>
Set the `GtkStack` associated with this `GtkStackSidebar`.

The sidebar widget will automatically update according to
the order and items within the given `GtkStack`.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStackSidebar`
</parameter_description>
</parameter>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_stack_switcher_get_stack">
<description>
Retrieves the stack.


</description>
<parameters>
<parameter name="switcher">
<parameter_description> a `GtkStackSwitcher`
</parameter_description>
</parameter>
</parameters>
<return> the stack
</return>
</function>

<function name="gtk_stack_switcher_new">
<description>
Create a new `GtkStackSwitcher`.


</description>
<parameters>
</parameters>
<return> a new `GtkStackSwitcher`.
</return>
</function>

<function name="gtk_stack_switcher_set_stack">
<description>
Sets the stack to control.

</description>
<parameters>
<parameter name="switcher">
<parameter_description> a `GtkStackSwitcher`
</parameter_description>
</parameter>
<parameter name="stack">
<parameter_description> a `GtkStack`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_statusbar_get_context_id">
<description>
Returns a new context identifier, given a description
of the actual context.

Note that the description is not shown in the UI.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="statusbar">
<parameter_description> a `GtkStatusbar`
</parameter_description>
</parameter>
<parameter name="context_description">
<parameter_description> textual description of what context
the new message is being used in
</parameter_description>
</parameter>
</parameters>
<return> an integer id

</return>
</function>

<function name="gtk_statusbar_get_message">
<description>
Retrieves the contents of the label in `GtkStatusbar`.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="statusbar">
<parameter_description> a `GtkStatusbar`
</parameter_description>
</parameter>
</parameters>
<return> the contents of the statusbar

</return>
</function>

<function name="gtk_statusbar_new">
<description>
Creates a new `GtkStatusbar` ready for messages.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
</parameters>
<return> the new `GtkStatusbar`

</return>
</function>

<function name="gtk_statusbar_pop">
<description>
Removes the first message in the `GtkStatusbar`’s stack
with the given context id.

Note that this may not change the displayed message,
if the message at the top of the stack has a different
context id.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="statusbar">
<parameter_description> a `GtkStatusbar`
</parameter_description>
</parameter>
<parameter name="context_id">
<parameter_description> a context identifier
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_statusbar_push">
<description>
Pushes a new message onto a statusbar’s stack.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="statusbar">
<parameter_description> a `GtkStatusbar`
</parameter_description>
</parameter>
<parameter name="context_id">
<parameter_description> the message’s context id, as returned by
gtk_statusbar_get_context_id()
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> the message to add to the statusbar
</parameter_description>
</parameter>
</parameters>
<return> a message id that can be used with
[method@Gtk.Statusbar.remove].

</return>
</function>

<function name="gtk_statusbar_remove">
<description>
Forces the removal of a message from a statusbar’s stack.
The exact @context_id and @message_id must be specified.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="statusbar">
<parameter_description> a `GtkStatusbar`
</parameter_description>
</parameter>
<parameter name="context_id">
<parameter_description> a context identifier
</parameter_description>
</parameter>
<parameter name="message_id">
<parameter_description> a message identifier, as returned by [method@Gtk.Statusbar.push]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_statusbar_remove_all">
<description>
Forces the removal of all messages from a statusbar's
stack with the exact @context_id.

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
<parameter name="statusbar">
<parameter_description> a `GtkStatusbar`
</parameter_description>
</parameter>
<parameter name="context_id">
<parameter_description> a context identifier
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_string_filter_get_expression">
<description>
Gets the expression that the string filter uses to
obtain strings from items.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringFilter`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkExpression`
</return>
</function>

<function name="gtk_string_filter_get_ignore_case">
<description>
Returns whether the filter ignores case differences.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringFilter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the filter ignores case
</return>
</function>

<function name="gtk_string_filter_get_match_mode">
<description>
Returns the match mode that the filter is using.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringFilter`
</parameter_description>
</parameter>
</parameters>
<return> the match mode of the filter
</return>
</function>

<function name="gtk_string_filter_get_search">
<description>
Gets the search term.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringFilter`
</parameter_description>
</parameter>
</parameters>
<return> The search term
</return>
</function>

<function name="gtk_string_filter_new">
<description>
Creates a new string filter.

You will want to set up the filter by providing a string to search for
and by providing a property to look up on the item.


</description>
<parameters>
<parameter name="expression">
<parameter_description> The expression to evaluate
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkStringFilter`
</return>
</function>

<function name="gtk_string_filter_set_expression">
<description>
Sets the expression that the string filter uses to
obtain strings from items.

The expression must have a value type of %G_TYPE_STRING.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringFilter`
</parameter_description>
</parameter>
<parameter name="expression">
<parameter_description> a `GtkExpression`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_string_filter_set_ignore_case">
<description>
Sets whether the filter ignores case differences.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringFilter`
</parameter_description>
</parameter>
<parameter name="ignore_case">
<parameter_description> %TRUE to ignore case
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_string_filter_set_match_mode">
<description>
Sets the match mode for the filter.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringFilter`
</parameter_description>
</parameter>
<parameter name="mode">
<parameter_description> the new match mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_string_filter_set_search">
<description>
Sets the string to search for.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringFilter`
</parameter_description>
</parameter>
<parameter name="search">
<parameter_description> The string to search for
or %NULL to clear the search
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_string_list_append">
<description>
Appends @string to @self.

The @string will be copied. See
[method@Gtk.StringList.take] for a way to avoid that.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringList`
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> the string to insert
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_string_list_get_string">
<description>
Gets the string that is at @position in @self.

If @self does not contain @position items, %NULL is returned.

This function returns the const char *. To get the
object wrapping it, use g_list_model_get_item().


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringList`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position to get the string for
</parameter_description>
</parameter>
</parameters>
<return> the string at the given position
</return>
</function>

<function name="gtk_string_list_new">
<description>
Creates a new `GtkStringList` with the given @strings.


</description>
<parameters>
<parameter name="strings">
<parameter_description> The strings to put in the model
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkStringList`
</return>
</function>

<function name="gtk_string_list_remove">
<description>
Removes the string at @position from @self.

@position must be smaller than the current
length of the list.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringList`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position of the string that is to be removed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_string_list_splice">
<description>
Changes @self by removing @n_removals strings and adding @additions
to it.

This function is more efficient than [method@Gtk.StringList.append]
and [method@Gtk.StringList.remove], because it only emits the
::items-changed signal once for the change.

This function copies the strings in @additions.

The parameters @position and @n_removals must be correct (ie:
@position + @n_removals must be less than or equal to the length
of the list at the time this function is called).

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringList`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position at which to make the change
</parameter_description>
</parameter>
<parameter name="n_removals">
<parameter_description> the number of strings to remove
</parameter_description>
</parameter>
<parameter name="additions">
<parameter_description> The strings to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_string_list_take">
<description>
Adds @string to self at the end, and takes
ownership of it.

This variant of [method@Gtk.StringList.append]
is convenient for formatting strings:

```c
gtk_string_list_take (self, g_strdup_print (&quot;%d dollars&quot;, lots));
```

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringList`
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> the string to insert
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_string_object_get_string">
<description>
Returns the string contained in a `GtkStringObject`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringObject`
</parameter_description>
</parameter>
</parameters>
<return> the string of @self
</return>
</function>

<function name="gtk_string_object_new">
<description>
Wraps a string in an object for use with `GListModel`.


</description>
<parameters>
<parameter name="string">
<parameter_description> The string to wrap
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkStringObject`
</return>
</function>

<function name="gtk_string_sorter_get_collation">
<description>
Gets which collation method the sorter uses.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringSorter`
</parameter_description>
</parameter>
</parameters>
<return> The collation method

</return>
</function>

<function name="gtk_string_sorter_get_expression">
<description>
Gets the expression that is evaluated to obtain strings from items.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringSorter`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkExpression`
</return>
</function>

<function name="gtk_string_sorter_get_ignore_case">
<description>
Gets whether the sorter ignores case differences.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringSorter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @self is ignoring case differences
</return>
</function>

<function name="gtk_string_sorter_new">
<description>
Creates a new string sorter that compares items using the given
@expression.

Unless an expression is set on it, this sorter will always
compare items as invalid.


</description>
<parameters>
<parameter name="expression">
<parameter_description> The expression to evaluate
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkStringSorter`
</return>
</function>

<function name="gtk_string_sorter_set_collation">
<description>
Sets the collation method to use for sorting.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringSorter`
</parameter_description>
</parameter>
<parameter name="collation">
<parameter_description> the collation method
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_string_sorter_set_expression">
<description>
Sets the expression that is evaluated to obtain strings from items.

The expression must have the type %G_TYPE_STRING.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringSorter`
</parameter_description>
</parameter>
<parameter name="expression">
<parameter_description> a `GtkExpression`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_string_sorter_set_ignore_case">
<description>
Sets whether the sorter will ignore case differences.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkStringSorter`
</parameter_description>
</parameter>
<parameter name="ignore_case">
<parameter_description> %TRUE to ignore case differences
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_style_context_add_class">
<description>
Adds a style class to @context, so later uses of the
style context will make use of this new class for styling.

In the CSS file format, a `GtkEntry` defining a “search”
class, would be matched by:

```css
entry.search { ... }
```

While any widget defining a “search” class would be
matched by:
```css
.search { ... }
```
Deprecated: 4.10: Use [method@Gtk.Widget.add_css_class] instead

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="class_name">
<parameter_description> class name to use in styling
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_style_context_add_provider">
<description>
Adds a style provider to @context, to be used in style construction.

Note that a style provider added by this function only affects
the style of the widget to which @context belongs. If you want
to affect the style of all widgets, use
[func@Gtk.StyleContext.add_provider_for_display].

Note: If both priorities are the same, a `GtkStyleProvider`
added through this function takes precedence over another added
through [func@Gtk.StyleContext.add_provider_for_display].

Deprecated: 4.10: Use style classes instead

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="provider">
<parameter_description> a `GtkStyleProvider`
</parameter_description>
</parameter>
<parameter name="priority">
<parameter_description> the priority of the style provider. The lower
it is, the earlier it will be used in the style construction.
Typically this will be in the range between
%GTK_STYLE_PROVIDER_PRIORITY_FALLBACK and
%GTK_STYLE_PROVIDER_PRIORITY_USER
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_style_context_add_provider_for_display">
<description>
Adds a global style provider to @display, which will be used
in style construction for all `GtkStyleContexts` under @display.

GTK uses this to make styling information from `GtkSettings`
available.

Note: If both priorities are the same, A `GtkStyleProvider`
added through [method@Gtk.StyleContext.add_provider] takes
precedence over another added through this function.

</description>
<parameters>
<parameter name="display">
<parameter_description> a `GdkDisplay`
</parameter_description>
</parameter>
<parameter name="provider">
<parameter_description> a `GtkStyleProvider`
</parameter_description>
</parameter>
<parameter name="priority">
<parameter_description> the priority of the style provider. The lower
it is, the earlier it will be used in the style construction.
Typically this will be in the range between
%GTK_STYLE_PROVIDER_PRIORITY_FALLBACK and
%GTK_STYLE_PROVIDER_PRIORITY_USER
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_style_context_get_border">
<description>
Gets the border for a given state as a `GtkBorder`.

Deprecated: 4.10: This api will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="border">
<parameter_description> return value for the border settings
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_style_context_get_color">
<description>
Gets the foreground color for a given state.

Deprecated: 4.10: Use [method@Gtk.Widget.get_color] instead

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="color">
<parameter_description> return value for the foreground color
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_style_context_get_display">
<description>
Returns the `GdkDisplay` to which @context is attached.

Deprecated: 4.10: Use [method@Gtk.Widget.get_display] instead

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
</parameters>
<return> a `GdkDisplay`.

</return>
</function>

<function name="gtk_style_context_get_margin">
<description>
Gets the margin for a given state as a `GtkBorder`.

Deprecated: 4.10: This api will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="margin">
<parameter_description> return value for the margin settings
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_style_context_get_padding">
<description>
Gets the padding for a given state as a `GtkBorder`.

Deprecated: 4.10: This api will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="padding">
<parameter_description> return value for the padding settings
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_style_context_get_scale">
<description>
Returns the scale used for assets.


</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
</parameters>
<return> the scale

Deprecated 4.10: Use [method@Gtk.Widget.get_scale_factor] instead
</return>
</function>

<function name="gtk_style_context_get_state">
<description>
Returns the state used for style matching.

This method should only be used to retrieve the `GtkStateFlags`
to pass to `GtkStyleContext` methods, like
[method@Gtk.StyleContext.get_padding].
If you need to retrieve the current state of a `GtkWidget`, use
[method@Gtk.Widget.get_state_flags].

Deprecated: 4.10: Use [method@Gtk.Widget.get_state_flags] instead

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
</parameters>
<return> the state flags

</return>
</function>

<function name="gtk_style_context_has_class">
<description>
Returns %TRUE if @context currently has defined the
given class name.

Deprecated: 4.10: Use [method@Gtk.Widget.has_css_class] instead

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="class_name">
<parameter_description> a class name
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @context has @class_name defined

</return>
</function>

<function name="gtk_style_context_lookup_color">
<description>
Looks up and resolves a color name in the @context color map.

Deprecated: 4.10: This api will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="color_name">
<parameter_description> color name to lookup
</parameter_description>
</parameter>
<parameter name="color">
<parameter_description> Return location for the looked up color
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @color_name was found and resolved, %FALSE otherwise

</return>
</function>

<function name="gtk_style_context_remove_class">
<description>
Removes @class_name from @context.

Deprecated: 4.10: Use [method@Gtk.Widget.remove_css_class] instead

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="class_name">
<parameter_description> class name to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_style_context_remove_provider">
<description>
Removes @provider from the style providers list in @context.

Deprecated: 4.10

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="provider">
<parameter_description> a `GtkStyleProvider`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_style_context_remove_provider_for_display">
<description>
Removes @provider from the global style providers list in @display.

</description>
<parameters>
<parameter name="display">
<parameter_description> a `GdkDisplay`
</parameter_description>
</parameter>
<parameter name="provider">
<parameter_description> a `GtkStyleProvider`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_style_context_restore">
<description>
Restores @context state to a previous stage.

See [method@Gtk.StyleContext.save].

Deprecated: 4.10: This API will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_style_context_save">
<description>
Saves the @context state.

This allows temporary modifications done through
[method@Gtk.StyleContext.add_class],
[method@Gtk.StyleContext.remove_class],
[method@Gtk.StyleContext.set_state] to be quickly
reverted in one go through [method@Gtk.StyleContext.restore].

The matching call to [method@Gtk.StyleContext.restore]
must be done before GTK returns to the main loop.

Deprecated: 4.10: This API will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_style_context_set_display">
<description>
Attaches @context to the given display.

The display is used to add style information from “global”
style providers, such as the display's `GtkSettings` instance.

If you are using a `GtkStyleContext` returned from
[method@Gtk.Widget.get_style_context], you do not need to
call this yourself.

Deprecated: 4.10: You should not use this api

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="display">
<parameter_description> a `GdkDisplay`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_style_context_set_scale">
<description>
Sets the scale to use when getting image assets for the style.

Deprecated: 4.10: You should not use this api

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="scale">
<parameter_description> scale
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_style_context_set_state">
<description>
Sets the state to be used for style matching.

Deprecated: 4.10: You should not use this api

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> state to represent
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_style_context_to_string">
<description>
Converts the style context into a string representation.

The string representation always includes information about
the name, state, id, visibility and style classes of the CSS
node that is backing @context. Depending on the flags, more
information may be included.

This function is intended for testing and debugging of the
CSS implementation in GTK. There are no guarantees about
the format of the returned string, it may change.

Deprecated: 4.10: This api will be removed in GTK 5

</description>
<parameters>
<parameter name="context">
<parameter_description> a `GtkStyleContext`
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> Flags that determine what to print
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated string representing @context

</return>
</function>

<function name="gtk_switch_get_active">
<description>
Gets whether the `GtkSwitch` is in its “on” or “off” state.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSwitch`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the `GtkSwitch` is active, and %FALSE otherwise
</return>
</function>

<function name="gtk_switch_get_state">
<description>
Gets the underlying state of the `GtkSwitch`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSwitch`
</parameter_description>
</parameter>
</parameters>
<return> the underlying state
</return>
</function>

<function name="gtk_switch_new">
<description>
Creates a new `GtkSwitch` widget.


</description>
<parameters>
</parameters>
<return> the newly created `GtkSwitch` instance
</return>
</function>

<function name="gtk_switch_set_active">
<description>
Changes the state of @self to the desired one.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSwitch`
</parameter_description>
</parameter>
<parameter name="is_active">
<parameter_description> %TRUE if @self should be active, and %FALSE otherwise
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_switch_set_state">
<description>
Sets the underlying state of the `GtkSwitch`.

This function is typically called from a [signal@Gtk.Switch::state-set]
signal handler in order to set up delayed state changes.

See [signal@Gtk.Switch::state-set] for details.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkSwitch`
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> the new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_symbolic_paintable_snapshot_symbolic">
<description>
Snapshots the paintable with the given colors.

If less than 4 colors are provided, GTK will pad the array with default
colors.

Since: 4.6

</description>
<parameters>
<parameter name="paintable">
<parameter_description> a `GtkSymbolicPaintable`
</parameter_description>
</parameter>
<parameter name="snapshot">
<parameter_description> a `GdkSnapshot` to snapshot to
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> width to snapshot in
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> height to snapshot in
</parameter_description>
</parameter>
<parameter name="colors">
<parameter_description> a pointer to an array of colors
</parameter_description>
</parameter>
<parameter name="n_colors">
<parameter_description> The number of colors
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_test_accessible_assert_property">
<description>
Checks whether a `GtkAccessible` implementation has its accessible
property set to the expected value, and raises an assertion if the
condition is not satisfied.

</description>
<parameters>
<parameter name="accessible">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="property">
<parameter_description> a `GtkAccessibleProperty`
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> the value of @property
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_test_accessible_assert_relation">
<description>
Checks whether a `GtkAccessible` implementation has its accessible
relation set to the expected value, and raises an assertion if the
condition is not satisfied.

</description>
<parameters>
<parameter name="accessible">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="relation">
<parameter_description> a `GtkAccessibleRelation`
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> the expected value of @relation
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_test_accessible_assert_role">
<description>
Checks whether a `GtkAccessible` implementation has the given @role,
and raises an assertion if the condition is failed.

</description>
<parameters>
<parameter name="accessible">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="role">
<parameter_description> a `GtkAccessibleRole`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_test_accessible_assert_state">
<description>
Checks whether a `GtkAccessible` implementation has its accessible
state set to the expected value, and raises an assertion if the
condition is not satisfied.

</description>
<parameters>
<parameter name="accessible">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> a `GtkAccessibleRelation`
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> the expected value of @state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_test_accessible_check_property">
<description>
Checks whether the accessible @property of @accessible is set to
a specific value.


</description>
<parameters>
<parameter name="accessible">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="property">
<parameter_description> a `GtkAccessibleProperty`
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> the expected value of @property
</parameter_description>
</parameter>
</parameters>
<return> the value of the accessible property
</return>
</function>

<function name="gtk_test_accessible_check_relation">
<description>
Checks whether the accessible @relation of @accessible is set to
a specific value.


</description>
<parameters>
<parameter name="accessible">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="relation">
<parameter_description> a `GtkAccessibleRelation`
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> the expected value of @relation
</parameter_description>
</parameter>
</parameters>
<return> the value of the accessible relation
</return>
</function>

<function name="gtk_test_accessible_check_state">
<description>
Checks whether the accessible @state of @accessible is set to
a specific value.


</description>
<parameters>
<parameter name="accessible">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> a `GtkAccessibleState`
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> the expected value of @state
</parameter_description>
</parameter>
</parameters>
<return> the value of the accessible state
</return>
</function>

<function name="gtk_test_accessible_has_property">
<description>
Checks whether the `GtkAccessible` has @property set.


</description>
<parameters>
<parameter name="accessible">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="property">
<parameter_description> a `GtkAccessibleProperty`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the @property is set in the @accessible
</return>
</function>

<function name="gtk_test_accessible_has_relation">
<description>
Checks whether the `GtkAccessible` has @relation set.


</description>
<parameters>
<parameter name="accessible">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="relation">
<parameter_description> a `GtkAccessibleRelation`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the @relation is set in the @accessible
</return>
</function>

<function name="gtk_test_accessible_has_role">
<description>
Checks whether the `GtkAccessible:accessible-role` of the accessible
is @role.


</description>
<parameters>
<parameter name="accessible">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="role">
<parameter_description> a `GtkAccessibleRole`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the role matches
</return>
</function>

<function name="gtk_test_accessible_has_state">
<description>
Checks whether the `GtkAccessible` has @state set.


</description>
<parameters>
<parameter name="accessible">
<parameter_description> a `GtkAccessible`
</parameter_description>
</parameter>
<parameter name="state">
<parameter_description> a `GtkAccessibleState`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the @state is set in the @accessible
</return>
</function>

<function name="gtk_test_init">
<description>
This function is used to initialize a GTK test program.

It will in turn call g_test_init() and gtk_init() to properly
initialize the testing framework and graphical toolkit. It’ll
also set the program’s locale to “C”. This is done to make test
program environments as deterministic as possible.

Like gtk_init() and g_test_init(), any known arguments will be
processed and stripped from @argc and @argv.

</description>
<parameters>
<parameter name="argcp">
<parameter_description> Address of the `argc` parameter of the
main() function. Changed if any arguments were handled.
</parameter_description>
</parameter>
<parameter name="argvp">
<parameter_description> Address of the `argv`
parameter of main(). Any parameters understood by g_test_init()
or gtk_init() are stripped before return.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> currently unused
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_test_list_all_types">
<description>
Return the type ids that have been registered after
calling gtk_test_register_all_types().


</description>
<parameters>
<parameter name="n_types">
<parameter_description> location to store number of types
</parameter_description>
</parameter>
</parameters>
<return>
0-terminated array of type ids
</return>
</function>

<function name="gtk_test_register_all_types">
<description>
Force registration of all core GTK object types.

This allows to refer to any of those object types via
g_type_from_name() after calling this function.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gtk_test_widget_wait_for_draw">
<description>
Enters the main loop and waits for @widget to be “drawn”.

In this context that means it waits for the frame clock of
@widget to have run a full styling, layout and drawing cycle.

This function is intended to be used for syncing with actions that
depend on @widget relayouting or on interaction with the display
server.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget to wait for
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_attributes_copy">
<description>
Copies @src and returns a new `GtkTextAttributes`.


</description>
<parameters>
<parameter name="src">
<parameter_description> a `GtkTextAttributes` to be copied
</parameter_description>
</parameter>
</parameters>
<return> a copy of @src,
free with gtk_text_attributes_unref()
</return>
</function>

<function name="gtk_text_attributes_copy_values">
<description>
Copies the values from @src to @dest so that @dest has
the same values as @src. Frees existing values in @dest.

</description>
<parameters>
<parameter name="src">
<parameter_description> a `GtkTextAttributes`
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description> another `GtkTextAttributes`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_attributes_new">
<description>
Creates a `GtkTextAttributes`, which describes
a set of properties on some text.


</description>
<parameters>
</parameters>
<return> a new `GtkTextAttributes`,
free with gtk_text_attributes_unref().
</return>
</function>

<function name="gtk_text_attributes_ref">
<description>
Increments the reference count on @values.


</description>
<parameters>
<parameter name="values">
<parameter_description> a `GtkTextAttributes`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkTextAttributes` that were passed in
</return>
</function>

<function name="gtk_text_attributes_unref">
<description>
Decrements the reference count on @values, freeing the structure
if the reference count reaches 0.

</description>
<parameters>
<parameter name="values">
<parameter_description> a `GtkTextAttributes`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_add_mark">
<description>
Adds the mark at position @where.

The mark must not be added to another buffer, and if its name
is not %NULL then there must not be another mark in the buffer
with the same name.

Emits the [signal@Gtk.TextBuffer::mark-set] signal as notification
of the mark's initial placement.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="mark">
<parameter_description> the mark to add
</parameter_description>
</parameter>
<parameter name="where">
<parameter_description> location to place mark
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_add_selection_clipboard">
<description>
Adds @clipboard to the list of clipboards in which the selection
contents of @buffer are available.

In most cases, @clipboard will be the `GdkClipboard` returned by
[method@Gtk.Widget.get_primary_clipboard] for a view of @buffer.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="clipboard">
<parameter_description> a `GdkClipboard`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_apply_tag">
<description>
Emits the “apply-tag” signal on @buffer.

The default handler for the signal applies
@tag to the given range. @start and @end do
not have to be in order.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> a `GtkTextTag`
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> one bound of range to be tagged
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> other bound of range to be tagged
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_apply_tag_by_name">
<description>
Emits the “apply-tag” signal on @buffer.

Calls [method@Gtk.TextTagTable.lookup] on the buffer’s
tag table to get a `GtkTextTag`, then calls
[method@Gtk.TextBuffer.apply_tag].

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name of a named `GtkTextTag`
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> one bound of range to be tagged
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> other bound of range to be tagged
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_backspace">
<description>
Performs the appropriate action as if the user hit the delete
key with the cursor at the position specified by @iter.

In the normal case a single character will be deleted, but when
combining accents are involved, more than one character can
be deleted, and when precomposed character and accent combinations
are involved, less than one character will be deleted.

Because the buffer is modified, all outstanding iterators become
invalid after calling this function; however, the @iter will be
re-initialized to point to the location where text was deleted.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a position in @buffer
</parameter_description>
</parameter>
<parameter name="interactive">
<parameter_description> whether the deletion is caused by user interaction
</parameter_description>
</parameter>
<parameter name="default_editable">
<parameter_description> whether the buffer is editable by default
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the buffer was modified
</return>
</function>

<function name="gtk_text_buffer_begin_irreversible_action">
<description>
Denotes the beginning of an action that may not be undone.

This will cause any previous operations in the undo/redo queue
to be cleared.

This should be paired with a call to
[method@Gtk.TextBuffer.end_irreversible_action] after the irreversible
action has completed.

You may nest calls to gtk_text_buffer_begin_irreversible_action()
and gtk_text_buffer_end_irreversible_action() pairs.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_begin_user_action">
<description>
Called to indicate that the buffer operations between here and a
call to gtk_text_buffer_end_user_action() are part of a single
user-visible operation.

The operations between gtk_text_buffer_begin_user_action() and
gtk_text_buffer_end_user_action() can then be grouped when creating
an undo stack. `GtkTextBuffer` maintains a count of calls to
gtk_text_buffer_begin_user_action() that have not been closed with
a call to gtk_text_buffer_end_user_action(), and emits the
“begin-user-action” and “end-user-action” signals only for the
outermost pair of calls. This allows you to build user actions
from other user actions.

The “interactive” buffer mutation functions, such as
[method@Gtk.TextBuffer.insert_interactive], automatically call
begin/end user action around the buffer operations they perform,
so there's no need to add extra calls if you user action consists
solely of a single call to one of those functions.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_copy_clipboard">
<description>
Copies the currently-selected text to a clipboard.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="clipboard">
<parameter_description> the `GdkClipboard` object to copy to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_create_child_anchor">
<description>
Creates and inserts a child anchor.

This is a convenience function which simply creates a child anchor
with [ctor@Gtk.TextChildAnchor.new] and inserts it into the buffer
with [method@Gtk.TextBuffer.insert_child_anchor].

The new anchor is owned by the buffer; no reference count is
returned to the caller of this function.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> location in the buffer
</parameter_description>
</parameter>
</parameters>
<return> the created child anchor
</return>
</function>

<function name="gtk_text_buffer_create_mark">
<description>
Creates a mark at position @where.

If @mark_name is %NULL, the mark is anonymous; otherwise, the mark
can be retrieved by name using [method@Gtk.TextBuffer.get_mark].
If a mark has left gravity, and text is inserted at the mark’s
current location, the mark will be moved to the left of the
newly-inserted text. If the mark has right gravity
(@left_gravity = %FALSE), the mark will end up on the right of
newly-inserted text. The standard left-to-right cursor is a mark
with right gravity (when you type, the cursor stays on the right
side of the text you’re typing).

The caller of this function does not own a
reference to the returned `GtkTextMark`, so you can ignore the
return value if you like. Marks are owned by the buffer and go
away when the buffer does.

Emits the [signal@Gtk.TextBuffer::mark-set] signal as notification
of the mark's initial placement.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="mark_name">
<parameter_description> name for mark
</parameter_description>
</parameter>
<parameter name="where">
<parameter_description> location to place mark
</parameter_description>
</parameter>
<parameter name="left_gravity">
<parameter_description> whether the mark has left gravity
</parameter_description>
</parameter>
</parameters>
<return> the new `GtkTextMark` object
</return>
</function>

<function name="gtk_text_buffer_create_tag">
<description>
Creates a tag and adds it to the tag table for @buffer.

Equivalent to calling [ctor@Gtk.TextTag.new] and then adding the
tag to the buffer’s tag table. The returned tag is owned by
the buffer’s tag table, so the ref count will be equal to one.

If @tag_name is %NULL, the tag is anonymous.

If @tag_name is non-%NULL, a tag called @tag_name must not already
exist in the tag table for this buffer.

The @first_property_name argument and subsequent arguments are a list
of properties to set on the tag, as with g_object_set().


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="tag_name">
<parameter_description> name of the new tag
</parameter_description>
</parameter>
<parameter name="first_property_name">
<parameter_description> name of first property to set
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> %NULL-terminated list of property names and values
</parameter_description>
</parameter>
</parameters>
<return> a new tag
</return>
</function>

<function name="gtk_text_buffer_cut_clipboard">
<description>
Copies the currently-selected text to a clipboard,
then deletes said text if it’s editable.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="clipboard">
<parameter_description> the `GdkClipboard` object to cut to
</parameter_description>
</parameter>
<parameter name="default_editable">
<parameter_description> default editability of the buffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_delete">
<description>
Deletes text between @start and @end.

The order of @start and @end is not actually relevant;
gtk_text_buffer_delete() will reorder them.

This function actually emits the “delete-range” signal, and
the default handler of that signal deletes the text. Because the
buffer is modified, all outstanding iterators become invalid after
calling this function; however, the @start and @end will be
re-initialized to point to the location where text was deleted.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> a position in @buffer
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> another position in @buffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_delete_interactive">
<description>
Deletes all editable text in the given range.

Calls [method@Gtk.TextBuffer.delete] for each editable
sub-range of [@start,@end). @start and @end are revalidated
to point to the location of the last deleted range, or left
untouched if no text was deleted.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="start_iter">
<parameter_description> start of range to delete
</parameter_description>
</parameter>
<parameter name="end_iter">
<parameter_description> end of range
</parameter_description>
</parameter>
<parameter name="default_editable">
<parameter_description> whether the buffer is editable by default
</parameter_description>
</parameter>
</parameters>
<return> whether some text was actually deleted
</return>
</function>

<function name="gtk_text_buffer_delete_mark">
<description>
Deletes @mark, so that it’s no longer located anywhere in the
buffer.

Removes the reference the buffer holds to the mark, so if
you haven’t called g_object_ref() on the mark, it will be freed.
Even if the mark isn’t freed, most operations on @mark become
invalid, until it gets added to a buffer again with
[method@Gtk.TextBuffer.add_mark]. Use [method@Gtk.TextMark.get_deleted]
to find out if a mark has been removed from its buffer.

The [signal@Gtk.TextBuffer::mark-deleted] signal will be emitted as
notification after the mark is deleted.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="mark">
<parameter_description> a `GtkTextMark` in @buffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_delete_mark_by_name">
<description>
Deletes the mark named @name; the mark must exist.

See [method@Gtk.TextBuffer.delete_mark] for details.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name of a mark in @buffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_delete_selection">
<description>
Deletes the range between the “insert” and “selection_bound” marks,
that is, the currently-selected text.

If @interactive is %TRUE, the editability of the selection will be
considered (users can’t delete uneditable text).


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="interactive">
<parameter_description> whether the deletion is caused by user interaction
</parameter_description>
</parameter>
<parameter name="default_editable">
<parameter_description> whether the buffer is editable by default
</parameter_description>
</parameter>
</parameters>
<return> whether there was a non-empty selection to delete
</return>
</function>

<function name="gtk_text_buffer_end_irreversible_action">
<description>
Denotes the end of an action that may not be undone.

This will cause any previous operations in the undo/redo
queue to be cleared.

This should be called after completing modifications to the
text buffer after [method@Gtk.TextBuffer.begin_irreversible_action]
was called.

You may nest calls to gtk_text_buffer_begin_irreversible_action()
and gtk_text_buffer_end_irreversible_action() pairs.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_end_user_action">
<description>
Ends a user-visible operation.

Should be paired with a call to
[method@Gtk.TextBuffer.begin_user_action].
See that function for a full explanation.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_get_bounds">
<description>
Retrieves the first and last iterators in the buffer, i.e. the
entire buffer lies within the range [@start,@end).

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> iterator to initialize with first position in the buffer
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> iterator to initialize with the end iterator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_get_can_redo">
<description>
Gets whether there is a redoable action in the history.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if there is a redoable action
</return>
</function>

<function name="gtk_text_buffer_get_can_undo">
<description>
Gets whether there is an undoable action in the history.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if there is an undoable action
</return>
</function>

<function name="gtk_text_buffer_get_char_count">
<description>
Gets the number of characters in the buffer.

Note that characters and bytes are not the same, you can’t e.g.
expect the contents of the buffer in string form to be this
many bytes long.

The character count is cached, so this function is very fast.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return> number of characters in the buffer
</return>
</function>

<function name="gtk_text_buffer_get_enable_undo">
<description>
Gets whether the buffer is saving modifications to the buffer
to allow for undo and redo actions.

See [method@Gtk.TextBuffer.begin_irreversible_action] and
[method@Gtk.TextBuffer.end_irreversible_action] to create
changes to the buffer that cannot be undone.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if undoing and redoing changes to the buffer is allowed.
</return>
</function>

<function name="gtk_text_buffer_get_end_iter">
<description>
Initializes @iter with the “end iterator,” one past the last valid
character in the text buffer.

If dereferenced with [method@Gtk.TextIter.get_char], the end
iterator has a character value of 0.
The entire buffer lies in the range from the first position in
the buffer (call [method@Gtk.TextBuffer.get_start_iter] to get
character position 0) to the end iterator.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> iterator to initialize
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_get_has_selection">
<description>
Indicates whether the buffer has some text currently selected.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the there is text selected
</return>
</function>

<function name="gtk_text_buffer_get_insert">
<description>
Returns the mark that represents the cursor (insertion point).

Equivalent to calling [method@Gtk.TextBuffer.get_mark]
to get the mark named “insert”, but very slightly more
efficient, and involves less typing.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return> insertion point mark
</return>
</function>

<function name="gtk_text_buffer_get_iter_at_child_anchor">
<description>
Obtains the location of @anchor within @buffer.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> an iterator to be initialized
</parameter_description>
</parameter>
<parameter name="anchor">
<parameter_description> a child anchor that appears in @buffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_get_iter_at_line">
<description>
Initializes @iter to the start of the given line.

If @line_number is greater than or equal to the number of lines
in the @buffer, the end iterator is returned.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> iterator to initialize
</parameter_description>
</parameter>
<parameter name="line_number">
<parameter_description> line number counting from 0
</parameter_description>
</parameter>
</parameters>
<return> whether the exact position has been found
</return>
</function>

<function name="gtk_text_buffer_get_iter_at_line_index">
<description>
Obtains an iterator pointing to @byte_index within the given line.

@byte_index must be the start of a UTF-8 character. Note bytes, not
characters; UTF-8 may encode one character as multiple bytes.

If @line_number is greater than or equal to the number of lines in the @buffer,
the end iterator is returned. And if @byte_index is off the
end of the line, the iterator at the end of the line is returned.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> iterator to initialize
</parameter_description>
</parameter>
<parameter name="line_number">
<parameter_description> line number counting from 0
</parameter_description>
</parameter>
<parameter name="byte_index">
<parameter_description> byte index from start of line
</parameter_description>
</parameter>
</parameters>
<return> whether the exact position has been found
</return>
</function>

<function name="gtk_text_buffer_get_iter_at_line_offset">
<description>
Obtains an iterator pointing to @char_offset within the given line.

Note characters, not bytes; UTF-8 may encode one character as multiple
bytes.

If @line_number is greater than or equal to the number of lines in the @buffer,
the end iterator is returned. And if @char_offset is off the
end of the line, the iterator at the end of the line is returned.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> iterator to initialize
</parameter_description>
</parameter>
<parameter name="line_number">
<parameter_description> line number counting from 0
</parameter_description>
</parameter>
<parameter name="char_offset">
<parameter_description> char offset from start of line
</parameter_description>
</parameter>
</parameters>
<return> whether the exact position has been found
</return>
</function>

<function name="gtk_text_buffer_get_iter_at_mark">
<description>
Initializes @iter with the current position of @mark.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> iterator to initialize
</parameter_description>
</parameter>
<parameter name="mark">
<parameter_description> a `GtkTextMark` in @buffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_get_iter_at_offset">
<description>
Initializes @iter to a position @char_offset chars from the start
of the entire buffer.

If @char_offset is -1 or greater than the number
of characters in the buffer, @iter is initialized to the end iterator,
the iterator one past the last valid character in the buffer.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> iterator to initialize
</parameter_description>
</parameter>
<parameter name="char_offset">
<parameter_description> char offset from start of buffer, counting from 0, or -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_get_line_count">
<description>
Obtains the number of lines in the buffer.

This value is cached, so the function is very fast.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return> number of lines in the buffer
</return>
</function>

<function name="gtk_text_buffer_get_mark">
<description>
Returns the mark named @name in buffer @buffer, or %NULL if no such
mark exists in the buffer.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> a mark name
</parameter_description>
</parameter>
</parameters>
<return> a `GtkTextMark`
</return>
</function>

<function name="gtk_text_buffer_get_max_undo_levels">
<description>
Gets the maximum number of undo levels to perform.

If 0, unlimited undo actions may be performed. Note that this may
have a memory usage impact as it requires storing an additional
copy of the inserted or removed text within the text buffer.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return> The max number of undo levels allowed (0 indicates unlimited).
</return>
</function>

<function name="gtk_text_buffer_get_modified">
<description>
Indicates whether the buffer has been modified since the last call
to [method@Gtk.TextBuffer.set_modified] set the modification flag to
%FALSE.

Used for example to enable a “save” function in a text editor.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the buffer has been modified
</return>
</function>

<function name="gtk_text_buffer_get_selection_bound">
<description>
Returns the mark that represents the selection bound.

Equivalent to calling [method@Gtk.TextBuffer.get_mark]
to get the mark named “selection_bound”, but very slightly
more efficient, and involves less typing.

The currently-selected text in @buffer is the region between the
“selection_bound” and “insert” marks. If “selection_bound” and
“insert” are in the same place, then there is no current selection.
[method@Gtk.TextBuffer.get_selection_bounds] is another convenient
function for handling the selection, if you just want to know whether
there’s a selection and what its bounds are.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return> selection bound mark
</return>
</function>

<function name="gtk_text_buffer_get_selection_bounds">
<description>
Returns %TRUE if some text is selected; places the bounds
of the selection in @start and @end.

If the selection has length 0, then @start and @end are filled
in with the same value. @start and @end will be in ascending order.
If @start and @end are %NULL, then they are not filled in, but the
return value still indicates whether text is selected.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer` a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> iterator to initialize with selection start
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> iterator to initialize with selection end
</parameter_description>
</parameter>
</parameters>
<return> whether the selection has nonzero length
</return>
</function>

<function name="gtk_text_buffer_get_selection_content">
<description>
Get a content provider for this buffer.

It can be used to make the content of @buffer available
in a `GdkClipboard`, see [method@Gdk.Clipboard.set_content].


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return> a new `GdkContentProvider`.
</return>
</function>

<function name="gtk_text_buffer_get_slice">
<description>
Returns the text in the range [@start,@end).

Excludes undisplayed text (text marked with tags that set the
invisibility attribute) if @include_hidden_chars is %FALSE.
The returned string includes a 0xFFFC character whenever the
buffer contains embedded images, so byte and character indexes
into the returned string do correspond to byte and character
indexes into the buffer. Contrast with [method@Gtk.TextBuffer.get_text].
Note that 0xFFFC can occur in normal text as well, so it is not a
reliable indicator that a paintable or widget is in the buffer.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> start of a range
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> end of a range
</parameter_description>
</parameter>
<parameter name="include_hidden_chars">
<parameter_description> whether to include invisible text
</parameter_description>
</parameter>
</parameters>
<return> an allocated UTF-8 string
</return>
</function>

<function name="gtk_text_buffer_get_start_iter">
<description>
Initialized @iter with the first position in the text buffer.

This is the same as using [method@Gtk.TextBuffer.get_iter_at_offset]
to get the iter at character offset 0.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> iterator to initialize
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_get_tag_table">
<description>
Get the `GtkTextTagTable` associated with this buffer.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return> the buffer’s tag table
</return>
</function>

<function name="gtk_text_buffer_get_text">
<description>
Returns the text in the range [@start,@end).

Excludes undisplayed text (text marked with tags that set the
invisibility attribute) if @include_hidden_chars is %FALSE.
Does not include characters representing embedded images, so
byte and character indexes into the returned string do not
correspond to byte and character indexes into the buffer.
Contrast with [method@Gtk.TextBuffer.get_slice].


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> start of a range
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> end of a range
</parameter_description>
</parameter>
<parameter name="include_hidden_chars">
<parameter_description> whether to include invisible text
</parameter_description>
</parameter>
</parameters>
<return> an allocated UTF-8 string
</return>
</function>

<function name="gtk_text_buffer_insert">
<description>
Inserts @len bytes of @text at position @iter.

If @len is -1, @text must be nul-terminated and will be inserted in its
entirety. Emits the “insert-text” signal; insertion actually occurs
in the default handler for the signal. @iter is invalidated when
insertion occurs (because the buffer contents change), but the
default signal handler revalidates it to point to the end of the
inserted text.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a position in the buffer
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> text in UTF-8 format
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> length of text in bytes, or -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_insert_at_cursor">
<description>
Inserts @text in @buffer.

Simply calls [method@Gtk.TextBuffer.insert],
using the current cursor position as the insertion point.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> text in UTF-8 format
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> length of text, in bytes
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_insert_child_anchor">
<description>
Inserts a child widget anchor into the text buffer at @iter.

The anchor will be counted as one character in character counts, and
when obtaining the buffer contents as a string, will be represented
by the Unicode “object replacement character” 0xFFFC. Note that the
“slice” variants for obtaining portions of the buffer as a string
include this character for child anchors, but the “text” variants do
not. E.g. see [method@Gtk.TextBuffer.get_slice] and
[method@Gtk.TextBuffer.get_text].

Consider [method@Gtk.TextBuffer.create_child_anchor] as a more
convenient alternative to this function. The buffer will add a
reference to the anchor, so you can unref it after insertion.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> location to insert the anchor
</parameter_description>
</parameter>
<parameter name="anchor">
<parameter_description> a `GtkTextChildAnchor`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_insert_interactive">
<description>
Inserts @text in @buffer.

Like [method@Gtk.TextBuffer.insert], but the insertion will not occur
if @iter is at a non-editable location in the buffer. Usually you
want to prevent insertions at ineditable locations if the insertion
results from a user action (is interactive).

@default_editable indicates the editability of text that doesn't
have a tag affecting editability applied to it. Typically the
result of [method@Gtk.TextView.get_editable] is appropriate here.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a position in @buffer
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> some UTF-8 text
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> length of text in bytes, or -1
</parameter_description>
</parameter>
<parameter name="default_editable">
<parameter_description> default editability of buffer
</parameter_description>
</parameter>
</parameters>
<return> whether text was actually inserted
</return>
</function>

<function name="gtk_text_buffer_insert_interactive_at_cursor">
<description>
Inserts @text in @buffer.

Calls [method@Gtk.TextBuffer.insert_interactive]
at the cursor position.

@default_editable indicates the editability of text that doesn't
have a tag affecting editability applied to it. Typically the
result of [method@Gtk.TextView.get_editable] is appropriate here.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> text in UTF-8 format
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> length of text in bytes, or -1
</parameter_description>
</parameter>
<parameter name="default_editable">
<parameter_description> default editability of buffer
</parameter_description>
</parameter>
</parameters>
<return> whether text was actually inserted
</return>
</function>

<function name="gtk_text_buffer_insert_markup">
<description>
Inserts the text in @markup at position @iter.

@markup will be inserted in its entirety and must be nul-terminated
and valid UTF-8. Emits the [signal@Gtk.TextBuffer::insert-text] signal,
possibly multiple times; insertion actually occurs in the default handler
for the signal. @iter will point to the end of the inserted text on return.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> location to insert the markup
</parameter_description>
</parameter>
<parameter name="markup">
<parameter_description> a nul-terminated UTF-8 string containing Pango markup
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> length of @markup in bytes, or -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_insert_paintable">
<description>
Inserts an image into the text buffer at @iter.

The image will be counted as one character in character counts,
and when obtaining the buffer contents as a string, will be
represented by the Unicode “object replacement character” 0xFFFC.
Note that the “slice” variants for obtaining portions of the buffer
as a string include this character for paintable, but the “text”
variants do not. e.g. see [method@Gtk.TextBuffer.get_slice] and
[method@Gtk.TextBuffer.get_text].

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> location to insert the paintable
</parameter_description>
</parameter>
<parameter name="paintable">
<parameter_description> a `GdkPaintable`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_insert_range">
<description>
Copies text, tags, and paintables between @start and @end
and inserts the copy at @iter.

The order of @start and @end doesn’t matter.

Used instead of simply getting/inserting text because it preserves
images and tags. If @start and @end are in a different buffer from
@buffer, the two buffers must share the same tag table.

Implemented via emissions of the ::insert-text and ::apply-tag signals,
so expect those.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a position in @buffer
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> a position in a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> another position in the same buffer as @start
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_insert_range_interactive">
<description>
Copies text, tags, and paintables between @start and @end
and inserts the copy at @iter.

Same as [method@Gtk.TextBuffer.insert_range], but does nothing
if the insertion point isn’t editable. The @default_editable
parameter indicates whether the text is editable at @iter if
no tags enclosing @iter affect editability. Typically the result
of [method@Gtk.TextView.get_editable] is appropriate here.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a position in @buffer
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> a position in a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> another position in the same buffer as @start
</parameter_description>
</parameter>
<parameter name="default_editable">
<parameter_description> default editability of the buffer
</parameter_description>
</parameter>
</parameters>
<return> whether an insertion was possible at @iter
</return>
</function>

<function name="gtk_text_buffer_insert_with_tags">
<description>
Inserts @text into @buffer at @iter, applying the list of tags to
the newly-inserted text.

The last tag specified must be %NULL to terminate the list.
Equivalent to calling [method@Gtk.TextBuffer.insert],
then [method@Gtk.TextBuffer.apply_tag] on the inserted text;
this is just a convenience function.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> an iterator in @buffer
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> UTF-8 text
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> length of @text, or -1
</parameter_description>
</parameter>
<parameter name="first_tag">
<parameter_description> first tag to apply to @text
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> %NULL-terminated list of tags to apply
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_insert_with_tags_by_name">
<description>
Inserts @text into @buffer at @iter, applying the list of tags to
the newly-inserted text.

Same as [method@Gtk.TextBuffer.insert_with_tags], but allows you
to pass in tag names instead of tag objects.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> position in @buffer
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> UTF-8 text
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> length of @text, or -1
</parameter_description>
</parameter>
<parameter name="first_tag_name">
<parameter_description> name of a tag to apply to @text
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> more tag names
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_move_mark">
<description>
Moves @mark to the new location @where.

Emits the [signal@Gtk.TextBuffer::mark-set] signal
as notification of the move.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="mark">
<parameter_description> a `GtkTextMark`
</parameter_description>
</parameter>
<parameter name="where">
<parameter_description> new location for @mark in @buffer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_move_mark_by_name">
<description>
Moves the mark named @name (which must exist) to location @where.

See [method@Gtk.TextBuffer.move_mark] for details.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name of a mark
</parameter_description>
</parameter>
<parameter name="where">
<parameter_description> new location for mark
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_new">
<description>
Creates a new text buffer.


</description>
<parameters>
<parameter name="table">
<parameter_description> a tag table, or %NULL to create a new one
</parameter_description>
</parameter>
</parameters>
<return> a new text buffer
</return>
</function>

<function name="gtk_text_buffer_paste_clipboard">
<description>
Pastes the contents of a clipboard.

If @override_location is %NULL, the pasted text will be inserted
at the cursor position, or the buffer selection will be replaced
if the selection is non-empty.

Note: pasting is asynchronous, that is, we’ll ask for the paste data
and return, and at some point later after the main loop runs, the paste
data will be inserted.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="clipboard">
<parameter_description> the `GdkClipboard` to paste from
</parameter_description>
</parameter>
<parameter name="override_location">
<parameter_description> location to insert pasted text
</parameter_description>
</parameter>
<parameter name="default_editable">
<parameter_description> whether the buffer is editable by default
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_place_cursor">
<description>
This function moves the “insert” and “selection_bound” marks
simultaneously.

If you move them to the same place in two steps with
[method@Gtk.TextBuffer.move_mark], you will temporarily select a
region in between their old and new locations, which can be pretty
inefficient since the temporarily-selected region will force stuff
to be recalculated. This function moves them as a unit, which can
be optimized.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="where">
<parameter_description> where to put the cursor
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_redo">
<description>
Redoes the next redoable action on the buffer, if there is one.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_remove_all_tags">
<description>
Removes all tags in the range between @start and @end.

Be careful with this function; it could remove tags added in code
unrelated to the code you’re currently writing. That is, using this
function is probably a bad idea if you have two or more unrelated
code sections that add tags.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> one bound of range to be untagged
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> other bound of range to be untagged
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_remove_selection_clipboard">
<description>
Removes a `GdkClipboard` added with
[method@Gtk.TextBuffer.add_selection_clipboard]

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="clipboard">
<parameter_description> a `GdkClipboard` added to @buffer by
[method@Gtk.TextBuffer.add_selection_clipboard]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_remove_tag">
<description>
Emits the “remove-tag” signal.

The default handler for the signal removes all occurrences
of @tag from the given range. @start and @end don’t have
to be in order.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> a `GtkTextTag`
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> one bound of range to be untagged
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> other bound of range to be untagged
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_remove_tag_by_name">
<description>
Emits the “remove-tag” signal.

Calls [method@Gtk.TextTagTable.lookup] on the buffer’s
tag table to get a `GtkTextTag`, then calls
[method@Gtk.TextBuffer.remove_tag].

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name of a `GtkTextTag`
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> one bound of range to be untagged
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> other bound of range to be untagged
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_select_range">
<description>
This function moves the “insert” and “selection_bound” marks
simultaneously.

If you move them in two steps with
[method@Gtk.TextBuffer.move_mark], you will temporarily select a
region in between their old and new locations, which can be pretty
inefficient since the temporarily-selected region will force stuff
to be recalculated. This function moves them as a unit, which can
be optimized.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="ins">
<parameter_description> where to put the “insert” mark
</parameter_description>
</parameter>
<parameter name="bound">
<parameter_description> where to put the “selection_bound” mark
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_set_enable_undo">
<description>
Sets whether or not to enable undoable actions in the text buffer.

Undoable actions in this context are changes to the text content of
the buffer. Changes to tags and marks are not tracked.

If enabled, the user will be able to undo the last number of actions
up to [method@Gtk.TextBuffer.get_max_undo_levels].

See [method@Gtk.TextBuffer.begin_irreversible_action] and
[method@Gtk.TextBuffer.end_irreversible_action] to create
changes to the buffer that cannot be undone.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="enable_undo">
<parameter_description> %TRUE to enable undo
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_set_mark">
<description>
Move the mark to the given position.

If not @should_exist, create the mark.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="mark_name">
<parameter_description> name of the mark
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> location for the mark
</parameter_description>
</parameter>
<parameter name="left_gravity">
<parameter_description> if the mark is created by this function, gravity for
the new mark
</parameter_description>
</parameter>
<parameter name="should_exist">
<parameter_description> if %TRUE, warn if the mark does not exist, and return
immediately
</parameter_description>
</parameter>
</parameters>
<return> mark
</return>
</function>

<function name="gtk_text_buffer_set_max_undo_levels">
<description>
Sets the maximum number of undo levels to perform.

If 0, unlimited undo actions may be performed. Note that this may
have a memory usage impact as it requires storing an additional
copy of the inserted or removed text within the text buffer.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="max_undo_levels">
<parameter_description> the maximum number of undo actions to perform
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_set_modified">
<description>
Used to keep track of whether the buffer has been
modified since the last time it was saved.

Whenever the buffer is saved to disk, call
`gtk_text_buffer_set_modified (@buffer, FALSE)`.
When the buffer is modified, it will automatically
toggle on the modified bit again. When the modified
bit flips, the buffer emits the
[signal@Gtk.TextBuffer::modified-changed] signal.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> modification flag setting
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_set_text">
<description>
Deletes current contents of @buffer, and inserts @text instead. This is
automatically marked as an irreversible action in the undo stack. If you
wish to mark this action as part of a larger undo operation, call
[method@TextBuffer.delete] and [method@TextBuffer.insert] directly instead.

If @len is -1, @text must be nul-terminated.
@text must be valid UTF-8.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> UTF-8 text to insert
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> length of @text in bytes
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_buffer_undo">
<description>
Undoes the last undoable action on the buffer, if there is one.

</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_child_anchor_get_deleted">
<description>
Determines whether a child anchor has been deleted from
the buffer.

Keep in mind that the child anchor will be unreferenced
when removed from the buffer, so you need to hold your own
reference (with g_object_ref()) if you plan to use this
function — otherwise all deleted child anchors will also
be finalized.


</description>
<parameters>
<parameter name="anchor">
<parameter_description> a `GtkTextChildAnchor`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the child anchor has been deleted from its buffer
</return>
</function>

<function name="gtk_text_child_anchor_get_widgets">
<description>
Gets a list of all widgets anchored at this child anchor.

The order in which the widgets are returned is not defined.


</description>
<parameters>
<parameter name="anchor">
<parameter_description> a `GtkTextChildAnchor`
</parameter_description>
</parameter>
<parameter name="out_len">
<parameter_description> return location for the length of the array
</parameter_description>
</parameter>
</parameters>
<return> an
array of widgets anchored at @anchor
</return>
</function>

<function name="gtk_text_child_anchor_new">
<description>
Creates a new `GtkTextChildAnchor`.

Usually you would then insert it into a `GtkTextBuffer` with
[method@Gtk.TextBuffer.insert_child_anchor]. To perform the
creation and insertion in one step, use the convenience
function [method@Gtk.TextBuffer.create_child_anchor].


</description>
<parameters>
</parameters>
<return> a new `GtkTextChildAnchor`
</return>
</function>

<function name="gtk_text_child_anchor_new_with_replacement">
<description>
Creates a new `GtkTextChildAnchor` with the given replacement character.

Usually you would then insert it into a `GtkTextBuffer` with
[method@Gtk.TextBuffer.insert_child_anchor].

Since: 4.6

</description>
<parameters>
</parameters>
<return> a new `GtkTextChildAnchor`

</return>
</function>

<function name="gtk_text_compute_cursor_extents">
<description>
Determine the positions of the strong and weak cursors if the
insertion point in the layout is at @position.

The position of each cursor is stored as a zero-width rectangle.
The strong cursor location is the location where characters of
the directionality equal to the base direction are inserted.
The weak cursor location is the location where characters of
the directionality opposite to the base direction are inserted.

The rectangle positions are in widget coordinates.

Since: 4.4

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the character position
</parameter_description>
</parameter>
<parameter name="strong">
<parameter_description> location to store the strong cursor position
</parameter_description>
</parameter>
<parameter name="weak">
<parameter_description> location to store the weak cursor position
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_get_activates_default">
<description>
Returns whether pressing Enter will activate
the default widget for the window containing @self.

See [method@Gtk.Text.set_activates_default].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the `GtkText` will activate the default widget
</return>
</function>

<function name="gtk_text_get_attributes">
<description>
Gets the attribute list that was set on the `GtkText`.

See [method@Gtk.Text.set_attributes].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return> the attribute list
</return>
</function>

<function name="gtk_text_get_buffer">
<description>
Get the `GtkEntryBuffer` object which holds the text for
this widget.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return> A `GtkEntryBuffer` object.
</return>
</function>

<function name="gtk_text_get_enable_emoji_completion">
<description>
Returns whether Emoji completion is enabled for this
`GtkText` widget.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if Emoji completion is enabled
</return>
</function>

<function name="gtk_text_get_extra_menu">
<description>
Gets the menu model for extra items in the context menu.

See [method@Gtk.Text.set_extra_menu].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return> the menu model
</return>
</function>

<function name="gtk_text_get_input_hints">
<description>
Gets the input hints of the `GtkText`.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_get_input_purpose">
<description>
Gets the input purpose of the `GtkText`.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_get_invisible_char">
<description>
Retrieves the character displayed when visibility is set to false.

Note that GTK does not compute this value unless it needs it,
so the value returned by this function is not very useful unless
it has been explicitly set with [method@Gtk.Text.set_invisible_char].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return> the current invisible char, or 0, if @text does not
show invisible text at all.
</return>
</function>

<function name="gtk_text_get_max_length">
<description>
Retrieves the maximum allowed length of the text in @self.

See [method@Gtk.Text.set_max_length].

This is equivalent to getting @self's `GtkEntryBuffer` and
calling [method@Gtk.EntryBuffer.get_max_length] on it.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return> the maximum allowed number of characters
in `GtkText`, or 0 if there is no maximum.
</return>
</function>

<function name="gtk_text_get_overwrite_mode">
<description>
Gets whether text is overwritten when typing in the `GtkText`.

See [method@Gtk.Text.set_overwrite_mode].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return> whether the text is overwritten when typing
</return>
</function>

<function name="gtk_text_get_placeholder_text">
<description>
Retrieves the text that will be displayed when
@self is empty and unfocused

If no placeholder text has been set, %NULL will be returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return> the placeholder text
</return>
</function>

<function name="gtk_text_get_propagate_text_width">
<description>
Returns whether the `GtkText` will grow and shrink
with the content.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @self will propagate the text width
</return>
</function>

<function name="gtk_text_get_tabs">
<description>
Gets the tabstops that were set on the `GtkText`.

See [method@Gtk.Text.set_tabs].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return> the tabstops
</return>
</function>

<function name="gtk_text_get_text_length">
<description>
Retrieves the current length of the text in @self.

This is equivalent to getting @self's `GtkEntryBuffer`
and calling [method@Gtk.EntryBuffer.get_length] on it.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return> the current number of characters
in `GtkText`, or 0 if there are none.
</return>
</function>

<function name="gtk_text_get_truncate_multiline">
<description>
Returns whether the `GtkText` will truncate multi-line text
that is pasted into the widget


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @self will truncate multi-line text
</return>
</function>

<function name="gtk_text_get_visibility">
<description>
Retrieves whether the text in @self is visible.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the text is currently visible
</return>
</function>

<function name="gtk_text_grab_focus_without_selecting">
<description>
Causes @self to have keyboard focus.

It behaves like [method@Gtk.Widget.grab_focus],
except that it doesn't select the contents of @self.
You only want to call this on some special entries
which the user usually doesn't want to replace all text in,
such as search-as-you-type entries.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if focus is now inside @self
</return>
</function>

<function name="gtk_text_iter_assign">
<description>
Assigns the value of @other to @iter.

This function is not useful in applications, because
iterators can be assigned with `GtkTextIter i = j;`.

The function is used by language bindings.

</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="other">
<parameter_description> another `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_iter_backward_char">
<description>
Moves backward by one character offset.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> whether movement was possible
</return>
</function>

<function name="gtk_text_iter_backward_chars">
<description>
Moves @count characters backward, if possible.

If @count would move past the start or end of the buffer, moves
to the start or end of the buffer.

The return value indicates whether the iterator moved
onto a dereferenceable position; if the iterator didn’t move, or
moved onto the end iterator, then %FALSE is returned. If @count is 0,
the function does nothing and returns %FALSE.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of characters to move
</parameter_description>
</parameter>
</parameters>
<return> whether @iter moved and is dereferenceable
</return>
</function>

<function name="gtk_text_iter_backward_cursor_position">
<description>
Like [method@Gtk.TextIter.forward_cursor_position], but moves backward.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if we moved
</return>
</function>

<function name="gtk_text_iter_backward_cursor_positions">
<description>
Moves up to @count cursor positions.

See [method@Gtk.TextIter.forward_cursor_position] for details.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of positions to move
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if we moved and the new position is dereferenceable
</return>
</function>

<function name="gtk_text_iter_backward_find_char">
<description>
Same as [method@Gtk.TextIter.forward_find_char],
but goes backward from @iter.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="pred">
<parameter_description> function to be called on each character
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data for @pred
</parameter_description>
</parameter>
<parameter name="limit">
<parameter_description> search limit
</parameter_description>
</parameter>
</parameters>
<return> whether a match was found
</return>
</function>

<function name="gtk_text_iter_backward_line">
<description>
Moves @iter to the start of the previous line.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> whether @iter moved
</return>
</function>

<function name="gtk_text_iter_backward_lines">
<description>
Moves @count lines backward, if possible.

If @count would move past the start or end of the buffer, moves to
the start or end of the buffer.

The return value indicates whether the iterator moved
onto a dereferenceable position; if the iterator didn’t move, or
moved onto the end iterator, then %FALSE is returned. If @count is 0,
the function does nothing and returns %FALSE. If @count is negative,
moves forward by 0 - @count lines.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of lines to move backward
</parameter_description>
</parameter>
</parameters>
<return> whether @iter moved and is dereferenceable
</return>
</function>

<function name="gtk_text_iter_backward_search">
<description>
Same as [method@Gtk.TextIter.forward_search], but moves backward.

@match_end will never be set to a `GtkTextIter` located after @iter,
even if there is a possible @match_start before or at @iter.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter` where the search begins
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> search string
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> bitmask of flags affecting the search
</parameter_description>
</parameter>
<parameter name="match_start">
<parameter_description> return location for start of match
</parameter_description>
</parameter>
<parameter name="match_end">
<parameter_description> return location for end of match
</parameter_description>
</parameter>
<parameter name="limit">
<parameter_description> location of last possible @match_start, or %NULL for start of buffer
</parameter_description>
</parameter>
</parameters>
<return> whether a match was found
</return>
</function>

<function name="gtk_text_iter_backward_sentence_start">
<description>
Moves backward to the previous sentence start.

If @iter is already at the start of a sentence, moves backward
to the next one.

Sentence boundaries are determined by Pango and should
be correct for nearly any language.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter moved and is not the end iterator
</return>
</function>

<function name="gtk_text_iter_backward_sentence_starts">
<description>
Calls [method@Gtk.TextIter.backward_sentence_start] up to @count times.

If @count is negative, moves forward instead of backward.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of sentences to move
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter moved and is not the end iterator
</return>
</function>

<function name="gtk_text_iter_backward_text_chars">
<description>
Moves backward by @count text characters (paintables, widgets,
etc. do not count as characters for this). Equivalent to moving
through the results of gtk_text_iter_get_text(), rather than
gtk_text_iter_get_slice().


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of chars to move
</parameter_description>
</parameter>
</parameters>
<return> whether @iter moved and is dereferenceable
</return>
</function>

<function name="gtk_text_iter_backward_to_tag_toggle">
<description>
Moves backward to the next toggle (on or off) of the
@tag, or to the next toggle of any tag if
@tag is %NULL.

If no matching tag toggles are found,
returns %FALSE, otherwise %TRUE. Does not return toggles
located at @iter, only toggles before @iter. Sets @iter
to the location of the toggle, or the start of the buffer
if no toggle is found.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> a `GtkTextTag`
</parameter_description>
</parameter>
</parameters>
<return> whether we found a tag toggle before @iter
</return>
</function>

<function name="gtk_text_iter_backward_visible_cursor_position">
<description>
Moves @iter backward to the previous visible cursor position.

See [method@Gtk.TextIter.backward_cursor_position] for details.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if we moved and the new position is dereferenceable
</return>
</function>

<function name="gtk_text_iter_backward_visible_cursor_positions">
<description>
Moves up to @count visible cursor positions.

See [method@Gtk.TextIter.backward_cursor_position] for details.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of positions to move
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if we moved and the new position is dereferenceable
</return>
</function>

<function name="gtk_text_iter_backward_visible_line">
<description>
Moves @iter to the start of the previous visible line.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> whether @iter moved
</return>
</function>

<function name="gtk_text_iter_backward_visible_lines">
<description>
Moves @count visible lines backward, if possible.

If @count would move past the start or end of the buffer, moves to
the start or end of the buffer.

The return value indicates whether the iterator moved
onto a dereferenceable position; if the iterator didn’t move, or
moved onto the end iterator, then %FALSE is returned. If @count is 0,
the function does nothing and returns %FALSE. If @count is negative,
moves forward by 0 - @count lines.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of lines to move backward
</parameter_description>
</parameter>
</parameters>
<return> whether @iter moved and is dereferenceable
</return>
</function>

<function name="gtk_text_iter_backward_visible_word_start">
<description>
Moves backward to the previous visible word start.

If @iter is currently on a word start, moves backward to the
next one after that.

Word breaks are determined by Pango and should be correct
for nearly any language.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter moved and is not the end iterator
</return>
</function>

<function name="gtk_text_iter_backward_visible_word_starts">
<description>
Calls [method@Gtk.TextIter.backward_visible_word_start] up to @count times.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of times to move
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter moved and is not the end iterator
</return>
</function>

<function name="gtk_text_iter_backward_word_start">
<description>
Moves backward to the previous word start.

If @iter is currently on a word start, moves backward to the
next one after that.

Word breaks are determined by Pango and should be correct
for nearly any language


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter moved and is not the end iterator
</return>
</function>

<function name="gtk_text_iter_backward_word_starts">
<description>
Calls [method@Gtk.TextIter.backward_word_start] up to @count times.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of times to move
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter moved and is not the end iterator
</return>
</function>

<function name="gtk_text_iter_can_insert">
<description>
Considering the default editability of the buffer, and tags that
affect editability, determines whether text inserted at @iter would
be editable.

If text inserted at @iter would be editable then the
user should be allowed to insert text at @iter.
[method@Gtk.TextBuffer.insert_interactive] uses this function
to decide whether insertions are allowed at a given position.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
<parameter name="default_editability">
<parameter_description> %TRUE if text is editable by default
</parameter_description>
</parameter>
</parameters>
<return> whether text inserted at @iter would be editable
</return>
</function>

<function name="gtk_text_iter_compare">
<description>
A qsort()-style function that returns negative if @lhs is less than
@rhs, positive if @lhs is greater than @rhs, and 0 if they’re equal.

Ordering is in character offset order, i.e. the first character
in the buffer is less than the second character in the buffer.


</description>
<parameters>
<parameter name="lhs">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="rhs">
<parameter_description> another `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> -1 if @lhs is less than @rhs, 1 if @lhs is greater, 0 if they are equal
</return>
</function>

<function name="gtk_text_iter_copy">
<description>
Creates a dynamically-allocated copy of an iterator.

This function is not useful in applications, because
iterators can be copied with a simple assignment
(`GtkTextIter i = j;`).

The function is used by language bindings.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> a copy of the @iter, free with [method@Gtk.TextIter.free]
</return>
</function>

<function name="gtk_text_iter_editable">
<description>
Returns whether the character at @iter is within an editable region
of text.

Non-editable text is “locked” and can’t be changed by the
user via `GtkTextView`. If no tags applied to this text affect
editability, @default_setting will be returned.

You don’t want to use this function to decide whether text can be
inserted at @iter, because for insertion you don’t want to know
whether the char at @iter is inside an editable range, you want to
know whether a new character inserted at @iter would be inside an
editable range. Use [method@Gtk.TextIter.can_insert] to handle this
case.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
<parameter name="default_setting">
<parameter_description> %TRUE if text is editable by default
</parameter_description>
</parameter>
</parameters>
<return> whether @iter is inside an editable range
</return>
</function>

<function name="gtk_text_iter_ends_line">
<description>
Returns %TRUE if @iter points to the start of the paragraph
delimiter characters for a line.

Delimiters will be either a newline, a carriage return, a carriage
return followed by a newline, or a Unicode paragraph separator
character.

Note that an iterator pointing to the \n of a \r\n pair will not be
counted as the end of a line, the line ends before the \r. The end
iterator is considered to be at the end of a line, even though there
are no paragraph delimiter chars there.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> whether @iter is at the end of a line
</return>
</function>

<function name="gtk_text_iter_ends_sentence">
<description>
Determines whether @iter ends a sentence.

Sentence boundaries are determined by Pango and should
be correct for nearly any language.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter is at the end of a sentence.
</return>
</function>

<function name="gtk_text_iter_ends_tag">
<description>
Returns %TRUE if @tag is toggled off at exactly this point.

If @tag is %NULL, returns %TRUE if any tag is toggled off at this point.

Note that if this function returns %TRUE, it means that
@iter is at the end of the tagged range, but that the character
at @iter is outside the tagged range. In other words,
unlike [method@Gtk.TextIter.starts_tag], if this function
returns %TRUE, [method@Gtk.TextIter.has_tag] will return
%FALSE for the same parameters.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> a `GtkTextTag`
</parameter_description>
</parameter>
</parameters>
<return> whether @iter is the end of a range tagged with @tag
</return>
</function>

<function name="gtk_text_iter_ends_word">
<description>
Determines whether @iter ends a natural-language word.

Word breaks are determined by Pango and should be correct
for nearly any language.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter is at the end of a word
</return>
</function>

<function name="gtk_text_iter_equal">
<description>
Tests whether two iterators are equal, using the fastest possible
mechanism.

This function is very fast; you can expect it to perform
better than e.g. getting the character offset for each
iterator and comparing the offsets yourself. Also, it’s a
bit faster than [method@Gtk.TextIter.compare].


</description>
<parameters>
<parameter name="lhs">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="rhs">
<parameter_description> another `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the iterators point to the same place in the buffer
</return>
</function>

<function name="gtk_text_iter_forward_char">
<description>
Moves @iter forward by one character offset.

Note that images embedded in the buffer occupy 1 character slot, so
this function may actually move onto an image instead of a character,
if you have images in your buffer. If @iter is the end iterator or
one character before it, @iter will now point at the end iterator,
and this function returns %FALSE for convenience when writing loops.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> whether @iter moved and is dereferenceable
</return>
</function>

<function name="gtk_text_iter_forward_chars">
<description>
Moves @count characters if possible.

If @count would move past the start or end of the buffer,
moves to the start or end of the buffer.

The return value indicates whether the new position of
@iter is different from its original position, and dereferenceable
(the last iterator in the buffer is not dereferenceable). If @count
is 0, the function does nothing and returns %FALSE.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of characters to move, may be negative
</parameter_description>
</parameter>
</parameters>
<return> whether @iter moved and is dereferenceable
</return>
</function>

<function name="gtk_text_iter_forward_cursor_position">
<description>
Moves @iter forward by a single cursor position.

Cursor positions are (unsurprisingly) positions where the
cursor can appear. Perhaps surprisingly, there may not be
a cursor position between all characters. The most common
example for European languages would be a carriage return/newline
sequence.

For some Unicode characters, the equivalent of say the letter “a”
with an accent mark will be represented as two characters, first
the letter then a &quot;combining mark&quot; that causes the accent to be
rendered; so the cursor can’t go between those two characters.

See also the [struct@Pango.LogAttr] struct and the [func@Pango.break]
function.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if we moved and the new position is dereferenceable
</return>
</function>

<function name="gtk_text_iter_forward_cursor_positions">
<description>
Moves up to @count cursor positions.

See [method@Gtk.TextIter.forward_cursor_position] for details.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of positions to move
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if we moved and the new position is dereferenceable
</return>
</function>

<function name="gtk_text_iter_forward_find_char">
<description>
Advances @iter, calling @pred on each character.

If @pred returns %TRUE, returns %TRUE and stops scanning.
If @pred never returns %TRUE, @iter is set to @limit if
@limit is non-%NULL, otherwise to the end iterator.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="pred">
<parameter_description> a function to be called on each character
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data for @pred
</parameter_description>
</parameter>
<parameter name="limit">
<parameter_description> search limit
</parameter_description>
</parameter>
</parameters>
<return> whether a match was found
</return>
</function>

<function name="gtk_text_iter_forward_line">
<description>
Moves @iter to the start of the next line.

If the iter is already on the last line of the buffer,
moves the iter to the end of the current line. If after
the operation, the iter is at the end of the buffer and not
dereferenceable, returns %FALSE. Otherwise, returns %TRUE.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> whether @iter can be dereferenced
</return>
</function>

<function name="gtk_text_iter_forward_lines">
<description>
Moves @count lines forward, if possible.

If @count would move past the start or end of the buffer, moves to
the start or end of the buffer.

The return value indicates whether the iterator moved
onto a dereferenceable position; if the iterator didn’t move, or
moved onto the end iterator, then %FALSE is returned. If @count is 0,
the function does nothing and returns %FALSE. If @count is negative,
moves backward by 0 - @count lines.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of lines to move forward
</parameter_description>
</parameter>
</parameters>
<return> whether @iter moved and is dereferenceable
</return>
</function>

<function name="gtk_text_iter_forward_search">
<description>
Searches forward for @str.

Any match is returned by setting @match_start to the first character
of the match and @match_end to the first character after the match.
The search will not continue past @limit. Note that a search is a
linear or O(n) operation, so you may wish to use @limit to avoid
locking up your UI on large buffers.

@match_start will never be set to a `GtkTextIter` located before @iter,
even if there is a possible @match_end after or at @iter.


</description>
<parameters>
<parameter name="iter">
<parameter_description> start of search
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> a search string
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags affecting how the search is done
</parameter_description>
</parameter>
<parameter name="match_start">
<parameter_description> return location for start of match
</parameter_description>
</parameter>
<parameter name="match_end">
<parameter_description> return location for end of match
</parameter_description>
</parameter>
<parameter name="limit">
<parameter_description> location of last possible @match_end, or %NULL for the end of the buffer
</parameter_description>
</parameter>
</parameters>
<return> whether a match was found
</return>
</function>

<function name="gtk_text_iter_forward_sentence_end">
<description>
Moves forward to the next sentence end.

If @iter is at the end of a sentence, moves to the next
end of sentence.

Sentence boundaries are determined by Pango and should
be correct for nearly any language.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter moved and is not the end iterator
</return>
</function>

<function name="gtk_text_iter_forward_sentence_ends">
<description>
Calls [method@Gtk.TextIter.forward_sentence_end] @count times.

If @count is negative, moves backward instead of forward.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of sentences to move
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter moved and is not the end iterator
</return>
</function>

<function name="gtk_text_iter_forward_text_chars">
<description>
Moves forward by @count text characters.

Paintables, widgets, etc. do not count as characters for this.

Equivalent to moving through the results of gtk_text_iter_get_text(),
rather than gtk_text_iter_get_slice().


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of chars to move
</parameter_description>
</parameter>
</parameters>
<return> whether @iter moved and is dereferenceable
</return>
</function>

<function name="gtk_text_iter_forward_to_end">
<description>
Moves @iter forward to the “end iterator”, which points
one past the last valid character in the buffer.

[method@Gtk.TextIter.get_char] called on the end iterator
returns 0, which is convenient for writing loops.

</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_iter_forward_to_line_end">
<description>
Moves the iterator to point to the paragraph delimiter characters.

The possible characters are either a newline, a carriage return,
a carriage return/newline in sequence, or the Unicode paragraph
separator character.

If the iterator is already at the paragraph delimiter
characters, moves to the paragraph delimiter characters for the
next line. If @iter is on the last line in the buffer, which does
not end in paragraph delimiters, moves to the end iterator (end of
the last line), and returns %FALSE.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if we moved and the new location is not the end iterator
</return>
</function>

<function name="gtk_text_iter_forward_to_tag_toggle">
<description>
Moves forward to the next toggle (on or off) of the
@tag, or to the next toggle of any tag if
@tag is %NULL.

If no matching tag toggles are found,
returns %FALSE, otherwise %TRUE. Does not return toggles
located at @iter, only toggles after @iter. Sets @iter to
the location of the toggle, or to the end of the buffer
if no toggle is found.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> a `GtkTextTag`
</parameter_description>
</parameter>
</parameters>
<return> whether we found a tag toggle after @iter
</return>
</function>

<function name="gtk_text_iter_forward_visible_cursor_position">
<description>
Moves @iter forward to the next visible cursor position.

See [method@Gtk.TextIter.forward_cursor_position] for details.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if we moved and the new position is dereferenceable
</return>
</function>

<function name="gtk_text_iter_forward_visible_cursor_positions">
<description>
Moves up to @count visible cursor positions.

See [method@Gtk.TextIter.forward_cursor_position] for details.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of positions to move
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if we moved and the new position is dereferenceable
</return>
</function>

<function name="gtk_text_iter_forward_visible_line">
<description>
Moves @iter to the start of the next visible line.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> whether @iter can be dereferenced
</return>
</function>

<function name="gtk_text_iter_forward_visible_lines">
<description>
Moves @count visible lines forward, if possible.

If @count would move past the start or end of the buffer, moves to
the start or end of the buffer.

The return value indicates whether the iterator moved
onto a dereferenceable position; if the iterator didn’t move, or
moved onto the end iterator, then %FALSE is returned. If @count is 0,
the function does nothing and returns %FALSE. If @count is negative,
moves backward by 0 - @count lines.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of lines to move forward
</parameter_description>
</parameter>
</parameters>
<return> whether @iter moved and is dereferenceable
</return>
</function>

<function name="gtk_text_iter_forward_visible_word_end">
<description>
Moves forward to the next visible word end.

If @iter is currently on a word end, moves forward to the
next one after that.

Word breaks are determined by Pango and should be correct
for nearly any language


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter moved and is not the end iterator
</return>
</function>

<function name="gtk_text_iter_forward_visible_word_ends">
<description>
Calls [method@Gtk.TextIter.forward_visible_word_end] up to @count times.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of times to move
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter moved and is not the end iterator
</return>
</function>

<function name="gtk_text_iter_forward_word_end">
<description>
Moves forward to the next word end.

If @iter is currently on a word end, moves forward to the
next one after that.

Word breaks are determined by Pango and should be correct
for nearly any language.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter moved and is not the end iterator
</return>
</function>

<function name="gtk_text_iter_forward_word_ends">
<description>
Calls [method@Gtk.TextIter.forward_word_end] up to @count times.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of times to move
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter moved and is not the end iterator
</return>
</function>

<function name="gtk_text_iter_free">
<description>
Free an iterator allocated on the heap.

This function is intended for use in language bindings,
and is not especially useful for applications, because
iterators can simply be allocated on the stack.

</description>
<parameters>
<parameter name="iter">
<parameter_description> a dynamically-allocated iterator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_iter_get_buffer">
<description>
Returns the `GtkTextBuffer` this iterator is associated with.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> the buffer
</return>
</function>

<function name="gtk_text_iter_get_bytes_in_line">
<description>
Returns the number of bytes in the line containing @iter,
including the paragraph delimiters.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> number of bytes in the line
</return>
</function>

<function name="gtk_text_iter_get_char">
<description>
The Unicode character at this iterator is returned.

Equivalent to operator* on a C++ iterator. If the element at
this iterator is a non-character element, such as an image
embedded in the buffer, the Unicode “unknown” character 0xFFFC
is returned. If invoked on the end iterator, zero is returned;
zero is not a valid Unicode character.

So you can write a loop which ends when this function returns 0.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> a Unicode character, or 0 if @iter is not dereferenceable
</return>
</function>

<function name="gtk_text_iter_get_chars_in_line">
<description>
Returns the number of characters in the line containing @iter,
including the paragraph delimiters.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> number of characters in the line
</return>
</function>

<function name="gtk_text_iter_get_child_anchor">
<description>
If the location at @iter contains a child anchor, the
anchor is returned.

Otherwise, %NULL is returned.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> the anchor at @iter
</return>
</function>

<function name="gtk_text_iter_get_language">
<description>
Returns the language in effect at @iter.

If no tags affecting language apply to @iter, the return
value is identical to that of [func@Gtk.get_default_language].


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> language in effect at @iter
</return>
</function>

<function name="gtk_text_iter_get_line">
<description>
Returns the line number containing the iterator.

Lines in a `GtkTextBuffer` are numbered beginning
with 0 for the first line in the buffer.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> a line number
</return>
</function>

<function name="gtk_text_iter_get_line_index">
<description>
Returns the byte index of the iterator, counting
from the start of a newline-terminated line.

Remember that `GtkTextBuffer` encodes text in
UTF-8, and that characters can require a variable
number of bytes to represent.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> distance from start of line, in bytes
</return>
</function>

<function name="gtk_text_iter_get_line_offset">
<description>
Returns the character offset of the iterator,
counting from the start of a newline-terminated line.

The first character on the line has offset 0.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> offset from start of line
</return>
</function>

<function name="gtk_text_iter_get_marks">
<description>
Returns a list of all `GtkTextMark` at this location.

Because marks are not iterable (they don’t take up any &quot;space&quot;
in the buffer, they are just marks in between iterable locations),
multiple marks can exist in the same place.

The returned list is not in any meaningful order.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return>
list of `GtkTextMark`
</return>
</function>

<function name="gtk_text_iter_get_offset">
<description>
Returns the character offset of an iterator.

Each character in a `GtkTextBuffer` has an offset,
starting with 0 for the first character in the buffer.
Use [method@Gtk.TextBuffer.get_iter_at_offset] to convert
an offset back into an iterator.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> a character offset
</return>
</function>

<function name="gtk_text_iter_get_paintable">
<description>
If the element at @iter is a paintable, the paintable is returned.

Otherwise, %NULL is returned.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> the paintable at @iter
</return>
</function>

<function name="gtk_text_iter_get_slice">
<description>
Returns the text in the given range.

A “slice” is an array of characters encoded in UTF-8 format,
including the Unicode “unknown” character 0xFFFC for iterable
non-character elements in the buffer, such as images.
Because images are encoded in the slice, byte and
character offsets in the returned array will correspond to byte
offsets in the text buffer. Note that 0xFFFC can occur in normal
text as well, so it is not a reliable indicator that a paintable or
widget is in the buffer.


</description>
<parameters>
<parameter name="start">
<parameter_description> iterator at start of a range
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> iterator at end of a range
</parameter_description>
</parameter>
</parameters>
<return> slice of text from the buffer
</return>
</function>

<function name="gtk_text_iter_get_tags">
<description>
Returns a list of tags that apply to @iter, in ascending order of
priority.

The highest-priority tags are last.

The `GtkTextTag`s in the list don’t have a reference added,
but you have to free the list itself.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> list of
`GtkTextTag`
</return>
</function>

<function name="gtk_text_iter_get_text">
<description>
Returns text in the given range.

If the range
contains non-text elements such as images, the character and byte
offsets in the returned string will not correspond to character and
byte offsets in the buffer. If you want offsets to correspond, see
[method@Gtk.TextIter.get_slice].


</description>
<parameters>
<parameter name="start">
<parameter_description> iterator at start of a range
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> iterator at end of a range
</parameter_description>
</parameter>
</parameters>
<return> array of characters from the buffer
</return>
</function>

<function name="gtk_text_iter_get_toggled_tags">
<description>
Returns a list of `GtkTextTag` that are toggled on or off at this
point.

If @toggled_on is %TRUE, the list contains tags that are
toggled on. If a tag is toggled on at @iter, then some non-empty
range of characters following @iter has that tag applied to it.  If
a tag is toggled off, then some non-empty range following @iter
does not have the tag applied to it.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
<parameter name="toggled_on">
<parameter_description> %TRUE to get toggled-on tags
</parameter_description>
</parameter>
</parameters>
<return> tags
toggled at this point
</return>
</function>

<function name="gtk_text_iter_get_visible_line_index">
<description>
Returns the number of bytes from the start of the
line to the given @iter, not counting bytes that
are invisible due to tags with the “invisible” flag
toggled on.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> byte index of @iter with respect to the start of the line
</return>
</function>

<function name="gtk_text_iter_get_visible_line_offset">
<description>
Returns the offset in characters from the start of the
line to the given @iter, not counting characters that
are invisible due to tags with the “invisible” flag
toggled on.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> offset in visible characters from the start of the line
</return>
</function>

<function name="gtk_text_iter_get_visible_slice">
<description>
Returns visible text in the given range.

Like [method@Gtk.TextIter.get_slice], but invisible text
is not included. Invisible text is usually invisible because
a `GtkTextTag` with the “invisible” attribute turned on has
been applied to it.


</description>
<parameters>
<parameter name="start">
<parameter_description> iterator at start of range
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> iterator at end of range
</parameter_description>
</parameter>
</parameters>
<return> slice of text from the buffer
</return>
</function>

<function name="gtk_text_iter_get_visible_text">
<description>
Returns visible text in the given range.

Like [method@Gtk.TextIter.get_text], but invisible text
is not included. Invisible text is usually invisible because
a `GtkTextTag` with the “invisible” attribute turned on has
been applied to it.


</description>
<parameters>
<parameter name="start">
<parameter_description> iterator at start of range
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> iterator at end of range
</parameter_description>
</parameter>
</parameters>
<return> string containing visible text in the
range
</return>
</function>

<function name="gtk_text_iter_has_tag">
<description>
Returns %TRUE if @iter points to a character that is part
of a range tagged with @tag.

See also [method@Gtk.TextIter.starts_tag] and
[method@Gtk.TextIter.ends_tag].


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> a `GtkTextTag`
</parameter_description>
</parameter>
</parameters>
<return> whether @iter is tagged with @tag
</return>
</function>

<function name="gtk_text_iter_in_range">
<description>
Checks whether @iter falls in the range [@start, @end).

@start and @end must be in ascending order.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> start of range
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> end of range
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter is in the range
</return>
</function>

<function name="gtk_text_iter_inside_sentence">
<description>
Determines whether @iter is inside a sentence (as opposed to in
between two sentences, e.g. after a period and before the first
letter of the next sentence).

Sentence boundaries are determined by Pango and should be correct
for nearly any language.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter is inside a sentence.
</return>
</function>

<function name="gtk_text_iter_inside_word">
<description>
Determines whether the character pointed by @iter is part of a
natural-language word (as opposed to say inside some whitespace).

Word breaks are determined by Pango and should be correct
for nearly any language.

Note that if [method@Gtk.TextIter.starts_word] returns %TRUE,
then this function returns %TRUE too, since @iter points to
the first character of the word.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter is inside a word
</return>
</function>

<function name="gtk_text_iter_is_cursor_position">
<description>
Determine if @iter is at a cursor position.

See [method@Gtk.TextIter.forward_cursor_position] or
[struct@Pango.LogAttr] or [func@Pango.break] for details
on what a cursor position is.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the cursor can be placed at @iter
</return>
</function>

<function name="gtk_text_iter_is_end">
<description>
Returns %TRUE if @iter is the end iterator.

This means it is one past the last dereferenceable iterator
in the buffer. [method@Gtk.TextIter.is_end] is the most efficient
way to check whether an iterator is the end iterator.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> whether @iter is the end iterator
</return>
</function>

<function name="gtk_text_iter_is_start">
<description>
Returns %TRUE if @iter is the first iterator in the buffer.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> whether @iter is the first in the buffer
</return>
</function>

<function name="gtk_text_iter_order">
<description>
Swaps the value of @first and @second if @second comes before
@first in the buffer.

That is, ensures that @first and @second are in sequence.
Most text buffer functions that take a range call this
automatically on your behalf, so there’s no real reason to
call it yourself in those cases. There are some exceptions,
such as [method@Gtk.TextIter.in_range], that expect a
pre-sorted range.

</description>
<parameters>
<parameter name="first">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="second">
<parameter_description> another `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_iter_set_line">
<description>
Moves iterator @iter to the start of the line @line_number.

If @line_number is negative or larger than or equal to the number of lines
in the buffer, moves @iter to the start of the last line in the buffer.

</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="line_number">
<parameter_description> line number (counted from 0)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_iter_set_line_index">
<description>
Same as [method@Gtk.TextIter.set_line_offset], but works with a
byte index. The given byte index must be at
the start of a character, it can’t be in the middle of a UTF-8
encoded character.

</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="byte_on_line">
<parameter_description> a byte index relative to the start of @iter’s current line
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_iter_set_line_offset">
<description>
Moves @iter within a line, to a new character (not byte) offset.

The given character offset must be less than or equal to the number
of characters in the line; if equal, @iter moves to the start of the
next line. See [method@Gtk.TextIter.set_line_index] if you have a byte
index rather than a character offset.

</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="char_on_line">
<parameter_description> a character offset relative to the start of @iter’s current line
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_iter_set_offset">
<description>
Sets @iter to point to @char_offset.

@char_offset counts from the start
of the entire text buffer, starting with 0.

</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="char_offset">
<parameter_description> a character number
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_iter_set_visible_line_index">
<description>
Like [method@Gtk.TextIter.set_line_index], but the index is in visible
bytes, i.e. text with a tag making it invisible is not counted
in the index.

</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="byte_on_line">
<parameter_description> a byte index
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_iter_set_visible_line_offset">
<description>
Like [method@Gtk.TextIter.set_line_offset], but the offset is in visible
characters, i.e. text with a tag making it invisible is not
counted in the offset.

</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="char_on_line">
<parameter_description> a character offset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_iter_starts_line">
<description>
Returns %TRUE if @iter begins a paragraph.

This is the case if [method@Gtk.TextIter.get_line_offset]
would return 0. However this function is potentially more
efficient than [method@Gtk.TextIter.get_line_offset], because
it doesn’t have to compute the offset, it just has to see
whether it’s 0.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
<return> whether @iter begins a line
</return>
</function>

<function name="gtk_text_iter_starts_sentence">
<description>
Determines whether @iter begins a sentence.

Sentence boundaries are determined by Pango and
should be correct for nearly any language.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter is at the start of a sentence.
</return>
</function>

<function name="gtk_text_iter_starts_tag">
<description>
Returns %TRUE if @tag is toggled on at exactly this point.

If @tag is %NULL, returns %TRUE if any tag is toggled on at this point.

Note that if this function returns %TRUE, it means that
@iter is at the beginning of the tagged range, and that the
character at @iter is inside the tagged range. In other
words, unlike [method@Gtk.TextIter.ends_tag], if
this function returns %TRUE, [method@Gtk.TextIter.has_tag]
will also return %TRUE for the same parameters.


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> a `GtkTextTag`
</parameter_description>
</parameter>
</parameters>
<return> whether @iter is the start of a range tagged with @tag
</return>
</function>

<function name="gtk_text_iter_starts_word">
<description>
Determines whether @iter begins a natural-language word.

Word breaks are determined by Pango and should be correct
for nearly any language.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter is at the start of a word
</return>
</function>

<function name="gtk_text_iter_toggles_tag">
<description>
Gets whether a range with @tag applied to it begins
or ends at @iter.

This is equivalent to (gtk_text_iter_starts_tag() ||
gtk_text_iter_ends_tag())


</description>
<parameters>
<parameter name="iter">
<parameter_description> an iterator
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> a `GtkTextTag`
</parameter_description>
</parameter>
</parameters>
<return> whether @tag is toggled on or off at @iter
</return>
</function>

<function name="gtk_text_layout_clamp_iter_to_vrange">
<description>
If the iterator is not fully in the range @top &lt;= y &lt; @bottom,
then, if possible, move it the minimum distance so that the
iterator in this range.


</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkTextLayout`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description>   a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="top">
<parameter_description>    the top of the range
</parameter_description>
</parameter>
<parameter name="bottom">
<parameter_description> the bottom the range
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the iterator was moved, otherwise %FALSE.
</return>
</function>

<function name="gtk_text_layout_get_buffer">
<description>
Gets the text buffer used by the layout. See
gtk_text_layout_set_buffer().


</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkTextLayout`
</parameter_description>
</parameter>
</parameters>
<return> the text buffer used by the layout.
</return>
</function>

<function name="gtk_text_layout_get_cursor_locations">
<description>
Given an iterator within a text layout, determine the positions of the
strong and weak cursors if the insertion point is at that
iterator. The position of each cursor is stored as a zero-width
rectangle. The strong cursor location is the location where
characters of the directionality equal to the base direction of the
paragraph are inserted.  The weak cursor location is the location
where characters of the directionality opposite to the base
direction of the paragraph are inserted.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkTextLayout`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="strong_pos">
<parameter_description> location to store the strong cursor position
</parameter_description>
</parameter>
<parameter name="weak_pos">
<parameter_description> location to store the weak cursor position
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_layout_get_cursor_visible">
<description>
Returns whether the insertion cursor will be shown.


</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkTextLayout`
</parameter_description>
</parameter>
</parameters>
<return> if %FALSE, the insertion cursor will not be
shown, even if the text is editable.
</return>
</function>

<function name="gtk_text_layout_get_line_at_y">
<description>
Get the iter at the beginning of the line which is displayed
at the given y.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkLayout`
</parameter_description>
</parameter>
<parameter name="target_iter">
<parameter_description> the iterator in which the result is stored
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y position
</parameter_description>
</parameter>
<parameter name="line_top">
<parameter_description> location to store the y coordinate of the
top of the line. (Can by %NULL)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_layout_get_line_yrange">
<description>
Find the range of y coordinates for the paragraph containing
the given iter.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkTextLayout`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> location to store the top of the paragraph in pixels
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> location to store the height of the paragraph in pixels
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_layout_is_valid">
<description>
Check if there are any invalid regions in a `GtkTextLayout`’s buffer


</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkTextLayout`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if any invalid regions were found
</return>
</function>

<function name="gtk_text_layout_iter_starts_line">
<description>
Tests whether an iterator is at the start of a display line.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkTextLayout`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> iterator to test
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_layout_move_iter_to_line_end">
<description>
Move to the beginning or end of a display line.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkTextLayout`
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> if negative, move to beginning of line, otherwise
               move to end of line.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_layout_move_iter_to_next_line">
<description>
Move the iterator to the beginning of the next line. The
lines of a wrapped paragraph are treated as distinct for
this operation.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkLayout`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description>   a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_layout_move_iter_to_previous_line">
<description>
Move the iterator to the beginning of the previous line. The lines
of a wrapped paragraph are treated as distinct for this operation.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkLayout`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description>   a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_layout_move_iter_to_x">
<description>
Keeping the iterator on the same line of the layout, move it to the
specified X coordinate. The lines of a wrapped paragraph are
treated as distinct for this operation.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkTextLayout`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X coordinate
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_layout_move_iter_visually">
<description>
Move the iterator a given number of characters visually, treating
it as the strong cursor position. If @count is positive, then the
new strong cursor position will be @count positions to the right of
the old cursor position. If @count is negative then the new strong
cursor position will be @count positions to the left of the old
cursor position.

In the presence of bidirection text, the correspondence
between logical and visual order will depend on the direction
of the current run, and there may be jumps when the cursor
is moved off of the end of a run.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkTextLayout`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of characters to move (negative moves left, positive moves right)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_layout_set_cursor_direction">
<description>
Sets which text directions (left-to-right and/or right-to-left) for
which cursors will be drawn for the insertion point. The visual
point at which new text is inserted depends on whether the new
text is right-to-left or left-to-right, so it may be desired to
make the drawn position of the cursor depend on the keyboard state.

</description>
<parameters>
<parameter name="direction">
<parameter_description> the new direction(s) for which to draw cursors.
%GTK_TEXT_DIR_NONE means draw cursors for both
left-to-right insertion and right-to-left insertion.
(The two cursors will be visually distinguished.)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_layout_set_cursor_visible">
<description>
Sets whether the insertion cursor should be shown. Generally,
widgets using `GtkTextLayout` will hide the cursor when the
widget does not have the input focus.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkTextLayout`
</parameter_description>
</parameter>
<parameter name="cursor_visible">
<parameter_description> If %FALSE, then the insertion cursor will not
be shown, even if the text is editable.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_layout_set_keyboard_direction">
<description>
Sets the keyboard direction; this is used as for the bidirectional
base direction for the line with the cursor if the line contains
only neutral characters.

</description>
<parameters>
<parameter name="keyboard_dir">
<parameter_description> the current direction of the keyboard.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_layout_set_overwrite_mode">
<description>
Sets overwrite mode

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkTextLayout`
</parameter_description>
</parameter>
<parameter name="overwrite">
<parameter_description> overwrite mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_layout_set_preedit_string">
<description>
Set the preedit string and attributes. The preedit string is a
string showing text that is currently being edited and not
yet committed into the buffer.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `PangoLayout`
</parameter_description>
</parameter>
<parameter name="preedit_string">
<parameter_description> a string to display at the insertion point
</parameter_description>
</parameter>
<parameter name="preedit_attrs">
<parameter_description> a `PangoAttrList` of attributes that apply to @preedit_string
</parameter_description>
</parameter>
<parameter name="cursor_pos">
<parameter_description> position of cursor within preedit string in chars
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_layout_validate">
<description>
Validate regions of a `GtkTextLayout`. The ::changed signal will
be emitted for each region validated.

</description>
<parameters>
<parameter name="tree">
<parameter_description> a `GtkTextLayout`
</parameter_description>
</parameter>
<parameter name="max_pixels">
<parameter_description> the maximum number of pixels to validate. (No more
than one paragraph beyond this limit will be validated)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_layout_validate_yrange">
<description>
Ensure that a region of a `GtkTextLayout` is valid. The ::changed
signal will be emitted if any lines are validated.

</description>
<parameters>
<parameter name="layout">
<parameter_description> a `GtkTextLayout`
</parameter_description>
</parameter>
<parameter name="anchor">
<parameter_description> iter pointing into a line that will be used as the
coordinate origin
</parameter_description>
</parameter>
<parameter name="y0_">
<parameter_description> offset from the top of the line pointed to by @anchor at
which to begin validation. (The offset here is in pixels
after validation.)
</parameter_description>
</parameter>
<parameter name="y1_">
<parameter_description> offset from the top of the line pointed to by @anchor at
which to end validation. (The offset here is in pixels
after validation.)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_mark_get_buffer">
<description>
Gets the buffer this mark is located inside.


</description>
<parameters>
<parameter name="mark">
<parameter_description> a `GtkTextMark`
</parameter_description>
</parameter>
</parameters>
<return> the mark’s `GtkTextBuffer`
</return>
</function>

<function name="gtk_text_mark_get_deleted">
<description>
Returns %TRUE if the mark has been removed from its buffer.

See [method@Gtk.TextBuffer.add_mark] for a way to add it
to a buffer again.


</description>
<parameters>
<parameter name="mark">
<parameter_description> a `GtkTextMark`
</parameter_description>
</parameter>
</parameters>
<return> whether the mark is deleted
</return>
</function>

<function name="gtk_text_mark_get_left_gravity">
<description>
Determines whether the mark has left gravity.


</description>
<parameters>
<parameter name="mark">
<parameter_description> a `GtkTextMark`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the mark has left gravity, %FALSE otherwise
</return>
</function>

<function name="gtk_text_mark_get_name">
<description>
Returns the mark name.


</description>
<parameters>
<parameter name="mark">
<parameter_description> a `GtkTextMark`
</parameter_description>
</parameter>
</parameters>
<return> mark name
</return>
</function>

<function name="gtk_text_mark_get_visible">
<description>
Returns %TRUE if the mark is visible.

A cursor is displayed for visible marks.


</description>
<parameters>
<parameter name="mark">
<parameter_description> a `GtkTextMark`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if visible
</return>
</function>

<function name="gtk_text_mark_new">
<description>
Creates a text mark.

Add it to a buffer using [method@Gtk.TextBuffer.add_mark].
If @name is %NULL, the mark is anonymous; otherwise, the mark can be
retrieved by name using [method@Gtk.TextBuffer.get_mark]. If a mark
has left gravity, and text is inserted at the mark’s current location,
the mark will be moved to the left of the newly-inserted text. If the
mark has right gravity (@left_gravity = %FALSE), the mark will end up
on the right of newly-inserted text. The standard left-to-right cursor
is a mark with right gravity (when you type, the cursor stays on the
right side of the text you’re typing).


</description>
<parameters>
<parameter name="name">
<parameter_description> mark name
</parameter_description>
</parameter>
<parameter name="left_gravity">
<parameter_description> whether the mark should have left gravity
</parameter_description>
</parameter>
</parameters>
<return> new `GtkTextMark`
</return>
</function>

<function name="gtk_text_mark_set_visible">
<description>
Sets the visibility of @mark.

The insertion point is normally visible, i.e. you can see it as
a vertical bar. Also, the text widget uses a visible mark to
indicate where a drop will occur when dragging-and-dropping text.
Most other marks are not visible.

Marks are not visible by default.

</description>
<parameters>
<parameter name="mark">
<parameter_description> a GtkTextMark
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> visibility of mark
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_new">
<description>
Creates a new `GtkText`.


</description>
<parameters>
</parameters>
<return> a new `GtkText`.
</return>
</function>

<function name="gtk_text_new_with_buffer">
<description>
Creates a new `GtkText` with the specified text buffer.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> The buffer to use for the new `GtkText`.
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkText`
</return>
</function>

<function name="gtk_text_set_activates_default">
<description>
If @activates is %TRUE, pressing Enter will activate
the default widget for the window containing @self.

This usually means that the dialog containing the `GtkText`
will be closed, since the default widget is usually one of
the dialog buttons.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
<parameter name="activates">
<parameter_description> %TRUE to activate window’s default widget on Enter keypress
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_set_attributes">
<description>
Sets attributes that are applied to the text.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
<parameter name="attrs">
<parameter_description> a `PangoAttrList`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_set_buffer">
<description>
Set the `GtkEntryBuffer` object which holds the text for
this widget.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> a `GtkEntryBuffer`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_set_enable_emoji_completion">
<description>
Sets whether Emoji completion is enabled.

If it is, typing ':', followed by a recognized keyword,
will pop up a window with suggested Emojis matching the
keyword.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
<parameter name="enable_emoji_completion">
<parameter_description> %TRUE to enable Emoji completion
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_set_extra_menu">
<description>
Sets a menu model to add when constructing
the context menu for @self.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a `GMenuModel`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_set_input_hints">
<description>
Sets input hints that allow input methods
to fine-tune their behaviour.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
<parameter name="hints">
<parameter_description> the hints
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_set_input_purpose">
<description>
Sets the input purpose of the `GtkText`.

This can be used by on-screen keyboards and other
input methods to adjust their behaviour.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
<parameter name="purpose">
<parameter_description> the purpose
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_set_invisible_char">
<description>
Sets the character to use when in “password mode”.

By default, GTK picks the best invisible char available in the
current font. If you set the invisible char to 0, then the user
will get no feedback at all; there will be no text on the screen
as they type.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
<parameter name="ch">
<parameter_description> a Unicode character
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_set_max_length">
<description>
Sets the maximum allowed length of the contents of the widget.

If the current contents are longer than the given length, then
they will be truncated to fit.

This is equivalent to getting @self's `GtkEntryBuffer` and
calling [method@Gtk.EntryBuffer.set_max_length] on it.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> the maximum length of the `GtkText`, or 0 for no maximum.
(other than the maximum length of entries.) The value passed
in will be clamped to the range 0-65536.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_set_overwrite_mode">
<description>
Sets whether the text is overwritten when typing
in the `GtkText`.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
<parameter name="overwrite">
<parameter_description> new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_set_placeholder_text">
<description>
Sets text to be displayed in @self when it is empty.

This can be used to give a visual hint of the expected
contents of the `GtkText`.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> a string to be displayed when @self
is empty and unfocused
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_set_propagate_text_width">
<description>
Sets whether the `GtkText` should grow and shrink with the content.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
<parameter name="propagate_text_width">
<parameter_description> %TRUE to propagate the text width
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_set_tabs">
<description>
Sets tabstops that are applied to the text.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
<parameter name="tabs">
<parameter_description> a `PangoTabArray`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_set_truncate_multiline">
<description>
Sets whether the `GtkText` should truncate multi-line text
that is pasted into the widget.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
<parameter name="truncate_multiline">
<parameter_description> %TRUE to truncate multi-line text
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_set_visibility">
<description>
Sets whether the contents of the `GtkText` are visible or not.

When visibility is set to %FALSE, characters are displayed
as the invisible char, and will also appear that way when
the text in the widget is copied to the clipboard.

By default, GTK picks the best invisible character available
in the current font, but it can be changed with
[method@Gtk.Text.set_invisible_char].

Note that you probably want to set [property@Gtk.Text:input-purpose]
to %GTK_INPUT_PURPOSE_PASSWORD or %GTK_INPUT_PURPOSE_PIN to
inform input methods about the purpose of this self,
in addition to setting visibility to %FALSE.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
<parameter name="visible">
<parameter_description> %TRUE if the contents of the `GtkText` are displayed
as plaintext
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_tag_changed">
<description>
Emits the [signal@Gtk.TextTagTable::tag-changed] signal on the
`GtkTextTagTable` where the tag is included.

The signal is already emitted when setting a `GtkTextTag` property.
This function is useful for a `GtkTextTag` subclass.

</description>
<parameters>
<parameter name="tag">
<parameter_description> a `GtkTextTag`
</parameter_description>
</parameter>
<parameter name="size_changed">
<parameter_description> whether the change affects the `GtkTextView` layout
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_tag_get_priority">
<description>
Get the tag priority.


</description>
<parameters>
<parameter name="tag">
<parameter_description> a `GtkTextTag`
</parameter_description>
</parameter>
</parameters>
<return> The tag’s priority.
</return>
</function>

<function name="gtk_text_tag_new">
<description>
Creates a `GtkTextTag`.


</description>
<parameters>
<parameter name="name">
<parameter_description> tag name
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkTextTag`
</return>
</function>

<function name="gtk_text_tag_set_priority">
<description>
Sets the priority of a `GtkTextTag`.

Valid priorities start at 0 and go to one less than
[method@Gtk.TextTagTable.get_size]. Each tag in a table
has a unique priority; setting the priority of one tag shifts
the priorities of all the other tags in the table to maintain
a unique priority for each tag.

Higher priority tags “win” if two tags both set the same text
attribute. When adding a tag to a tag table, it will be assigned
the highest priority in the table by default; so normally the
precedence of a set of tags is the order in which they were added
to the table, or created with [method@Gtk.TextBuffer.create_tag],
which adds the tag to the buffer’s table automatically.

</description>
<parameters>
<parameter name="tag">
<parameter_description> a `GtkTextTag`
</parameter_description>
</parameter>
<parameter name="priority">
<parameter_description> the new priority
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_tag_table_add">
<description>
Add a tag to the table.

The tag is assigned the highest priority in the table.

@tag must not be in a tag table already, and may not have
the same name as an already-added tag.


</description>
<parameters>
<parameter name="table">
<parameter_description> a `GtkTextTagTable`
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> a `GtkTextTag`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success.
</return>
</function>

<function name="gtk_text_tag_table_foreach">
<description>
Calls @func on each tag in @table, with user data @data.

Note that the table may not be modified while iterating
over it (you can’t add/remove tags).

</description>
<parameters>
<parameter name="table">
<parameter_description> a `GtkTextTagTable`
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> a function to call on each tag
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> user data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_tag_table_get_size">
<description>
Returns the size of the table (number of tags)


</description>
<parameters>
<parameter name="table">
<parameter_description> a `GtkTextTagTable`
</parameter_description>
</parameter>
</parameters>
<return> number of tags in @table
</return>
</function>

<function name="gtk_text_tag_table_lookup">
<description>
Look up a named tag.


</description>
<parameters>
<parameter name="table">
<parameter_description> a `GtkTextTagTable`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name of a tag
</parameter_description>
</parameter>
</parameters>
<return> The tag
</return>
</function>

<function name="gtk_text_tag_table_new">
<description>
Creates a new `GtkTextTagTable`.

The table contains no tags by default.


</description>
<parameters>
</parameters>
<return> a new `GtkTextTagTable`
</return>
</function>

<function name="gtk_text_tag_table_remove">
<description>
Remove a tag from the table.

If a `GtkTextBuffer` has @table as its tag table, the tag is
removed from the buffer. The table’s reference to the tag is
removed, so the tag will end up destroyed if you don’t have
a reference to it.

</description>
<parameters>
<parameter name="table">
<parameter_description> a `GtkTextTagTable`
</parameter_description>
</parameter>
<parameter name="tag">
<parameter_description> a `GtkTextTag`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_unset_invisible_char">
<description>
Unsets the invisible char.

After calling this, the default invisible
char is used again.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkText`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_util_create_drag_icon">
<description>
Creates a drag and drop icon from @text.


</description>
<parameters>
<parameter name="widget">
<parameter_description> `GtkWidget` to extract the pango context
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> a #char to render the icon
</parameter_description>
</parameter>
<parameter name="len">
<parameter_description> length of @text, or -1 for NUL-terminated text
</parameter_description>
</parameter>
</parameters>
<return> a `GdkPaintable` to use as DND icon
</return>
</function>

<function name="gtk_text_view_add_child_at_anchor">
<description>
Adds a child widget in the text buffer, at the given @anchor.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="anchor">
<parameter_description> a `GtkTextChildAnchor` in the `GtkTextBuffer` for @text_view
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_add_overlay">
<description>
Adds @child at a fixed coordinate in the `GtkTextView`'s text window.

The @xpos and @ypos must be in buffer coordinates (see
[method@Gtk.TextView.get_iter_location] to convert to
buffer coordinates).

@child will scroll with the text view.

If instead you want a widget that will not move with the
`GtkTextView` contents see `GtkOverlay`.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="xpos">
<parameter_description> X position of child in window coordinates
</parameter_description>
</parameter>
<parameter name="ypos">
<parameter_description> Y position of child in window coordinates
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_backward_display_line">
<description>
Moves the given @iter backward by one display (wrapped) line.

A display line is different from a paragraph. Paragraphs are
separated by newlines or other paragraph separator characters.
Display lines are created by line-wrapping a paragraph. If
wrapping is turned off, display lines and paragraphs will be the
same. Display lines are divided differently for each view, since
they depend on the view’s width; paragraphs are the same in all
views, since they depend on the contents of the `GtkTextBuffer`.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter was moved and is not on the end iterator
</return>
</function>

<function name="gtk_text_view_backward_display_line_start">
<description>
Moves the given @iter backward to the next display line start.

A display line is different from a paragraph. Paragraphs are
separated by newlines or other paragraph separator characters.
Display lines are created by line-wrapping a paragraph. If
wrapping is turned off, display lines and paragraphs will be the
same. Display lines are divided differently for each view, since
they depend on the view’s width; paragraphs are the same in all
views, since they depend on the contents of the `GtkTextBuffer`.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter was moved and is not on the end iterator
</return>
</function>

<function name="gtk_text_view_buffer_to_window_coords">
<description>
Converts buffer coordinates to window coordinates.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="win">
<parameter_description> a `GtkTextWindowType`
</parameter_description>
</parameter>
<parameter name="buffer_x">
<parameter_description> buffer x coordinate
</parameter_description>
</parameter>
<parameter name="buffer_y">
<parameter_description> buffer y coordinate
</parameter_description>
</parameter>
<parameter name="window_x">
<parameter_description> window x coordinate return location
</parameter_description>
</parameter>
<parameter name="window_y">
<parameter_description> window y coordinate return location
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_forward_display_line">
<description>
Moves the given @iter forward by one display (wrapped) line.

A display line is different from a paragraph. Paragraphs are
separated by newlines or other paragraph separator characters.
Display lines are created by line-wrapping a paragraph. If
wrapping is turned off, display lines and paragraphs will be the
same. Display lines are divided differently for each view, since
they depend on the view’s width; paragraphs are the same in all
views, since they depend on the contents of the `GtkTextBuffer`.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter was moved and is not on the end iterator
</return>
</function>

<function name="gtk_text_view_forward_display_line_end">
<description>
Moves the given @iter forward to the next display line end.

A display line is different from a paragraph. Paragraphs are
separated by newlines or other paragraph separator characters.
Display lines are created by line-wrapping a paragraph. If
wrapping is turned off, display lines and paragraphs will be the
same. Display lines are divided differently for each view, since
they depend on the view’s width; paragraphs are the same in all
views, since they depend on the contents of the `GtkTextBuffer`.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter was moved and is not on the end iterator
</return>
</function>

<function name="gtk_text_view_get_accepts_tab">
<description>
Returns whether pressing the &lt;kbd&gt;Tab&lt;/kbd&gt; key inserts a tab characters.

See [method@Gtk.TextView.set_accepts_tab].


</description>
<parameters>
<parameter name="text_view">
<parameter_description> A `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if pressing the Tab key inserts a tab character,
%FALSE if pressing the Tab key moves the keyboard focus.
</return>
</function>

<function name="gtk_text_view_get_bottom_margin">
<description>
Gets the bottom margin for text in the @text_view.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> bottom margin in pixels
</return>
</function>

<function name="gtk_text_view_get_buffer">
<description>
Returns the `GtkTextBuffer` being displayed by this text view.

The reference count on the buffer is not incremented; the caller
of this function won’t own a new reference.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkTextBuffer`
</return>
</function>

<function name="gtk_text_view_get_cursor_locations">
<description>
Determine the positions of the strong and weak cursors if the
insertion point is at @iter.

The position of each cursor is stored as a zero-width rectangle.
The strong cursor location is the location where characters of
the directionality equal to the base direction of the paragraph
are inserted. The weak cursor location is the location where
characters of the directionality opposite to the base direction
of the paragraph are inserted.

If @iter is %NULL, the actual cursor position is used.

Note that if @iter happens to be the actual cursor position, and
there is currently an IM preedit sequence being entered, the
returned locations will be adjusted to account for the preedit
cursor’s offset within the preedit sequence.

The rectangle position is in buffer coordinates; use
[method@Gtk.TextView.buffer_to_window_coords] to convert these
coordinates to coordinates for one of the windows in the text view.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="strong">
<parameter_description> location to store the strong cursor position
</parameter_description>
</parameter>
<parameter name="weak">
<parameter_description> location to store the weak cursor position
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_get_cursor_visible">
<description>
Find out whether the cursor should be displayed.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> whether the insertion mark is visible
</return>
</function>

<function name="gtk_text_view_get_editable">
<description>
Returns the default editability of the `GtkTextView`.

Tags in the buffer may override this setting for some ranges of text.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> whether text is editable by default
</return>
</function>

<function name="gtk_text_view_get_extra_menu">
<description>
Gets the menu model that gets added to the context menu
or %NULL if none has been set.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> the menu model
</return>
</function>

<function name="gtk_text_view_get_gutter">
<description>
Gets a `GtkWidget` that has previously been set as gutter.

See [method@Gtk.TextView.set_gutter].

@win must be one of %GTK_TEXT_WINDOW_LEFT, %GTK_TEXT_WINDOW_RIGHT,
%GTK_TEXT_WINDOW_TOP, or %GTK_TEXT_WINDOW_BOTTOM.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="win">
<parameter_description> a `GtkTextWindowType`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkWidget`
</return>
</function>

<function name="gtk_text_view_get_indent">
<description>
Gets the default indentation of paragraphs in @text_view.

Tags in the view’s buffer may override the default.
The indentation may be negative.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> number of pixels of indentation
</return>
</function>

<function name="gtk_text_view_get_input_hints">
<description>
Gets the `input-hints` of the `GtkTextView`.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_get_input_purpose">
<description>
Gets the `input-purpose` of the `GtkTextView`.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_get_iter_at_location">
<description>
Retrieves the iterator at buffer coordinates @x and @y.

Buffer coordinates are coordinates for the entire buffer, not just
the currently-displayed portion. If you have coordinates from an
event, you have to convert those to buffer coordinates with
[method@Gtk.TextView.window_to_buffer_coords].


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> x position, in buffer coordinates
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> y position, in buffer coordinates
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the position is over text
</return>
</function>

<function name="gtk_text_view_get_iter_at_position">
<description>
Retrieves the iterator pointing to the character at buffer
coordinates @x and @y.

Buffer coordinates are coordinates for the entire buffer, not just
the currently-displayed portion. If you have coordinates from an event,
you have to convert those to buffer coordinates with
[method@Gtk.TextView.window_to_buffer_coords].

Note that this is different from [method@Gtk.TextView.get_iter_at_location],
which returns cursor locations, i.e. positions between characters.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="trailing">
<parameter_description> if non-%NULL, location to store
an integer indicating where in the grapheme the user clicked.
It will either be zero, or the number of characters in the grapheme.
0 represents the trailing edge of the grapheme.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> x position, in buffer coordinates
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> y position, in buffer coordinates
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the position is over text
</return>
</function>

<function name="gtk_text_view_get_iter_location">
<description>
Gets a rectangle which roughly contains the character at @iter.

The rectangle position is in buffer coordinates; use
[method@Gtk.TextView.buffer_to_window_coords] to convert these
coordinates to coordinates for one of the windows in the text view.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="location">
<parameter_description> bounds of the character at @iter
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_get_justification">
<description>
Gets the default justification of paragraphs in @text_view.

Tags in the buffer may override the default.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> default justification
</return>
</function>

<function name="gtk_text_view_get_left_margin">
<description>
Gets the default left margin size of paragraphs in the @text_view.

Tags in the buffer may override the default.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> left margin in pixels
</return>
</function>

<function name="gtk_text_view_get_line_at_y">
<description>
Gets the `GtkTextIter` at the start of the line containing
the coordinate @y.

@y is in buffer coordinates, convert from window coordinates with
[method@Gtk.TextView.window_to_buffer_coords]. If non-%NULL,
@line_top will be filled with the coordinate of the top edge
of the line.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="target_iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> a y coordinate
</parameter_description>
</parameter>
<parameter name="line_top">
<parameter_description> return location for top coordinate of the line
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_get_line_yrange">
<description>
Gets the y coordinate of the top of the line containing @iter,
and the height of the line.

The coordinate is a buffer coordinate; convert to window
coordinates with [method@Gtk.TextView.buffer_to_window_coords].

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> return location for a y coordinate
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> return location for a height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_get_ltr_context">
<description>
Gets the `PangoContext` that is used for rendering LTR directed
text layouts.

The context may be replaced when CSS changes occur.

Since: 4.4

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> a `PangoContext`

</return>
</function>

<function name="gtk_text_view_get_monospace">
<description>
Gets whether the `GtkTextView` uses monospace styling.

Return: %TRUE if monospace fonts are desired

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_get_overwrite">
<description>
Returns whether the `GtkTextView` is in overwrite mode or not.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> whether @text_view is in overwrite mode or not.
</return>
</function>

<function name="gtk_text_view_get_pixels_above_lines">
<description>
Gets the default number of pixels to put above paragraphs.

Adding this function with [method@Gtk.TextView.get_pixels_below_lines]
is equal to the line space between each paragraph.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> default number of pixels above paragraphs
</return>
</function>

<function name="gtk_text_view_get_pixels_below_lines">
<description>
Gets the default number of pixels to put below paragraphs.

The line space is the sum of the value returned by this function and
the value returned by [method@Gtk.TextView.get_pixels_above_lines].


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> default number of blank pixels below paragraphs
</return>
</function>

<function name="gtk_text_view_get_pixels_inside_wrap">
<description>
Gets the default number of pixels to put between wrapped lines
inside a paragraph.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> default number of pixels of blank space between wrapped lines
</return>
</function>

<function name="gtk_text_view_get_right_margin">
<description>
Gets the default right margin for text in @text_view.

Tags in the buffer may override the default.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> right margin in pixels
</return>
</function>

<function name="gtk_text_view_get_rtl_context">
<description>
Gets the `PangoContext` that is used for rendering RTL directed
text layouts.

The context may be replaced when CSS changes occur.

Since: 4.4

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> a `PangoContext`

</return>
</function>

<function name="gtk_text_view_get_tabs">
<description>
Gets the default tabs for @text_view.

Tags in the buffer may override the defaults. The returned array
will be %NULL if “standard” (8-space) tabs are used. Free the
return value with [method@Pango.TabArray.free].


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> copy of default tab array,
or %NULL if standard tabs are used; must be freed with
[method@Pango.TabArray.free].
</return>
</function>

<function name="gtk_text_view_get_top_margin">
<description>
Gets the top margin for text in the @text_view.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> top margin in pixels
</return>
</function>

<function name="gtk_text_view_get_visible_rect">
<description>
Fills @visible_rect with the currently-visible
region of the buffer, in buffer coordinates.

Convert to window coordinates with
[method@Gtk.TextView.buffer_to_window_coords].

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="visible_rect">
<parameter_description> rectangle to fill
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_get_wrap_mode">
<description>
Gets the line wrapping for the view.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> the line wrap setting
</return>
</function>

<function name="gtk_text_view_im_context_filter_keypress">
<description>
Allow the `GtkTextView` input method to internally handle key press
and release events.

If this function returns %TRUE, then no further processing should be
done for this key event. See [method@Gtk.IMContext.filter_keypress].

Note that you are expected to call this function from your handler
when overriding key event handling. This is needed in the case when
you need to insert your own key handling between the input method
and the default key event handling of the `GtkTextView`.

```c
static gboolean
gtk_foo_bar_key_press_event (GtkWidget *widget,
GdkEvent  *event)
{
guint keyval;

gdk_event_get_keyval ((GdkEvent*)event, &amp;keyval);

if (keyval == GDK_KEY_Return || keyval == GDK_KEY_KP_Enter)
{
if (gtk_text_view_im_context_filter_keypress (GTK_TEXT_VIEW (widget), event))
return TRUE;
}

// Do some stuff

return GTK_WIDGET_CLASS (gtk_foo_bar_parent_class)-&gt;key_press_event (widget, event);
}
```


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> the key event
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the input method handled the key event.
</return>
</function>

<function name="gtk_text_view_move_mark_onscreen">
<description>
Moves a mark within the buffer so that it's
located within the currently-visible text area.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="mark">
<parameter_description> a `GtkTextMark`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the mark moved (wasn’t already onscreen)
</return>
</function>

<function name="gtk_text_view_move_overlay">
<description>
Updates the position of a child.

See [method@Gtk.TextView.add_overlay].

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a widget already added with [method@Gtk.TextView.add_overlay]
</parameter_description>
</parameter>
<parameter name="xpos">
<parameter_description> new X position in buffer coordinates
</parameter_description>
</parameter>
<parameter name="ypos">
<parameter_description> new Y position in buffer coordinates
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_move_visually">
<description>
Move the iterator a given number of characters visually, treating
it as the strong cursor position.

If @count is positive, then the new strong cursor position will
be @count positions to the right of the old cursor position.
If @count is negative then the new strong cursor position will
be @count positions to the left of the old cursor position.

In the presence of bi-directional text, the correspondence
between logical and visual order will depend on the direction
of the current run, and there may be jumps when the cursor
is moved off of the end of a run.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> number of characters to move (negative moves left,
positive moves right)
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter moved and is not on the end iterator
</return>
</function>

<function name="gtk_text_view_new">
<description>
Creates a new `GtkTextView`.

If you don’t call [method@Gtk.TextView.set_buffer] before using the
text view, an empty default buffer will be created for you. Get the
buffer with [method@Gtk.TextView.get_buffer]. If you want to specify
your own buffer, consider [ctor@Gtk.TextView.new_with_buffer].


</description>
<parameters>
</parameters>
<return> a new `GtkTextView`
</return>
</function>

<function name="gtk_text_view_new_with_buffer">
<description>
Creates a new `GtkTextView` widget displaying the buffer @buffer.

One buffer can be shared among many widgets. @buffer may be %NULL
to create a default buffer, in which case this function is equivalent
to [ctor@Gtk.TextView.new]. The text view adds its own reference count
to the buffer; it does not take over an existing reference.


</description>
<parameters>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkTextView`.
</return>
</function>

<function name="gtk_text_view_place_cursor_onscreen">
<description>
Moves the cursor to the currently visible region of the
buffer.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the cursor had to be moved.
</return>
</function>

<function name="gtk_text_view_remove">
<description>
Removes a child widget from @text_view.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_reset_cursor_blink">
<description>
Ensures that the cursor is shown.

This also resets the time that it will stay blinking (or
visible, in case blinking is disabled).

This function should be called in response to user input
(e.g. from derived classes that override the textview's
event handlers).

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_reset_im_context">
<description>
Reset the input method context of the text view if needed.

This can be necessary in the case where modifying the buffer
would confuse on-going input method behavior.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_scroll_mark_onscreen">
<description>
Scrolls @text_view the minimum distance such that @mark is contained
within the visible area of the widget.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="mark">
<parameter_description> a mark in the buffer for @text_view
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_scroll_to_iter">
<description>
Scrolls @text_view so that @iter is on the screen in the position
indicated by @xalign and @yalign.

An alignment of 0.0 indicates left or top, 1.0 indicates right or
bottom, 0.5 means center. If @use_align is %FALSE, the text scrolls
the minimal distance to get the mark onscreen, possibly not scrolling
at all. The effective screen for purposes of this function is reduced
by a margin of size @within_margin.

Note that this function uses the currently-computed height of the
lines in the text buffer. Line heights are computed in an idle
handler; so this function may not have the desired effect if it’s
called before the height computations. To avoid oddness, consider
using [method@Gtk.TextView.scroll_to_mark] which saves a point to be
scrolled to after line validation.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
<parameter name="within_margin">
<parameter_description> margin as a [0.0,0.5) fraction of screen size
</parameter_description>
</parameter>
<parameter name="use_align">
<parameter_description> whether to use alignment arguments (if %FALSE,
just get the mark onscreen)
</parameter_description>
</parameter>
<parameter name="xalign">
<parameter_description> horizontal alignment of mark within visible area
</parameter_description>
</parameter>
<parameter name="yalign">
<parameter_description> vertical alignment of mark within visible area
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if scrolling occurred
</return>
</function>

<function name="gtk_text_view_scroll_to_mark">
<description>
Scrolls @text_view so that @mark is on the screen in the position
indicated by @xalign and @yalign.

An alignment of 0.0 indicates left or top, 1.0 indicates right or
bottom, 0.5 means center. If @use_align is %FALSE, the text scrolls
the minimal distance to get the mark onscreen, possibly not scrolling
at all. The effective screen for purposes of this function is reduced
by a margin of size @within_margin.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="mark">
<parameter_description> a `GtkTextMark`
</parameter_description>
</parameter>
<parameter name="within_margin">
<parameter_description> margin as a [0.0,0.5) fraction of screen size
</parameter_description>
</parameter>
<parameter name="use_align">
<parameter_description> whether to use alignment arguments (if %FALSE, just
get the mark onscreen)
</parameter_description>
</parameter>
<parameter name="xalign">
<parameter_description> horizontal alignment of mark within visible area
</parameter_description>
</parameter>
<parameter name="yalign">
<parameter_description> vertical alignment of mark within visible area
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_accepts_tab">
<description>
Sets the behavior of the text widget when the &lt;kbd&gt;Tab&lt;/kbd&gt; key is pressed.

If @accepts_tab is %TRUE, a tab character is inserted. If @accepts_tab
is %FALSE the keyboard focus is moved to the next widget in the focus
chain.

Focus can always be moved using &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Tab&lt;/kbd&gt;.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> A `GtkTextView`
</parameter_description>
</parameter>
<parameter name="accepts_tab">
<parameter_description> %TRUE if pressing the Tab key should insert a tab
character, %FALSE, if pressing the Tab key should move the
keyboard focus.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_bottom_margin">
<description>
Sets the bottom margin for text in @text_view.

Note that this function is confusingly named.
In CSS terms, the value set here is padding.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="bottom_margin">
<parameter_description> bottom margin in pixels
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_buffer">
<description>
Sets @buffer as the buffer being displayed by @text_view.

The previous buffer displayed by the text view is unreferenced, and
a reference is added to @buffer. If you owned a reference to @buffer
before passing it to this function, you must remove that reference
yourself; `GtkTextView` will not “adopt” it.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="buffer">
<parameter_description> a `GtkTextBuffer`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_cursor_visible">
<description>
Toggles whether the insertion point should be displayed.

A buffer with no editable text probably shouldn’t have a visible
cursor, so you may want to turn the cursor off.

Note that this property may be overridden by the
[property@Gtk.Settings:gtk-keynav-use-caret] setting.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> whether to show the insertion cursor
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_editable">
<description>
Sets the default editability of the `GtkTextView`.

You can override this default setting with tags in the buffer,
using the “editable” attribute of tags.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> whether it’s editable
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_extra_menu">
<description>
Sets a menu model to add when constructing the context
menu for @text_view.

You can pass %NULL to remove a previously set extra menu.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a `GMenuModel`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_gutter">
<description>
Places @widget into the gutter specified by @win.

@win must be one of %GTK_TEXT_WINDOW_LEFT, %GTK_TEXT_WINDOW_RIGHT,
%GTK_TEXT_WINDOW_TOP, or %GTK_TEXT_WINDOW_BOTTOM.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="win">
<parameter_description> a `GtkTextWindowType`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_indent">
<description>
Sets the default indentation for paragraphs in @text_view.

Tags in the buffer may override the default.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="indent">
<parameter_description> indentation in pixels
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_input_hints">
<description>
Sets the `input-hints` of the `GtkTextView`.

The `input-hints` allow input methods to fine-tune
their behaviour.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="hints">
<parameter_description> the hints
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_input_purpose">
<description>
Sets the `input-purpose` of the `GtkTextView`.

The `input-purpose` can be used by on-screen keyboards
and other input methods to adjust their behaviour.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="purpose">
<parameter_description> the purpose
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_justification">
<description>
Sets the default justification of text in @text_view.

Tags in the view’s buffer may override the default.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="justification">
<parameter_description> justification
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_left_margin">
<description>
Sets the default left margin for text in @text_view.

Tags in the buffer may override the default.

Note that this function is confusingly named.
In CSS terms, the value set here is padding.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="left_margin">
<parameter_description> left margin in pixels
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_monospace">
<description>
Sets whether the `GtkTextView` should display text in
monospace styling.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="monospace">
<parameter_description> %TRUE to request monospace styling
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_overwrite">
<description>
Changes the `GtkTextView` overwrite mode.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="overwrite">
<parameter_description> %TRUE to turn on overwrite mode, %FALSE to turn it off
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_pixels_above_lines">
<description>
Sets the default number of blank pixels above paragraphs in @text_view.

Tags in the buffer for @text_view may override the defaults.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="pixels_above_lines">
<parameter_description> pixels above paragraphs
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_pixels_below_lines">
<description>
Sets the default number of pixels of blank space
to put below paragraphs in @text_view.

May be overridden by tags applied to @text_view’s buffer.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="pixels_below_lines">
<parameter_description> pixels below paragraphs
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_pixels_inside_wrap">
<description>
Sets the default number of pixels of blank space to leave between
display/wrapped lines within a paragraph.

May be overridden by tags in @text_view’s buffer.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="pixels_inside_wrap">
<parameter_description> default number of pixels between wrapped lines
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_right_margin">
<description>
Sets the default right margin for text in the text view.

Tags in the buffer may override the default.

Note that this function is confusingly named.
In CSS terms, the value set here is padding.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="right_margin">
<parameter_description> right margin in pixels
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_tabs">
<description>
Sets the default tab stops for paragraphs in @text_view.

Tags in the buffer may override the default.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="tabs">
<parameter_description> tabs as a `PangoTabArray`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_top_margin">
<description>
Sets the top margin for text in @text_view.

Note that this function is confusingly named.
In CSS terms, the value set here is padding.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="top_margin">
<parameter_description> top margin in pixels
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_set_wrap_mode">
<description>
Sets the line wrapping for the view.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="wrap_mode">
<parameter_description> a `GtkWrapMode`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_text_view_starts_display_line">
<description>
Determines whether @iter is at the start of a display line.

See [method@Gtk.TextView.forward_display_line] for an
explanation of display lines vs. paragraphs.


</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTextIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter begins a wrapped line
</return>
</function>

<function name="gtk_text_view_window_to_buffer_coords">
<description>
Converts coordinates on the window identified by @win to buffer
coordinates.

</description>
<parameters>
<parameter name="text_view">
<parameter_description> a `GtkTextView`
</parameter_description>
</parameter>
<parameter name="win">
<parameter_description> a `GtkTextWindowType`
</parameter_description>
</parameter>
<parameter name="window_x">
<parameter_description> window x coordinate
</parameter_description>
</parameter>
<parameter name="window_y">
<parameter_description> window y coordinate
</parameter_description>
</parameter>
<parameter name="buffer_x">
<parameter_description> buffer x coordinate return location
</parameter_description>
</parameter>
<parameter name="buffer_y">
<parameter_description> buffer y coordinate return location
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_toggle_button_get_active">
<description>
Queries a `GtkToggleButton` and returns its current state.


</description>
<parameters>
<parameter name="toggle_button">
<parameter_description> a `GtkToggleButton`.
</parameter_description>
</parameter>
</parameters>
<return> whether the button is pressed
</return>
</function>

<function name="gtk_toggle_button_new">
<description>
Creates a new toggle button.

A widget should be packed into the button, as in [ctor@Gtk.Button.new].


</description>
<parameters>
</parameters>
<return> a new toggle button.
</return>
</function>

<function name="gtk_toggle_button_new_with_label">
<description>
Creates a new toggle button with a text label.


</description>
<parameters>
<parameter name="label">
<parameter_description> a string containing the message to be placed in the toggle button.
</parameter_description>
</parameter>
</parameters>
<return> a new toggle button.
</return>
</function>

<function name="gtk_toggle_button_new_with_mnemonic">
<description>
Creates a new `GtkToggleButton` containing a label.

The label will be created using [ctor@Gtk.Label.new_with_mnemonic],
so underscores in @label indicate the mnemonic for the button.


</description>
<parameters>
<parameter name="label">
<parameter_description> the text of the button, with an underscore in front of the
mnemonic character
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkToggleButton`
</return>
</function>

<function name="gtk_toggle_button_set_active">
<description>
Sets the status of the toggle button.

Set to %TRUE if you want the `GtkToggleButton` to be “pressed in”,
and %FALSE to raise it.

If the status of the button changes, this action causes the
[signal@Gtk.ToggleButton::toggled] signal to be emitted.

</description>
<parameters>
<parameter name="toggle_button">
<parameter_description> a `GtkToggleButton`.
</parameter_description>
</parameter>
<parameter name="is_active">
<parameter_description> %TRUE or %FALSE.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_toggle_button_set_group">
<description>
Adds @self to the group of @group.

In a group of multiple toggle buttons, only one button can be active
at a time.

Setting up groups in a cycle leads to undefined behavior.

Note that the same effect can be achieved via the [iface@Gtk.Actionable]
API, by using the same action with parameter type and state type 's'
for all buttons in the group, and giving each button its own target
value.

</description>
<parameters>
<parameter name="toggle_button">
<parameter_description> a `GtkToggleButton`
</parameter_description>
</parameter>
<parameter name="group">
<parameter_description> another `GtkToggleButton` to
form a group with
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_toggle_button_toggled">
<description>
Emits the ::toggled signal on the `GtkToggleButton`.

Deprecated: 4.10: There is no good reason for an application ever to call this function.

</description>
<parameters>
<parameter name="toggle_button">
<parameter_description> a `GtkToggleButton`.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tooltip_set_custom">
<description>
Replaces the widget packed into the tooltip with
@custom_widget. @custom_widget does not get destroyed when the tooltip goes
away.
By default a box with a `GtkImage` and `GtkLabel` is embedded in
the tooltip, which can be configured using gtk_tooltip_set_markup()
and gtk_tooltip_set_icon().

</description>
<parameters>
<parameter name="tooltip">
<parameter_description> a `GtkTooltip`
</parameter_description>
</parameter>
<parameter name="custom_widget">
<parameter_description> a `GtkWidget`, or %NULL to unset the old custom widget.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tooltip_set_icon">
<description>
Sets the icon of the tooltip (which is in front of the text) to be
@paintable.  If @paintable is %NULL, the image will be hidden.

</description>
<parameters>
<parameter name="tooltip">
<parameter_description> a `GtkTooltip`
</parameter_description>
</parameter>
<parameter name="paintable">
<parameter_description> a `GdkPaintable`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tooltip_set_icon_from_gicon">
<description>
Sets the icon of the tooltip (which is in front of the text)
to be the icon indicated by @gicon with the size indicated
by @size. If @gicon is %NULL, the image will be hidden.

</description>
<parameters>
<parameter name="tooltip">
<parameter_description> a `GtkTooltip`
</parameter_description>
</parameter>
<parameter name="gicon">
<parameter_description> a `GIcon` representing the icon
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tooltip_set_icon_from_icon_name">
<description>
Sets the icon of the tooltip (which is in front of the text) to be
the icon indicated by @icon_name with the size indicated
by @size.  If @icon_name is %NULL, the image will be hidden.

</description>
<parameters>
<parameter name="tooltip">
<parameter_description> a `GtkTooltip`
</parameter_description>
</parameter>
<parameter name="icon_name">
<parameter_description> an icon name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tooltip_set_markup">
<description>
Sets the text of the tooltip to be @markup.

The string must be marked up with Pango markup.
If @markup is %NULL, the label will be hidden.

</description>
<parameters>
<parameter name="tooltip">
<parameter_description> a `GtkTooltip`
</parameter_description>
</parameter>
<parameter name="markup">
<parameter_description> a string with Pango markup or %NLL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tooltip_set_text">
<description>
Sets the text of the tooltip to be @text.

If @text is %NULL, the label will be hidden.
See also [method@Gtk.Tooltip.set_markup].

</description>
<parameters>
<parameter name="tooltip">
<parameter_description> a `GtkTooltip`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> a text string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tooltip_set_tip_area">
<description>
Sets the area of the widget, where the contents of this tooltip apply,
to be @rect (in widget coordinates).  This is especially useful for
properly setting tooltips on `GtkTreeView` rows and cells, `GtkIconViews`,
etc.

For setting tooltips on `GtkTreeView`, please refer to the convenience
functions for this: gtk_tree_view_set_tooltip_row() and
gtk_tree_view_set_tooltip_cell().

</description>
<parameters>
<parameter name="tooltip">
<parameter_description> a `GtkTooltip`
</parameter_description>
</parameter>
<parameter name="rect">
<parameter_description> a `GdkRectangle`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_create_row_drag_content">
<description>
Creates a content provider for dragging @path from @tree_model.

Deprecated: 4.10: Use list models instead

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a row in @tree_model
</parameter_description>
</parameter>
</parameters>
<return> a new `GdkContentProvider`

</return>
</function>

<function name="gtk_tree_drag_dest_drag_data_received">
<description>
Asks the `GtkTreeDragDest` to insert a row before the path @dest,
deriving the contents of the row from @value. If @dest is
outside the tree so that inserting before it is impossible, %FALSE
will be returned. Also, %FALSE may be returned if the new row is
not created for some model-specific reason.  Should robustly handle
a @dest no longer found in the model!

Deprecated: 4.10: Use list models instead

</description>
<parameters>
<parameter name="drag_dest">
<parameter_description> a `GtkTreeDragDest`
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description> row to drop in front of
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> data to drop
</parameter_description>
</parameter>
</parameters>
<return> whether a new row was created before position @dest

</return>
</function>

<function name="gtk_tree_drag_dest_row_drop_possible">
<description>
Determines whether a drop is possible before the given @dest_path,
at the same depth as @dest_path. i.e., can we drop the data in
@value at that location. @dest_path does not have to
exist; the return value will almost certainly be %FALSE if the
parent of @dest_path doesn’t exist, though.

Deprecated: 4.10: Use list models instead

</description>
<parameters>
<parameter name="drag_dest">
<parameter_description> a `GtkTreeDragDest`
</parameter_description>
</parameter>
<parameter name="dest_path">
<parameter_description> destination row
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the data being dropped
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a drop is possible before @dest_path

</return>
</function>

<function name="gtk_tree_drag_source_drag_data_delete">
<description>
Asks the `GtkTreeDragSource` to delete the row at @path, because
it was moved somewhere else via drag-and-drop. Returns %FALSE
if the deletion fails because @path no longer exists, or for
some model-specific reason. Should robustly handle a @path no
longer found in the model!

Deprecated: 4.10: Use list models instead

</description>
<parameters>
<parameter name="drag_source">
<parameter_description> a `GtkTreeDragSource`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> row that was being dragged
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the row was successfully deleted

</return>
</function>

<function name="gtk_tree_drag_source_drag_data_get">
<description>
Asks the `GtkTreeDragSource` to return a `GdkContentProvider` representing
the row at @path. Should robustly handle a @path no
longer found in the model!

Deprecated: 4.10: Use list models instead

</description>
<parameters>
<parameter name="drag_source">
<parameter_description> a `GtkTreeDragSource`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> row that was dragged
</parameter_description>
</parameter>
</parameters>
<return> a `GdkContentProvider` for the
given @path

</return>
</function>

<function name="gtk_tree_drag_source_row_draggable">
<description>
Asks the `GtkTreeDragSource` whether a particular row can be used as
the source of a DND operation. If the source doesn’t implement
this interface, the row is assumed draggable.

Deprecated: 4.10: Use list models instead

</description>
<parameters>
<parameter name="drag_source">
<parameter_description> a `GtkTreeDragSource`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> row on which user is initiating a drag
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the row can be dragged

</return>
</function>

<function name="gtk_tree_expander_get_child">
<description>
Gets the child widget displayed by @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeExpander`
</parameter_description>
</parameter>
</parameters>
<return> The child displayed by @self
</return>
</function>

<function name="gtk_tree_expander_get_hide_expander">
<description>
Gets whether the TreeExpander should be hidden in a GtkTreeListRow.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeExpander`
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the expander icon should be hidden. Otherwise FALSE.

</return>
</function>

<function name="gtk_tree_expander_get_indent_for_depth">
<description>
TreeExpander indents each level of depth with an additional indent.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeExpander`
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the child should be indented . Otherwise FALSE.

</return>
</function>

<function name="gtk_tree_expander_get_indent_for_icon">
<description>
TreeExpander indents the child by the width of an expander-icon if it is not expandable.

Since: 4.6

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeExpander`
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the child should be indented when not expandable. Otherwise FALSE.

</return>
</function>

<function name="gtk_tree_expander_get_item">
<description>
Forwards the item set on the `GtkTreeListRow` that @self is managing.

This call is essentially equivalent to calling:

```c
gtk_tree_list_row_get_item (gtk_tree_expander_get_list_row (@self));
```


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeExpander`
</parameter_description>
</parameter>
</parameters>
<return> The item of the row
</return>
</function>

<function name="gtk_tree_expander_get_list_row">
<description>
Gets the list row managed by @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeExpander`
</parameter_description>
</parameter>
</parameters>
<return> The list row displayed by @self
</return>
</function>

<function name="gtk_tree_expander_new">
<description>
Creates a new `GtkTreeExpander`


</description>
<parameters>
</parameters>
<return> a new `GtkTreeExpander`
</return>
</function>

<function name="gtk_tree_expander_set_child">
<description>
Sets the content widget to display.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeExpander`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_expander_set_hide_expander">
<description>
Sets whether the expander icon should be visible in a GtkTreeListRow.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeExpander` widget
</parameter_description>
</parameter>
<parameter name="hide_expander">
<parameter_description> TRUE if the expander should be hidden. Otherwise FALSE.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_expander_set_indent_for_depth">
<description>
Sets if the TreeExpander should indent the child according to its depth.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeExpander` widget
</parameter_description>
</parameter>
<parameter name="indent_for_depth">
<parameter_description> TRUE if the child should be indented. Otherwise FALSE.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_expander_set_indent_for_icon">
<description>
Sets if the TreeExpander should indent the child by the width of an expander-icon when it is not expandable.

Since: 4.6

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeExpander` widget
</parameter_description>
</parameter>
<parameter name="indent_for_icon">
<parameter_description> TRUE if the child should be indented without expander. Otherwise FALSE.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_expander_set_list_row">
<description>
Sets the tree list row that this expander should manage.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeExpander` widget
</parameter_description>
</parameter>
<parameter name="list_row">
<parameter_description> a `GtkTreeListRow`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_get_row_drag_data">
<description>
Obtains a @tree_model and @path from value of target type
%GTK_TYPE_TREE_ROW_DATA.

The returned path must be freed with gtk_tree_path_free().

Deprecated: 4.10: Use list models instead

</description>
<parameters>
<parameter name="value">
<parameter_description> a `GValue`
</parameter_description>
</parameter>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> row in @tree_model
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @selection_data had target type %GTK_TYPE_TREE_ROW_DATA
is otherwise valid

</return>
</function>

<function name="gtk_tree_iter_copy">
<description>
Creates a dynamically allocated tree iterator as a copy of @iter.

This function is not intended for use in applications,
because you can just copy the structs by value
(`GtkTreeIter new_iter = iter;`).
You must free this iter with gtk_tree_iter_free().

Deprecated: 4.10

</description>
<parameters>
<parameter name="iter">
<parameter_description> a `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated copy of @iter

</return>
</function>

<function name="gtk_tree_iter_free">
<description>
Frees an iterator that has been allocated by gtk_tree_iter_copy().

This function is mainly used for language bindings.

Deprecated: 4.10

</description>
<parameters>
<parameter name="iter">
<parameter_description> a dynamically allocated tree iterator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_list_model_get_autoexpand">
<description>
Gets whether the model is set to automatically expand new rows
that get added.

This can be either rows added by changes to the underlying
models or via [method@Gtk.TreeListRow.set_expanded].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListModel`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the model is set to autoexpand
</return>
</function>

<function name="gtk_tree_list_model_get_child_row">
<description>
Gets the row item corresponding to the child at index @position for
@self's root model.

If @position is greater than the number of children in the root model,
%NULL is returned.

Do not confuse this function with [method@Gtk.TreeListModel.get_row].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListModel`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position of the child to get
</parameter_description>
</parameter>
</parameters>
<return> the child in @position
</return>
</function>

<function name="gtk_tree_list_model_get_model">
<description>
Gets the root model that @self was created with.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListModel`
</parameter_description>
</parameter>
</parameters>
<return> the root model
</return>
</function>

<function name="gtk_tree_list_model_get_passthrough">
<description>
Gets whether the model is passing through original row items.

If this function returns %FALSE, the `GListModel` functions for @self
return custom `GtkTreeListRow` objects. You need to call
[method@Gtk.TreeListRow.get_item] on these objects to get the original
item.

If %TRUE, the values of the child models are passed through in their
original state. You then need to call [method@Gtk.TreeListModel.get_row]
to get the custom `GtkTreeListRow`s.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListModel`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the model is passing through original row items
</return>
</function>

<function name="gtk_tree_list_model_get_row">
<description>
Gets the row object for the given row.

If @position is greater than the number of items in @self,
%NULL is returned.

The row object can be used to expand and collapse rows as
well as to inspect its position in the tree. See its
documentation for details.

This row object is persistent and will refer to the current
item as long as the row is present in @self, independent of
other rows being added or removed.

If @self is set to not be passthrough, this function is
equivalent to calling g_list_model_get_item().

Do not confuse this function with [method@Gtk.TreeListModel.get_child_row].


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListModel`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the position of the row to fetch
</parameter_description>
</parameter>
</parameters>
<return> The row item
</return>
</function>

<function name="gtk_tree_list_model_new">
<description>
Creates a new empty `GtkTreeListModel` displaying @root
with all rows collapsed.


</description>
<parameters>
<parameter name="root">
<parameter_description> The `GListModel` to use as root
</parameter_description>
</parameter>
<parameter name="passthrough">
<parameter_description> %TRUE to pass through items from the models
</parameter_description>
</parameter>
<parameter name="autoexpand">
<parameter_description> %TRUE to set the autoexpand property and expand the @root model
</parameter_description>
</parameter>
<parameter name="create_func">
<parameter_description> Function to call to create the `GListModel` for the children
of an item
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> Data to pass to @create_func
</parameter_description>
</parameter>
<parameter name="user_destroy">
<parameter_description> Function to call to free @user_data
</parameter_description>
</parameter>
</parameters>
<return> a newly created `GtkTreeListModel`.
</return>
</function>

<function name="gtk_tree_list_model_set_autoexpand">
<description>
Sets whether the model should autoexpand.

If set to %TRUE, the model will recursively expand all rows that
get added to the model. This can be either rows added by changes
to the underlying models or via [method@Gtk.TreeListRow.set_expanded].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListModel`
</parameter_description>
</parameter>
<parameter name="autoexpand">
<parameter_description> %TRUE to make the model autoexpand its rows
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_list_row_get_child_row">
<description>
If @self is not expanded or @position is greater than the
number of children, %NULL is returned.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListRow`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position of the child to get
</parameter_description>
</parameter>
</parameters>
<return> the child in @position
</return>
</function>

<function name="gtk_tree_list_row_get_children">
<description>
If the row is expanded, gets the model holding the children of @self.

This model is the model created by the
[callback@Gtk.TreeListModelCreateModelFunc]
and contains the original items, no matter what value
[property@Gtk.TreeListModel:passthrough] is set to.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListRow`
</parameter_description>
</parameter>
</parameters>
<return> The model containing the children
</return>
</function>

<function name="gtk_tree_list_row_get_depth">
<description>
Gets the depth of this row.

Rows that correspond to items in the root model have a depth
of zero, rows corresponding to items of models of direct children
of the root model have a depth of 1 and so on.

The depth of a row never changes until the row is removed from its model
at which point it will forever return 0.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListRow`
</parameter_description>
</parameter>
</parameters>
<return> The depth of this row
</return>
</function>

<function name="gtk_tree_list_row_get_expanded">
<description>
Gets if a row is currently expanded.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListRow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the row is expanded
</return>
</function>

<function name="gtk_tree_list_row_get_item">
<description>
Gets the item corresponding to this row,


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListRow`
</parameter_description>
</parameter>
</parameters>
<return> The item
of this row. This function is only marked as nullable for backwards
compatibility reasons.
</return>
</function>

<function name="gtk_tree_list_row_get_parent">
<description>
Gets the row representing the parent for @self.

That is the row that would need to be collapsed
to make this row disappear.

If @self is a row corresponding to the root model,
%NULL is returned.

The value returned by this function never changes
until the row is removed from its model at which point
it will forever return %NULL.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListRow`
</parameter_description>
</parameter>
</parameters>
<return> The parent of @self
</return>
</function>

<function name="gtk_tree_list_row_get_position">
<description>
Returns the position in the `GtkTreeListModel` that @self occupies
at the moment.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListRow`
</parameter_description>
</parameter>
</parameters>
<return> The position in the model
</return>
</function>

<function name="gtk_tree_list_row_is_expandable">
<description>
Checks if a row can be expanded.

This does not mean that the row is actually expanded,
this can be checked with [method@Gtk.TreeListRow.get_expanded].

If a row is expandable never changes until the row is removed
from its model at which point it will forever return %FALSE.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListRow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the row is expandable
</return>
</function>

<function name="gtk_tree_list_row_set_expanded">
<description>
Expands or collapses a row.

If a row is expanded, the model of calling the
[callback@Gtk.TreeListModelCreateModelFunc] for the row's
item will be inserted after this row. If a row is collapsed,
those items will be removed from the model.

If the row is not expandable, this function does nothing.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListRow`
</parameter_description>
</parameter>
<parameter name="expanded">
<parameter_description> %TRUE if the row should be expanded
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_list_row_sorter_get_sorter">
<description>
Returns the sorter used by @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListRowSorter`
</parameter_description>
</parameter>
</parameters>
<return> the sorter used
</return>
</function>

<function name="gtk_tree_list_row_sorter_new">
<description>
Create a special-purpose sorter that applies the sorting
of @sorter to the levels of a `GtkTreeListModel`.

Note that this sorter relies on [property@Gtk.TreeListModel:passthrough]
being %FALSE as it can only sort [class@Gtk.TreeListRow]s.


</description>
<parameters>
<parameter name="sorter">
<parameter_description> a `GtkSorter`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkTreeListRowSorter`
</return>
</function>

<function name="gtk_tree_list_row_sorter_set_sorter">
<description>
Sets the sorter to use for items with the same parent.

This sorter will be passed the [property@Gtk.TreeListRow:item] of
the tree list rows passed to @self.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkTreeListRowSorter`
</parameter_description>
</parameter>
<parameter name="sorter">
<parameter_description> The sorter to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_filter_clear_cache">
<description>
This function should almost never be called. It clears the @filter
of any cached iterators that haven’t been reffed with
gtk_tree_model_ref_node(). This might be useful if the child model
being filtered is static (and doesn’t change often) and there has been
a lot of unreffed access to nodes. As a side effect of this function,
all unreffed iters will be invalid.

Deprecated: 4.10

</description>
<parameters>
<parameter name="filter">
<parameter_description> A `GtkTreeModelFilter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_filter_convert_child_iter_to_iter">
<description>
Sets @filter_iter to point to the row in @filter that corresponds to the
row pointed at by @child_iter.  If @filter_iter was not set, %FALSE is
returned.

Deprecated: 4.10

</description>
<parameters>
<parameter name="filter">
<parameter_description> A `GtkTreeModelFilter`
</parameter_description>
</parameter>
<parameter name="filter_iter">
<parameter_description> An uninitialized `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="child_iter">
<parameter_description> A valid `GtkTreeIter` pointing to a row on the child model.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if @filter_iter was set, i.e. if @child_iter is a
valid iterator pointing to a visible row in child model.

</return>
</function>

<function name="gtk_tree_model_filter_convert_child_path_to_path">
<description>
Converts @child_path to a path relative to @filter. That is, @child_path
points to a path in the child model. The rerturned path will point to the
same row in the filtered model. If @child_path isn’t a valid path on the
child model or points to a row which is not visible in @filter, then %NULL
is returned.

Deprecated: 4.10

</description>
<parameters>
<parameter name="filter">
<parameter_description> A `GtkTreeModelFilter`
</parameter_description>
</parameter>
<parameter name="child_path">
<parameter_description> A `GtkTreePath` to convert.
</parameter_description>
</parameter>
</parameters>
<return> A newly allocated `GtkTreePath`

</return>
</function>

<function name="gtk_tree_model_filter_convert_iter_to_child_iter">
<description>
Sets @child_iter to point to the row pointed to by @filter_iter.

Deprecated: 4.10

</description>
<parameters>
<parameter name="filter">
<parameter_description> A `GtkTreeModelFilter`
</parameter_description>
</parameter>
<parameter name="child_iter">
<parameter_description> An uninitialized `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="filter_iter">
<parameter_description> A valid `GtkTreeIter` pointing to a row on @filter.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_filter_convert_path_to_child_path">
<description>
Converts @filter_path to a path on the child model of @filter. That is,
@filter_path points to a location in @filter. The returned path will
point to the same location in the model not being filtered. If @filter_path
does not point to a location in the child model, %NULL is returned.

Deprecated: 4.10

</description>
<parameters>
<parameter name="filter">
<parameter_description> A `GtkTreeModelFilter`
</parameter_description>
</parameter>
<parameter name="filter_path">
<parameter_description> A `GtkTreePath` to convert.
</parameter_description>
</parameter>
</parameters>
<return> A newly allocated `GtkTreePath`

</return>
</function>

<function name="gtk_tree_model_filter_get_model">
<description>
Returns a pointer to the child model of @filter.

Deprecated: 4.10

</description>
<parameters>
<parameter name="filter">
<parameter_description> A `GtkTreeModelFilter`
</parameter_description>
</parameter>
</parameters>
<return> A pointer to a `GtkTreeModel`

</return>
</function>

<function name="gtk_tree_model_filter_new">
<description>
Creates a new `GtkTreeModel`, with @child_model as the child_model
and @root as the virtual root.

Deprecated: 4.10

</description>
<parameters>
<parameter name="child_model">
<parameter_description> A `GtkTreeModel`.
</parameter_description>
</parameter>
<parameter name="root">
<parameter_description> A `GtkTreePath`
</parameter_description>
</parameter>
</parameters>
<return> A new `GtkTreeModel`.

</return>
</function>

<function name="gtk_tree_model_filter_refilter">
<description>
Emits ::row_changed for each row in the child model, which causes
the filter to re-evaluate whether a row is visible or not.

Deprecated: 4.10

</description>
<parameters>
<parameter name="filter">
<parameter_description> A `GtkTreeModelFilter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_filter_set_modify_func">
<description>
With the @n_columns and @types parameters, you give an array of column
types for this model (which will be exposed to the parent model/view).
The @func, @data and @destroy parameters are for specifying the modify
function. The modify function will get called for each
data access, the goal of the modify function is to return the data which
should be displayed at the location specified using the parameters of the
modify function.

Note that gtk_tree_model_filter_set_modify_func()
can only be called once for a given filter model.

Deprecated: 4.10

</description>
<parameters>
<parameter name="filter">
<parameter_description> A `GtkTreeModelFilter`
</parameter_description>
</parameter>
<parameter name="n_columns">
<parameter_description> The number of columns in the filter model.
</parameter_description>
</parameter>
<parameter name="types">
<parameter_description> The `GType`s of the columns.
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> A `GtkTreeModelFilterModifyFunc`
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> User data to pass to the modify function
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> Destroy notifier of @data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_filter_set_visible_column">
<description>
Sets @column of the child_model to be the column where @filter should
look for visibility information. @columns should be a column of type
%G_TYPE_BOOLEAN, where %TRUE means that a row is visible, and %FALSE
if not.

Note that gtk_tree_model_filter_set_visible_func() or
gtk_tree_model_filter_set_visible_column() can only be called
once for a given filter model.

Deprecated: 4.10

</description>
<parameters>
<parameter name="filter">
<parameter_description> A `GtkTreeModelFilter`
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> A `int` which is the column containing the visible information
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_filter_set_visible_func">
<description>
Sets the visible function used when filtering the @filter to be @func.
The function should return %TRUE if the given row should be visible and
%FALSE otherwise.

If the condition calculated by the function changes over time (e.g.
because it depends on some global parameters), you must call
gtk_tree_model_filter_refilter() to keep the visibility information
of the model up-to-date.

Note that @func is called whenever a row is inserted, when it may still
be empty. The visible function should therefore take special care of empty
rows, like in the example below.

|[&lt;!-- language=&quot;C&quot; --&gt;
static gboolean
visible_func (GtkTreeModel *model,
GtkTreeIter  *iter,
gpointer      data)
{
// Visible if row is non-empty and first column is “HI”
char *str;
gboolean visible = FALSE;

gtk_tree_model_get (model, iter, 0, &amp;str, -1);
if (str &amp;&amp; strcmp (str, &quot;HI&quot;) == 0)
visible = TRUE;
g_free (str);

return visible;
}
]|

Note that gtk_tree_model_filter_set_visible_func() or
gtk_tree_model_filter_set_visible_column() can only be called
once for a given filter model.

Deprecated: 4.10

</description>
<parameters>
<parameter name="filter">
<parameter_description> A `GtkTreeModelFilter`
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> A `GtkTreeModelFilterVisibleFunc`, the visible function
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> User data to pass to the visible function
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> Destroy notifier of @data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_foreach">
<description>
Calls @func on each node in model in a depth-first fashion.

If @func returns %TRUE, then the tree ceases to be walked,
and gtk_tree_model_foreach() returns.

Deprecated: 4.10

</description>
<parameters>
<parameter name="model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> a function to be called on each row
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data to passed to @func
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_get">
<description>
Gets the value of one or more cells in the row referenced by @iter.

The variable argument list should contain integer column numbers,
each column number followed by a place to store the value being
retrieved.  The list is terminated by a -1. For example, to get a
value from column 0 with type %G_TYPE_STRING, you would
write: `gtk_tree_model_get (model, iter, 0, &amp;place_string_here, -1)`,
where `place_string_here` is a #gchararray
to be filled with the string.

Returned values with type %G_TYPE_OBJECT have to be unreferenced,
values with type %G_TYPE_STRING or %G_TYPE_BOXED have to be freed.
Other values are passed by value.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a row in @tree_model
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> pairs of column number and value return locations,
terminated by -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_get_column_type">
<description>
Returns the type of the column.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="index_">
<parameter_description> the column index
</parameter_description>
</parameter>
</parameters>
<return> the type of the column

</return>
</function>

<function name="gtk_tree_model_get_flags">
<description>
Returns a set of flags supported by this interface.

The flags are a bitwise combination of `GtkTreeModel`Flags.
The flags supported should not change during the lifetime
of the @tree_model.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
</parameters>
<return> the flags supported by this interface

</return>
</function>

<function name="gtk_tree_model_get_iter">
<description>
Sets @iter to a valid iterator pointing to @path.

If @path does not exist, @iter is set to an invalid
iterator and %FALSE is returned.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the uninitialized `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> the `GtkTreePath`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if @iter was set

</return>
</function>

<function name="gtk_tree_model_get_iter_first">
<description>
Initializes @iter with the first iterator in the tree
(the one at the path &quot;0&quot;).

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the uninitialized `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if @iter was set

</return>
</function>

<function name="gtk_tree_model_get_iter_from_string">
<description>
Sets @iter to a valid iterator pointing to @path_string, if it
exists.

Otherwise, @iter is left invalid and %FALSE is returned.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> an uninitialized `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="path_string">
<parameter_description> a string representation of a `GtkTreePath`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if @iter was set

</return>
</function>

<function name="gtk_tree_model_get_n_columns">
<description>
Returns the number of columns supported by @tree_model.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
</parameters>
<return> the number of columns

</return>
</function>

<function name="gtk_tree_model_get_path">
<description>
Returns a newly-created `GtkTreePath` referenced by @iter.

This path should be freed with gtk_tree_path_free().

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> a newly-created `GtkTreePath`

</return>
</function>

<function name="gtk_tree_model_get_string_from_iter">
<description>
Generates a string representation of the iter.

This string is a “:” separated list of numbers.
For example, “4:10:0:3” would be an acceptable
return value for this string.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated string

</return>
</function>

<function name="gtk_tree_model_get_valist">
<description>
Gets the value of one or more cells in the row referenced by @iter.

See [method@Gtk.TreeModel.get], this version takes a va_list
for language bindings to use.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a row in @tree_model
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> va_list of column/return location pairs
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_get_value">
<description>
Initializes and sets @value to that at @column.

When done with @value, g_value_unset() needs to be called
to free any allocated memory.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> the column to lookup the value at
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> an empty `GValue` to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_iter_children">
<description>
Sets @iter to point to the first child of @parent.

If @parent has no children, %FALSE is returned and @iter is
set to be invalid. @parent will remain a valid node after this
function has been called.

If @parent is %NULL returns the first node, equivalent to
`gtk_tree_model_get_iter_first (tree_model, iter);`

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the new `GtkTreeIter` to be set to the child
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if @iter has been set to the first child

</return>
</function>

<function name="gtk_tree_model_iter_has_child">
<description>
Returns %TRUE if @iter has children, %FALSE otherwise.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the `GtkTreeIter` to test for children
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter has children

</return>
</function>

<function name="gtk_tree_model_iter_n_children">
<description>
Returns the number of children that @iter has.

As a special case, if @iter is %NULL, then the number
of toplevel nodes is returned.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> the number of children of @iter

</return>
</function>

<function name="gtk_tree_model_iter_next">
<description>
Sets @iter to point to the node following it at the current level.

If there is no next @iter, %FALSE is returned and @iter is set
to be invalid.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter has been changed to the next node

</return>
</function>

<function name="gtk_tree_model_iter_nth_child">
<description>
Sets @iter to be the child of @parent, using the given index.

The first index is 0. If @n is too big, or @parent has no children,
@iter is set to an invalid iterator and %FALSE is returned. @parent
will remain a valid node after this function has been called. As a
special case, if @parent is %NULL, then the @n-th root node
is set.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the `GtkTreeIter` to set to the nth child
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the `GtkTreeIter` to get the child from
</parameter_description>
</parameter>
<parameter name="n">
<parameter_description> the index of the desired child
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if @parent has an @n-th child

</return>
</function>

<function name="gtk_tree_model_iter_parent">
<description>
Sets @iter to be the parent of @child.

If @child is at the toplevel, and doesn’t have a parent, then
@iter is set to an invalid iterator and %FALSE is returned.
@child will remain a valid node after this function has been
called.

@iter will be initialized before the lookup is performed, so @child
and @iter cannot point to the same memory location.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the new `GtkTreeIter` to set to the parent
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if @iter is set to the parent of @child

</return>
</function>

<function name="gtk_tree_model_iter_previous">
<description>
Sets @iter to point to the previous node at the current level.

If there is no previous @iter, %FALSE is returned and @iter is
set to be invalid.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @iter has been changed to the previous node

</return>
</function>

<function name="gtk_tree_model_ref_node">
<description>
Lets the tree ref the node.

This is an optional method for models to implement.
To be more specific, models may ignore this call as it exists
primarily for performance reasons.

This function is primarily meant as a way for views to let
caching models know when nodes are being displayed (and hence,
whether or not to cache that node). Being displayed means a node
is in an expanded branch, regardless of whether the node is currently
visible in the viewport. For example, a file-system based model
would not want to keep the entire file-hierarchy in memory,
just the sections that are currently being displayed by
every current view.

A model should be expected to be able to get an iter independent
of its reffed state.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_row_changed">
<description>
Emits the ::row-changed signal on @tree_model.

See [signal@Gtk.TreeModel::row-changed].

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath` pointing to the changed row
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a valid `GtkTreeIter` pointing to the changed row
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_row_deleted">
<description>
Emits the ::row-deleted signal on @tree_model.

See [signal@Gtk.TreeModel::row-deleted].

This should be called by models after a row has been removed.
The location pointed to by @path should be the location that
the row previously was at. It may not be a valid location anymore.

Nodes that are deleted are not unreffed, this means that any
outstanding references on the deleted node should not be released.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath` pointing to the previous location of
the deleted row
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_row_has_child_toggled">
<description>
Emits the ::row-has-child-toggled signal on @tree_model.

See [signal@Gtk.TreeModel::row-has-child-toggled].

This should be called by models after the child
state of a node changes.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath` pointing to the changed row
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a valid `GtkTreeIter` pointing to the changed row
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_row_inserted">
<description>
Emits the ::row-inserted signal on @tree_model.

See [signal@Gtk.TreeModel::row-inserted].

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath` pointing to the inserted row
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a valid `GtkTreeIter` pointing to the inserted row
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_rows_reordered">
<description>
Emits the ::rows-reordered signal on @tree_model.

See [signal@Gtk.TreeModel::rows-reordered].

This should be called by models when their rows have been
reordered.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath` pointing to the tree node whose children
have been reordered
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a valid `GtkTreeIter` pointing to the node whose children
have been reordered, or %NULL if the depth of @path is 0
</parameter_description>
</parameter>
<parameter name="new_order">
<parameter_description> an array of integers mapping the current position of
each child to its old position before the re-ordering,
i.e. @new_order`[newpos] = oldpos`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_rows_reordered_with_length">
<description>
Emits the ::rows-reordered signal on @tree_model.

See [signal@Gtk.TreeModel::rows-reordered].

This should be called by models when their rows have been
reordered.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath` pointing to the tree node whose children
have been reordered
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a valid `GtkTreeIter` pointing to the node
whose children have been reordered, or %NULL if the depth
of @path is 0
</parameter_description>
</parameter>
<parameter name="new_order">
<parameter_description> an array of integers
mapping the current position of each child to its old
position before the re-ordering,
i.e. @new_order`[newpos] = oldpos`
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> length of @new_order array
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_sort_clear_cache">
<description>
This function should almost never be called.  It clears the @tree_model_sort
of any cached iterators that haven’t been reffed with
gtk_tree_model_ref_node().  This might be useful if the child model being
sorted is static (and doesn’t change often) and there has been a lot of
unreffed access to nodes.  As a side effect of this function, all unreffed
iters will be invalid.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model_sort">
<parameter_description> A `GtkTreeModelSort`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_sort_convert_child_iter_to_iter">
<description>
Sets @sort_iter to point to the row in @tree_model_sort that corresponds to
the row pointed at by @child_iter.  If @sort_iter was not set, %FALSE
is returned.  Note: a boolean is only returned since 2.14.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model_sort">
<parameter_description> A `GtkTreeModelSort`
</parameter_description>
</parameter>
<parameter name="sort_iter">
<parameter_description> An uninitialized `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="child_iter">
<parameter_description> A valid `GtkTreeIter` pointing to a row on the child model
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if @sort_iter was set, i.e. if @sort_iter is a
valid iterator pointer to a visible row in the child model.

</return>
</function>

<function name="gtk_tree_model_sort_convert_child_path_to_path">
<description>
Converts @child_path to a path relative to @tree_model_sort.  That is,
@child_path points to a path in the child model.  The returned path will
point to the same row in the sorted model.  If @child_path isn’t a valid
path on the child model, then %NULL is returned.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model_sort">
<parameter_description> A `GtkTreeModelSort`
</parameter_description>
</parameter>
<parameter name="child_path">
<parameter_description> A `GtkTreePath` to convert
</parameter_description>
</parameter>
</parameters>
<return> A newly allocated `GtkTreePath`

</return>
</function>

<function name="gtk_tree_model_sort_convert_iter_to_child_iter">
<description>
Sets @child_iter to point to the row pointed to by @sorted_iter.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model_sort">
<parameter_description> A `GtkTreeModelSort`
</parameter_description>
</parameter>
<parameter name="child_iter">
<parameter_description> An uninitialized `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="sorted_iter">
<parameter_description> A valid `GtkTreeIter` pointing to a row on @tree_model_sort.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_sort_convert_path_to_child_path">
<description>
Converts @sorted_path to a path on the child model of @tree_model_sort.
That is, @sorted_path points to a location in @tree_model_sort.  The
returned path will point to the same location in the model not being
sorted.  If @sorted_path does not point to a location in the child model,
%NULL is returned.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model_sort">
<parameter_description> A `GtkTreeModelSort`
</parameter_description>
</parameter>
<parameter name="sorted_path">
<parameter_description> A `GtkTreePath` to convert
</parameter_description>
</parameter>
</parameters>
<return> A newly allocated `GtkTreePath`

</return>
</function>

<function name="gtk_tree_model_sort_get_model">
<description>
Returns the model the `GtkTreeModelSort` is sorting.


</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModelSort`
</parameter_description>
</parameter>
</parameters>
<return> the &quot;child model&quot; being sorted
</return>
</function>

<function name="gtk_tree_model_sort_iter_is_valid">
<description>
&gt; This function is slow. Only use it for debugging and/or testing
&gt; purposes.

Checks if the given iter is a valid iter for this `GtkTreeModelSort`.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model_sort">
<parameter_description> A `GtkTreeModelSort`.
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the iter is valid, %FALSE if the iter is invalid.

</return>
</function>

<function name="gtk_tree_model_sort_new_with_model">
<description>
Creates a new `GtkTreeModelSort`, with @child_model as the child model.


</description>
<parameters>
<parameter name="child_model">
<parameter_description> A `GtkTreeModel`
</parameter_description>
</parameter>
</parameters>
<return> A new `GtkTreeModelSort`.
</return>
</function>

<function name="gtk_tree_model_sort_reset_default_sort_func">
<description>
This resets the default sort function to be in the “unsorted” state.  That
is, it is in the same order as the child model. It will re-sort the model
to be in the same order as the child model only if the `GtkTreeModelSort`
is in “unsorted” state.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model_sort">
<parameter_description> A `GtkTreeModelSort`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_sort_set_model">
<description>
Sets the model of @tree_model_sort to be @model.  If @model is %NULL,
then the old model is unset.  The sort function is unset as a result
of this call. The model will be in an unsorted state until a sort
function is set.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model_sort">
<parameter_description> The `GtkTreeModelSort`.
</parameter_description>
</parameter>
<parameter name="child_model">
<parameter_description> A `GtkTreeModel`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_model_unref_node">
<description>
Lets the tree unref the node.

This is an optional method for models to implement.
To be more specific, models may ignore this call as it exists
primarily for performance reasons. For more information on what
this means, see gtk_tree_model_ref_node().

Please note that nodes that are deleted are not unreffed.

Deprecated: 4.10

</description>
<parameters>
<parameter name="tree_model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_path_append_index">
<description>
Appends a new index to a path.

As a result, the depth of the path is increased.

Deprecated: 4.10

</description>
<parameters>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
<parameter name="index_">
<parameter_description> the index
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_path_compare">
<description>
Compares two paths.

If @a appears before @b in a tree, then -1 is returned.
If @b appears before @a, then 1 is returned.
If the two nodes are equal, then 0 is returned.

Deprecated: 4.10

</description>
<parameters>
<parameter name="a">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> a `GtkTreePath` to compare with
</parameter_description>
</parameter>
</parameters>
<return> the relative positions of @a and @b

</return>
</function>

<function name="gtk_tree_path_copy">
<description>
Creates a new `GtkTreePath` as a copy of @path.

Deprecated: 4.10

</description>
<parameters>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkTreePath`

</return>
</function>

<function name="gtk_tree_path_down">
<description>
Moves @path to point to the first child of the current path.

Deprecated: 4.10

</description>
<parameters>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_path_free">
<description>
Frees @path. If @path is %NULL, it simply returns.

Deprecated: 4.10

</description>
<parameters>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_path_get_depth">
<description>
Returns the current depth of @path.

Deprecated: 4.10

</description>
<parameters>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
</parameters>
<return> The depth of @path

</return>
</function>

<function name="gtk_tree_path_get_indices">
<description>
Returns the current indices of @path.

This is an array of integers, each representing a node in a tree.
This value should not be freed.

The length of the array can be obtained with gtk_tree_path_get_depth().

Deprecated: 4.10

</description>
<parameters>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
</parameters>
<return> The current indices

</return>
</function>

<function name="gtk_tree_path_get_indices_with_depth">
<description>
Returns the current indices of @path.

This is an array of integers, each representing a node in a tree.
It also returns the number of elements in the array.
The array should not be freed.

Deprecated: 4.10

</description>
<parameters>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
<parameter name="depth">
<parameter_description> return location for number of elements
returned in the integer array
</parameter_description>
</parameter>
</parameters>
<return> The current
indices

</return>
</function>

<function name="gtk_tree_path_is_ancestor">
<description>
Returns %TRUE if @descendant is a descendant of @path.

Deprecated: 4.10

</description>
<parameters>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
<parameter name="descendant">
<parameter_description> another `GtkTreePath`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @descendant is contained inside @path

</return>
</function>

<function name="gtk_tree_path_is_descendant">
<description>
Returns %TRUE if @path is a descendant of @ancestor.

Deprecated: 4.10

</description>
<parameters>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
<parameter name="ancestor">
<parameter_description> another `GtkTreePath`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @ancestor contains @path somewhere below it

</return>
</function>

<function name="gtk_tree_path_new">
<description>
Creates a new `GtkTreePath`
This refers to a row.

Deprecated: 4.10

</description>
<parameters>
</parameters>
<return> A newly created `GtkTreePath`.

</return>
</function>

<function name="gtk_tree_path_new_first">
<description>
Creates a new `GtkTreePath`.

The string representation of this path is “0”.

Deprecated: 4.10

</description>
<parameters>
</parameters>
<return> A new `GtkTreePath`

</return>
</function>

<function name="gtk_tree_path_new_from_indices">
<description>
Creates a new path with @first_index and @varargs as indices.

Deprecated: 4.10

</description>
<parameters>
<parameter name="first_index">
<parameter_description> first integer
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> list of integers terminated by -1
</parameter_description>
</parameter>
</parameters>
<return> A newly created `GtkTreePath`

</return>
</function>

<function name="gtk_tree_path_new_from_indicesv">
<description>
Creates a new path with the given @indices array of @length.

Deprecated: 4.10

</description>
<parameters>
<parameter name="indices">
<parameter_description> array of indices
</parameter_description>
</parameter>
<parameter name="length">
<parameter_description> length of @indices array
</parameter_description>
</parameter>
</parameters>
<return> A newly created `GtkTreePath`

</return>
</function>

<function name="gtk_tree_path_new_from_string">
<description>
Creates a new `GtkTreePath` initialized to @path.

@path is expected to be a colon separated list of numbers.
For example, the string “10:4:0” would create a path of depth
3 pointing to the 11th child of the root node, the 5th
child of that 11th child, and the 1st child of that 5th child.
If an invalid path string is passed in, %NULL is returned.

Deprecated: 4.10

</description>
<parameters>
<parameter name="path">
<parameter_description> The string representation of a path
</parameter_description>
</parameter>
</parameters>
<return> A newly-created `GtkTreePath`

</return>
</function>

<function name="gtk_tree_path_next">
<description>
Moves the @path to point to the next node at the current depth.

Deprecated: 4.10

</description>
<parameters>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_path_prepend_index">
<description>
Prepends a new index to a path.

As a result, the depth of the path is increased.

Deprecated: 4.10

</description>
<parameters>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
<parameter name="index_">
<parameter_description> the index
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_path_prev">
<description>
Moves the @path to point to the previous node at the
current depth, if it exists.

Deprecated: 4.10

</description>
<parameters>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @path has a previous node, and
the move was made

</return>
</function>

<function name="gtk_tree_path_to_string">
<description>
Generates a string representation of the path.

This string is a “:” separated list of numbers.
For example, “4:10:0:3” would be an acceptable
return value for this string. If the path has
depth 0, %NULL is returned.

Deprecated: 4.10

</description>
<parameters>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
</parameters>
<return> A newly-allocated string

</return>
</function>

<function name="gtk_tree_path_up">
<description>
Moves the @path to point to its parent node, if it has a parent.

Deprecated: 4.10

</description>
<parameters>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @path has a parent, and the move was made

</return>
</function>

<function name="gtk_tree_rbtree_contains">
<description>
Checks if @potential_child is a child (direct or via intermediate
trees) of @tree.


</description>
<parameters>
<parameter name="tree">
<parameter_description> a tree
</parameter_description>
</parameter>
<parameter name="potential_child">
<parameter_description> a potential child of @tree
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @potential_child is a child of @tree.
</return>
</function>

<function name="gtk_tree_row_reference_copy">
<description>
Copies a `GtkTreeRowReference`.

Deprecated: 4.10

</description>
<parameters>
<parameter name="reference">
<parameter_description> a `GtkTreeRowReference`
</parameter_description>
</parameter>
</parameters>
<return> a copy of @reference

</return>
</function>

<function name="gtk_tree_row_reference_deleted">
<description>
Lets a set of row reference created by
gtk_tree_row_reference_new_proxy() know that the
model emitted the ::row-deleted signal.

Deprecated: 4.10

</description>
<parameters>
<parameter name="proxy">
<parameter_description> a `GObject`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> the path position that was deleted
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_row_reference_free">
<description>
Free’s @reference. @reference may be %NULL

Deprecated: 4.10

</description>
<parameters>
<parameter name="reference">
<parameter_description> a `GtkTreeRowReference`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_row_reference_get_model">
<description>
Returns the model that the row reference is monitoring.

Deprecated: 4.10

</description>
<parameters>
<parameter name="reference">
<parameter_description> a `GtkTreeRowReference`
</parameter_description>
</parameter>
</parameters>
<return> the model

</return>
</function>

<function name="gtk_tree_row_reference_get_path">
<description>
Returns a path that the row reference currently points to,
or %NULL if the path pointed to is no longer valid.

Deprecated: 4.10

</description>
<parameters>
<parameter name="reference">
<parameter_description> a `GtkTreeRowReference`
</parameter_description>
</parameter>
</parameters>
<return> a current path

</return>
</function>

<function name="gtk_tree_row_reference_inserted">
<description>
Lets a set of row reference created by
gtk_tree_row_reference_new_proxy() know that the
model emitted the ::row-inserted signal.

Deprecated: 4.10

</description>
<parameters>
<parameter name="proxy">
<parameter_description> a `GObject`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> the row position that was inserted
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_row_reference_new">
<description>
Creates a row reference based on @path.

This reference will keep pointing to the node pointed to
by @path, so long as it exists. Any changes that occur on @model are
propagated, and the path is updated appropriately. If
@path isn’t a valid path in @model, then %NULL is returned.

Deprecated: 4.10

</description>
<parameters>
<parameter name="model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a valid `GtkTreePath` to monitor
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated `GtkTreeRowReference`

</return>
</function>

<function name="gtk_tree_row_reference_new_proxy">
<description>
You do not need to use this function.

Creates a row reference based on @path.

This reference will keep pointing to the node pointed to
by @path, so long as it exists. If @path isn’t a valid
path in @model, then %NULL is returned. However, unlike
references created with gtk_tree_row_reference_new(), it
does not listen to the model for changes. The creator of
the row reference must do this explicitly using
gtk_tree_row_reference_inserted(), gtk_tree_row_reference_deleted(),
gtk_tree_row_reference_reordered().

These functions must be called exactly once per proxy when the
corresponding signal on the model is emitted. This single call
updates all row references for that proxy. Since built-in GTK
objects like `GtkTreeView` already use this mechanism internally,
using them as the proxy object will produce unpredictable results.
Further more, passing the same object as @model and @proxy
doesn’t work for reasons of internal implementation.

This type of row reference is primarily meant by structures that
need to carefully monitor exactly when a row reference updates
itself, and is not generally needed by most applications.

Deprecated: 4.10

</description>
<parameters>
<parameter name="proxy">
<parameter_description> a proxy `GObject`
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a valid `GtkTreePath` to monitor
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated `GtkTreeRowReference`

</return>
</function>

<function name="gtk_tree_row_reference_reordered">
<description>
Lets a set of row reference created by
gtk_tree_row_reference_new_proxy() know that the
model emitted the ::rows-reordered signal.

Deprecated: 4.10

</description>
<parameters>
<parameter name="proxy">
<parameter_description> a `GObject`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> the parent path of the reordered signal
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the iter pointing to the parent of the reordered
</parameter_description>
</parameter>
<parameter name="new_order">
<parameter_description> the new order of rows
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_row_reference_valid">
<description>
Returns %TRUE if the @reference is non-%NULL and refers to
a current valid path.

Deprecated: 4.10

</description>
<parameters>
<parameter name="reference">
<parameter_description> a `GtkTreeRowReference`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @reference points to a valid path

</return>
</function>

<function name="gtk_tree_selection_count_selected_rows">
<description>
Returns the number of rows that have been selected in @tree.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
</parameters>
<return> The number of rows selected.

</return>
</function>

<function name="gtk_tree_selection_get_mode">
<description>
Gets the selection mode for @selection. See
gtk_tree_selection_set_mode().

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> a `GtkTreeSelection`
</parameter_description>
</parameter>
</parameters>
<return> the current selection mode

</return>
</function>

<function name="gtk_tree_selection_get_select_function">
<description>
Returns the current selection function.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
</parameters>
<return> The function.

</return>
</function>

<function name="gtk_tree_selection_get_selected">
<description>
Sets @iter to the currently selected node if @selection is set to
%GTK_SELECTION_SINGLE or %GTK_SELECTION_BROWSE.  @iter may be NULL if you
just want to test if @selection has any selected nodes.  @model is filled
with the current model as a convenience.  This function will not work if you
use @selection is %GTK_SELECTION_MULTIPLE.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> A pointer to set to the `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> The `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if there is a selected node.

</return>
</function>

<function name="gtk_tree_selection_get_selected_rows">
<description>
Creates a list of path of all selected rows. Additionally, if you are
planning on modifying the model after calling this function, you may
want to convert the returned list into a list of `GtkTreeRowReference`s.
To do this, you can use gtk_tree_row_reference_new().

To free the return value, use:
|[&lt;!-- language=&quot;C&quot; --&gt;
g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free);
]|

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> A pointer to set to the `GtkTreeModel`
</parameter_description>
</parameter>
</parameters>
<return> A `GList` containing a `GtkTreePath` for each selected row.

</return>
</function>

<function name="gtk_tree_selection_get_tree_view">
<description>
Returns the tree view associated with @selection.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`
</parameter_description>
</parameter>
</parameters>
<return> A `GtkTreeView`

</return>
</function>

<function name="gtk_tree_selection_get_user_data">
<description>
Returns the user data for the selection function.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
</parameters>
<return> The user data.

</return>
</function>

<function name="gtk_tree_selection_iter_is_selected">
<description>
Returns %TRUE if the row at @iter is currently selected.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if @iter is selected

</return>
</function>

<function name="gtk_tree_selection_path_is_selected">
<description>
Returns %TRUE if the row pointed to by @path is currently selected.  If @path
does not point to a valid location, %FALSE is returned

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> A `GtkTreePath` to check selection on.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @path is selected.

</return>
</function>

<function name="gtk_tree_selection_select_all">
<description>
Selects all the nodes. @selection must be set to %GTK_SELECTION_MULTIPLE
mode.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_selection_select_iter">
<description>
Selects the specified iterator.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> The `GtkTreeIter` to be selected.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_selection_select_path">
<description>
Select the row at @path.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> The `GtkTreePath` to be selected.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_selection_select_range">
<description>
Selects a range of nodes, determined by @start_path and @end_path inclusive.
@selection must be set to %GTK_SELECTION_MULTIPLE mode.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
<parameter name="start_path">
<parameter_description> The initial node of the range.
</parameter_description>
</parameter>
<parameter name="end_path">
<parameter_description> The final node of the range.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_selection_selected_foreach">
<description>
Calls a function for each selected node. Note that you cannot modify
the tree or selection from within this function. As a result,
gtk_tree_selection_get_selected_rows() might be more useful.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> The function to call for each selected node.
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> user data to pass to the function.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_selection_set_mode">
<description>
Sets the selection mode of the @selection.  If the previous type was
%GTK_SELECTION_MULTIPLE, then the anchor is kept selected, if it was
previously selected.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> The selection mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_selection_set_select_function">
<description>
Sets the selection function.

If set, this function is called before any node is selected or unselected,
giving some control over which nodes are selected. The select function
should return %TRUE if the state of the node may be toggled, and %FALSE
if the state of the node should be left unchanged.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> The selection function. May be %NULL
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> The selection function’s data. May be %NULL
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> The destroy function for user data.  May be %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_selection_unselect_all">
<description>
Unselects all the nodes.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_selection_unselect_iter">
<description>
Unselects the specified iterator.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> The `GtkTreeIter` to be unselected.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_selection_unselect_path">
<description>
Unselects the row at @path.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> The `GtkTreePath` to be unselected.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_selection_unselect_range">
<description>
Unselects a range of nodes, determined by @start_path and @end_path
inclusive.

Deprecated: 4.10: Use GtkListView or GtkColumnView

</description>
<parameters>
<parameter name="selection">
<parameter_description> A `GtkTreeSelection`.
</parameter_description>
</parameter>
<parameter name="start_path">
<parameter_description> The initial node of the range.
</parameter_description>
</parameter>
<parameter name="end_path">
<parameter_description> The initial node of the range.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_sortable_get_sort_column_id">
<description>
Fills in @sort_column_id and @order with the current sort column and the
order. It returns %TRUE unless the @sort_column_id is
%GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID or
%GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID.

Deprecated: 4.10

</description>
<parameters>
<parameter name="sortable">
<parameter_description> A `GtkTreeSortable`
</parameter_description>
</parameter>
<parameter name="sort_column_id">
<parameter_description> The sort column id to be filled in
</parameter_description>
</parameter>
<parameter name="order">
<parameter_description> The `GtkSortType` to be filled in
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the sort column is not one of the special sort
column ids.

</return>
</function>

<function name="gtk_tree_sortable_has_default_sort_func">
<description>
Returns %TRUE if the model has a default sort function. This is used
primarily by GtkTreeViewColumns in order to determine if a model can
go back to the default state, or not.

Deprecated: 4.10

</description>
<parameters>
<parameter name="sortable">
<parameter_description> A `GtkTreeSortable`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if the model has a default sort function

</return>
</function>

<function name="gtk_tree_sortable_set_default_sort_func">
<description>
Sets the default comparison function used when sorting to be @sort_func.
If the current sort column id of @sortable is
%GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, then the model will sort using
this function.

If @sort_func is %NULL, then there will be no default comparison function.
This means that once the model  has been sorted, it can’t go back to the
default state. In this case, when the current sort column id of @sortable
is %GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, the model will be unsorted.

Deprecated: 4.10

</description>
<parameters>
<parameter name="sortable">
<parameter_description> A `GtkTreeSortable`
</parameter_description>
</parameter>
<parameter name="sort_func">
<parameter_description> The comparison function
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> User data to pass to @sort_func
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> Destroy notifier of @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_sortable_set_sort_column_id">
<description>
Sets the current sort column to be @sort_column_id. The @sortable will
resort itself to reflect this change, after emitting a
`GtkTreeSortable::sort-column-changed` signal. @sort_column_id may either be
a regular column id, or one of the following special values:

- %GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID: the default sort function
will be used, if it is set

- %GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID: no sorting will occur

Deprecated: 4.10

</description>
<parameters>
<parameter name="sortable">
<parameter_description> A `GtkTreeSortable`
</parameter_description>
</parameter>
<parameter name="sort_column_id">
<parameter_description> the sort column id to set
</parameter_description>
</parameter>
<parameter name="order">
<parameter_description> The sort order of the column
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_sortable_set_sort_func">
<description>
Sets the comparison function used when sorting to be @sort_func. If the
current sort column id of @sortable is the same as @sort_column_id, then
the model will sort using this function.

Deprecated: 4.10

</description>
<parameters>
<parameter name="sortable">
<parameter_description> A `GtkTreeSortable`
</parameter_description>
</parameter>
<parameter name="sort_column_id">
<parameter_description> the sort column id to set the function for
</parameter_description>
</parameter>
<parameter name="sort_func">
<parameter_description> The comparison function
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> User data to pass to @sort_func
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> Destroy notifier of @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_sortable_sort_column_changed">
<description>
Emits a `GtkTreeSortable::sort-column-changed` signal on @sortable.

Deprecated: 4.10

</description>
<parameters>
<parameter name="sortable">
<parameter_description> A `GtkTreeSortable`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_append">
<description>
Appends a new row to @tree_store.

If @parent is non-%NULL, then it will append the new row after the last
child of @parent, otherwise it will append a row to the top level.

The @iter parameter will be changed to point to this new row. The row will
be empty after this function is called. To fill in values, you need to call
gtk_tree_store_set() or gtk_tree_store_set_value().

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> An unset `GtkTreeIter` to set to the appended row
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_clear">
<description>
Removes all rows from @tree_store

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> a `GtkTreeStore`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_insert">
<description>
Creates a new row at @position.

If parent is non-%NULL, then the row will be made a child of @parent.
Otherwise, the row will be created at the toplevel.

If @position is `-1` or is larger than the number of rows at that level,
then the new row will be inserted to the end of the list.

The @iter parameter will be changed to point to this new row. The row
will be empty after this function is called. To fill in values, you
need to call gtk_tree_store_set() or gtk_tree_store_set_value().

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> An unset `GtkTreeIter` to set to the new row
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position to insert the new row, or -1 for last
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_insert_after">
<description>
Inserts a new row after @sibling.

If @sibling is %NULL, then the row will be prepended to @parent’s children.

If @parent and @sibling are %NULL, then the row will be prepended to the
toplevel.

If both @sibling and @parent are set, then @parent must be the parent
of @sibling. When @sibling is set, @parent is optional.

The @iter parameter will be changed to point to this new row. The row will
be empty after this function is called. To fill in values, you need to call
gtk_tree_store_set() or gtk_tree_store_set_value().

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> An unset `GtkTreeIter` to set to the new row
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="sibling">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_insert_before">
<description>
Inserts a new row before @sibling.

If @sibling is %NULL, then the row will be appended to @parent’s children.

If @parent and @sibling are %NULL, then the row will be appended to the
toplevel.

If both @sibling and @parent are set, then @parent must be the parent
of @sibling. When @sibling is set, @parent is optional.

The @iter parameter will be changed to point to this new row. The row will
be empty after this function is called. To fill in values, you need to call
gtk_tree_store_set() or gtk_tree_store_set_value().

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> An unset `GtkTreeIter` to set to the new row
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="sibling">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_insert_with_values">
<description>
Creates a new row at the given @position.

The @iter parameter will be changed to point to this  new row.

If @position is -1, or larger than the number of rows on the list, then
the new row will be appended to the list. The row will be filled with
the values given to this function.

Calling

gtk_tree_store_insert_with_values (tree_store, iter, position, ...)

has the same effect as calling

```c
gtk_tree_store_insert (tree_store, iter, position);
gtk_tree_store_set (tree_store, iter, ...);
```

with the different that the former will only emit a row_inserted signal,
while the latter will emit row_inserted, row_changed and if the tree store
is sorted, rows_reordered.

Since emitting the rows_reordered signal repeatedly can affect the
performance of the program, gtk_tree_store_insert_with_values() should
generally be preferred when inserting rows in a sorted tree store.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> An unset `GtkTreeIter` to set the new row
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position to insert the new row, or -1 to append after existing rows
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> pairs of column number and value, terminated with -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_insert_with_valuesv">
<description>
A variant of gtk_tree_store_insert_with_values() which takes
the columns and values as two arrays, instead of varargs.

This function is mainly intended for language bindings.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> An unset `GtkTreeIter` to set the new row
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> position to insert the new row, or -1 for last
</parameter_description>
</parameter>
<parameter name="columns">
<parameter_description> an array of column numbers
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> an array of GValues
</parameter_description>
</parameter>
<parameter name="n_values">
<parameter_description> the length of the @columns and @values arrays
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_is_ancestor">
<description>
Checks if @iter is an ancestor of @descendant.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="descendant">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> true if @iter is an ancestor of @descendant, and false otherwise

</return>
</function>

<function name="gtk_tree_store_iter_depth">
<description>
Returns the depth of the position pointed by the iterator

The depth will be 0 for anything on the root level, 1 for anything down
a level, etc.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> The depth of the position pointed by the iterator

</return>
</function>

<function name="gtk_tree_store_iter_is_valid">
<description>
Checks if the given iter is a valid iter for this `GtkTreeStore`.

This function is slow. Only use it for debugging and/or testing
purposes.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> a tree store
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> the iterator to check
</parameter_description>
</parameter>
</parameters>
<return> true if the iter is valid, and false otherwise

</return>
</function>

<function name="gtk_tree_store_move_after">
<description>
Moves @iter in @tree_store to the position after @position.

@iter and @position should be in the same level.

Note that this function only works with unsorted stores.

If @position is %NULL, @iter will be moved to the start of the level.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A `GtkTreeIter`.
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> A `GtkTreeIter`.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_move_before">
<description>
Moves @iter in @tree_store to the position before @position.

@iter and @position should be in the same level.

Note that this function only works with unsorted stores.

If @position is %NULL, @iter will be moved to the end of the level.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A `GtkTreeIter`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> A `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_new">
<description>
Creates a new tree store.

The tree store will have @n_columns, with each column using the
corresponding type passed to this function.

Note that only types derived from standard GObject fundamental types
are supported.

As an example:

```c
gtk_tree_store_new (3, G_TYPE_INT, G_TYPE_STRING, GDK_TYPE_TEXTURE);
```

will create a new `GtkTreeStore` with three columns of type
`int`, `gchararray`, and `GdkTexture` respectively.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="n_columns">
<parameter_description> number of columns in the tree store
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> all `GType` types for the columns, from first to last
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkTreeStore`

</return>
</function>

<function name="gtk_tree_store_newv">
<description>
Creates a new tree store.

This constructor is meant for language bindings.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="n_columns">
<parameter_description> number of columns in the tree store
</parameter_description>
</parameter>
<parameter name="types">
<parameter_description> an array of `GType` types for the columns, from first to last
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkTreeStore`

</return>
</function>

<function name="gtk_tree_store_prepend">
<description>
Prepends a new row to @tree_store.

If @parent is non-%NULL, then it will prepend the new row before the first
child of @parent, otherwise it will prepend a row to the top level. The
`iter` parameter will be changed to point to this new row.  The row will
be empty after this function is called. To fill in values, you need to
call gtk_tree_store_set() or gtk_tree_store_set_value().

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> An unset `GtkTreeIter` to set to the prepended row
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_remove">
<description>
Removes @iter from @tree_store.

After being removed, @iter is set to the next valid row at that level, or
invalidated if it previously pointed to the last one.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A valid `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> true if @iter is still valid, and false otherwise

</return>
</function>

<function name="gtk_tree_store_reorder">
<description>
Reorders the children of @parent in @tree_store to follow the order
indicated by @new_order.

Note that this function only works with unsorted stores.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent of the children to re-order
</parameter_description>
</parameter>
<parameter name="new_order">
<parameter_description> an array of integers mapping the new position
of each child to its old position before the re-ordering,
i.e. `new_order[newpos] = oldpos`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_set">
<description>
Sets the value of one or more cells in the row referenced by @iter.

The variable argument list should contain integer column numbers,
each column number followed by the value to be set.

The list is terminated by a value of `-1`.

For example, to set column 0 with type `G_TYPE_STRING` to “Foo”, you would
write

```c
gtk_tree_store_set (store, iter, 0, &quot;Foo&quot;, -1);
```

The value will be referenced by the store if it is a `G_TYPE_OBJECT`, and it
will be copied if it is a `G_TYPE_STRING` or `G_TYPE_BOXED`.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A valid `GtkTreeIter` for the row being modified
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> pairs of column number and value, terminated with -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_set_column_type">
<description>
Sets the type of the given column in a tree store.

This function is meant primarily for types that inherit from
`GtkTreeStore`, and should only be used when constructing a new
`GtkTreeStore`.

This functions cannot be called after a row has been added,
or a method on the `GtkTreeModel` interface is called on the
tree store.

Supported types include:

- `G_TYPE_UINT`
- `G_TYPE_INT`
- `G_TYPE_UCHAR`
- `G_TYPE_CHAR`
- `G_TYPE_BOOLEAN`
- `G_TYPE_POINTER`
- `G_TYPE_FLOAT`
- `G_TYPE_DOUBLE`
- `G_TYPE_STRING`
- `G_TYPE_BOXED` and its derived types
- `G_TYPE_OBJECT` and its derived types

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> a `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> column number
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> type of the data to be stored in @column
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_set_column_types">
<description>
Sets the type of the columns in a tree store.

This function is meant primarily for types that inherit from
`GtkTreeStore`, and should only be used when constructing a new
`GtkTreeStore`.

This functions cannot be called after a row has been added,
or a method on the `GtkTreeModel` interface is called on the
tree store.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="n_columns">
<parameter_description> Number of columns for the tree store
</parameter_description>
</parameter>
<parameter name="types">
<parameter_description> An array of `GType` types, one for each column
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_set_valist">
<description>
A version of gtk_tree_store_set() using `va_list`.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A valid `GtkTreeIter` for the row being modified
</parameter_description>
</parameter>
<parameter name="var_args">
<parameter_description> va_list of column/value pairs
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_set_value">
<description>
Sets the data in the cell specified by @iter and @column.

The type of @value must be convertible to the type of the
column.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> a `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A valid `GtkTreeIter` for the row being modified
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> column number to modify
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> new value for the cell
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_set_valuesv">
<description>
A variant of gtk_tree_store_set_valist() which takes
the columns and values as two arrays, instead of using variadic
arguments.

This function is mainly intended for language bindings or in case
the number of columns to change is not known until run-time.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> A valid `GtkTreeIter` for the row being modified
</parameter_description>
</parameter>
<parameter name="columns">
<parameter_description> an array of column numbers
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> an array of GValues
</parameter_description>
</parameter>
<parameter name="n_values">
<parameter_description> the length of the @columns and @values arrays
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_store_swap">
<description>
Swaps @a and @b in the same level of @tree_store.

Note that this function only works with unsorted stores.

Deprecated: 4.10: Use [class@Gtk.TreeListModel] instead

</description>
<parameters>
<parameter name="tree_store">
<parameter_description> A `GtkTreeStore`.
</parameter_description>
</parameter>
<parameter name="a">
<parameter_description> A `GtkTreeIter`.
</parameter_description>
</parameter>
<parameter name="b">
<parameter_description> Another `GtkTreeIter`.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_append_column">
<description>
Appends @column to the list of columns. If @tree_view has “fixed_height”
mode enabled, then @column must have its “sizing” property set to be
GTK_TREE_VIEW_COLUMN_FIXED.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> The `GtkTreeViewColumn` to add.
</parameter_description>
</parameter>
</parameters>
<return> The number of columns in @tree_view after appending.

</return>
</function>

<function name="gtk_tree_view_collapse_all">
<description>
Recursively collapses all visible, expanded nodes in @tree_view.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_collapse_row">
<description>
Collapses a row (hides its child rows, if they exist).

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> path to a row in the @tree_view
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the row was collapsed.

</return>
</function>

<function name="gtk_tree_view_column_add_attribute">
<description>
Adds an attribute mapping to the list in @tree_column.

The @column is the
column of the model to get a value from, and the @attribute is the
parameter on @cell_renderer to be set from the value. So for example
if column 2 of the model contains strings, you could have the
“text” attribute of a `GtkCellRendererText` get its values from
column 2.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`
</parameter_description>
</parameter>
<parameter name="cell_renderer">
<parameter_description> the `GtkCellRenderer` to set attributes on
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> An attribute on the renderer
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> The column position on the model to get the attribute from.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_cell_get_position">
<description>
Obtains the horizontal position and size of a cell in a column.

If the  cell is not found in the column, @start_pos and @width
are not changed and %FALSE is returned.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> a `GtkTreeViewColumn`
</parameter_description>
</parameter>
<parameter name="cell_renderer">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="x_offset">
<parameter_description> return location for the horizontal
position of @cell within @tree_column
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> return location for the width of @cell
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @cell belongs to @tree_column

</return>
</function>

<function name="gtk_tree_view_column_cell_get_size">
<description>
Obtains the width and height needed to render the column.  This is used
primarily by the `GtkTreeView`.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
<parameter name="x_offset">
<parameter_description> location to return x offset of a cell relative to @cell_area
</parameter_description>
</parameter>
<parameter name="y_offset">
<parameter_description> location to return y offset of a cell relative to @cell_area
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> location to return width needed to render a cell
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> location to return height needed to render a cell
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_cell_is_visible">
<description>
Returns %TRUE if any of the cells packed into the @tree_column are visible.
For this to be meaningful, you must first initialize the cells with
gtk_tree_view_column_cell_set_cell_data()

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if any of the cells packed into the @tree_column are currently visible

</return>
</function>

<function name="gtk_tree_view_column_cell_set_cell_data">
<description>
Sets the cell renderer based on the @tree_model and @iter.  That is, for
every attribute mapping in @tree_column, it will get a value from the set
column on the @iter, and use that value to set the attribute on the cell
renderer.  This is used primarily by the `GtkTreeView`.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
<parameter name="tree_model">
<parameter_description> The `GtkTreeModel` to get the cell renderers attributes from.
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> The `GtkTreeIter` to get the cell renderer’s attributes from.
</parameter_description>
</parameter>
<parameter name="is_expander">
<parameter_description> %TRUE, if the row has children
</parameter_description>
</parameter>
<parameter name="is_expanded">
<parameter_description> %TRUE, if the row has visible children
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_cell_snapshot">
<description>
Renders the cell contained by #tree_column. This is used primarily by the
`GtkTreeView`.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
<parameter name="snapshot">
<parameter_description> `GtkSnapshot` to draw to
</parameter_description>
</parameter>
<parameter name="background_area">
<parameter_description> entire cell area (including tree expanders and maybe padding on the sides)
</parameter_description>
</parameter>
<parameter name="cell_area">
<parameter_description> area normally rendered by a cell renderer
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> flags that affect rendering
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_clear">
<description>
Unsets all the mappings on all renderers on the @tree_column.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_clear_attributes">
<description>
Clears all existing attributes previously set with
gtk_tree_view_column_set_attributes().

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> a `GtkTreeViewColumn`
</parameter_description>
</parameter>
<parameter name="cell_renderer">
<parameter_description> a `GtkCellRenderer` to clear the attribute mapping on.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_clicked">
<description>
Emits the “clicked” signal on the column.  This function will only work if
@tree_column is clickable.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> a `GtkTreeViewColumn`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_focus_cell">
<description>
Sets the current keyboard focus to be at @cell, if the column contains
2 or more editable and activatable cells.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> A `GtkCellRenderer`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_get_alignment">
<description>
Returns the current x alignment of @tree_column.  This value can range
between 0.0 and 1.0.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
</parameters>
<return> The current alignent of @tree_column.

</return>
</function>

<function name="gtk_tree_view_column_get_button">
<description>
Returns the button used in the treeview column header

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> The button for the column header.

</return>
</function>

<function name="gtk_tree_view_column_get_clickable">
<description>
Returns %TRUE if the user can click on the header for the column.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> a `GtkTreeViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if user can click the column header.

</return>
</function>

<function name="gtk_tree_view_column_get_expand">
<description>
Returns %TRUE if the column expands to fill available space.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the column expands to fill available space.

</return>
</function>

<function name="gtk_tree_view_column_get_fixed_width">
<description>
Gets the fixed width of the column.  This may not be the actual displayed
width of the column; for that, use gtk_tree_view_column_get_width().

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
</parameters>
<return> The fixed width of the column.

</return>
</function>

<function name="gtk_tree_view_column_get_max_width">
<description>
Returns the maximum width in pixels of the @tree_column, or -1 if no maximum
width is set.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
</parameters>
<return> The maximum width of the @tree_column.

</return>
</function>

<function name="gtk_tree_view_column_get_min_width">
<description>
Returns the minimum width in pixels of the @tree_column, or -1 if no minimum
width is set.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
</parameters>
<return> The minimum width of the @tree_column.

</return>
</function>

<function name="gtk_tree_view_column_get_reorderable">
<description>
Returns %TRUE if the @tree_column can be reordered by the user.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the @tree_column can be reordered by the user.

</return>
</function>

<function name="gtk_tree_view_column_get_resizable">
<description>
Returns %TRUE if the @tree_column can be resized by the end user.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if the @tree_column can be resized.

</return>
</function>

<function name="gtk_tree_view_column_get_sizing">
<description>
Returns the current type of @tree_column.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
</parameters>
<return> The type of @tree_column.

</return>
</function>

<function name="gtk_tree_view_column_get_sort_column_id">
<description>
Gets the logical @sort_column_id that the model sorts on
when this column is selected for sorting.

See [method@Gtk.TreeViewColumn.set_sort_column_id].

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> a `GtkTreeViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> the current @sort_column_id for this column, or -1 if
this column can’t be used for sorting

</return>
</function>

<function name="gtk_tree_view_column_get_sort_indicator">
<description>
Gets the value set by gtk_tree_view_column_set_sort_indicator().

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> a `GtkTreeViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> whether the sort indicator arrow is displayed

</return>
</function>

<function name="gtk_tree_view_column_get_sort_order">
<description>
Gets the value set by gtk_tree_view_column_set_sort_order().

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> a `GtkTreeViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> the sort order the sort indicator is indicating

</return>
</function>

<function name="gtk_tree_view_column_get_spacing">
<description>
Returns the spacing of @tree_column.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
</parameters>
<return> the spacing of @tree_column.

</return>
</function>

<function name="gtk_tree_view_column_get_title">
<description>
Returns the title of the widget.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
</parameters>
<return> the title of the column. This string should not be
modified or freed.

</return>
</function>

<function name="gtk_tree_view_column_get_tree_view">
<description>
Returns the `GtkTreeView` wherein @tree_column has been inserted.
If @column is currently not inserted in any tree view, %NULL is
returned.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> The tree view wherein @column
has been inserted

</return>
</function>

<function name="gtk_tree_view_column_get_visible">
<description>
Returns %TRUE if @tree_column is visible.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
</parameters>
<return> whether the column is visible or not.  If it is visible, then
the tree will show the column.

</return>
</function>

<function name="gtk_tree_view_column_get_widget">
<description>
Returns the `GtkWidget` in the button on the column header.

If a custom widget has not been set then %NULL is returned.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`
</parameter_description>
</parameter>
</parameters>
<return> The `GtkWidget` in the column header

</return>
</function>

<function name="gtk_tree_view_column_get_width">
<description>
Returns the current size of @tree_column in pixels.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
</parameters>
<return> The current width of @tree_column.

</return>
</function>

<function name="gtk_tree_view_column_get_x_offset">
<description>
Returns the current X offset of @tree_column in pixels.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
</parameters>
<return> The current X offset of @tree_column.

</return>
</function>

<function name="gtk_tree_view_column_new">
<description>
Creates a new `GtkTreeViewColumn`.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
</parameters>
<return> A newly created `GtkTreeViewColumn`.

</return>
</function>

<function name="gtk_tree_view_column_new_with_area">
<description>
Creates a new `GtkTreeViewColumn` using @area to render its cells.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="area">
<parameter_description> the `GtkCellArea` that the newly created column should use to layout cells.
</parameter_description>
</parameter>
</parameters>
<return> A newly created `GtkTreeViewColumn`.

</return>
</function>

<function name="gtk_tree_view_column_new_with_attributes">
<description>
Creates a new `GtkTreeViewColumn` with a number of default values.
This is equivalent to calling gtk_tree_view_column_set_title(),
gtk_tree_view_column_pack_start(), and
gtk_tree_view_column_set_attributes() on the newly created `GtkTreeViewColumn`.

Here’s a simple example:
|[&lt;!-- language=&quot;C&quot; --&gt;
enum { TEXT_COLUMN, COLOR_COLUMN, N_COLUMNS };
// ...
{
GtkTreeViewColumn *column;
GtkCellRenderer   *renderer = gtk_cell_renderer_text_new ();

column = gtk_tree_view_column_new_with_attributes (&quot;Title&quot;,
renderer,
&quot;text&quot;, TEXT_COLUMN,
&quot;foreground&quot;, COLOR_COLUMN,
NULL);
}
]|

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="title">
<parameter_description> The title to set the header to
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> The `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> A %NULL-terminated list of attributes
</parameter_description>
</parameter>
</parameters>
<return> A newly created `GtkTreeViewColumn`.

</return>
</function>

<function name="gtk_tree_view_column_pack_end">
<description>
Adds the @cell to end of the column. If @expand is %FALSE, then the @cell
is allocated no more space than it needs. Any unused space is divided
evenly between cells for which @expand is %TRUE.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> The `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="expand">
<parameter_description> %TRUE if @cell is to be given extra space allocated to @tree_column.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_pack_start">
<description>
Packs the @cell into the beginning of the column. If @expand is %FALSE, then
the @cell is allocated no more space than it needs. Any unused space is divided
evenly between cells for which @expand is %TRUE.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> The `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="expand">
<parameter_description> %TRUE if @cell is to be given extra space allocated to @tree_column.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_queue_resize">
<description>
Flags the column, and the cell renderers added to this column, to have
their sizes renegotiated.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_alignment">
<description>
Sets the alignment of the title or custom widget inside the column header.
The alignment determines its location inside the button -- 0.0 for left, 0.5
for center, 1.0 for right.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
<parameter name="xalign">
<parameter_description> The alignment, which is between [0.0 and 1.0] inclusive.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_attributes">
<description>
Sets the attributes in the list as the attributes of @tree_column.

The attributes should be in attribute/column order, as in
gtk_tree_view_column_add_attribute(). All existing attributes
are removed, and replaced with the new attributes.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`
</parameter_description>
</parameter>
<parameter name="cell_renderer">
<parameter_description> the `GtkCellRenderer` we’re setting the attributes of
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> A %NULL-terminated list of attributes
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_cell_data_func">
<description>
Sets the `GtkTreeCellDataFunc` to use for the column.

This
function is used instead of the standard attributes mapping for
setting the column value, and should set the value of @tree_column's
cell renderer as appropriate.  @func may be %NULL to remove an
older one.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`
</parameter_description>
</parameter>
<parameter name="cell_renderer">
<parameter_description> A `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> The `GtkTreeCellDataFunc` to use.
</parameter_description>
</parameter>
<parameter name="func_data">
<parameter_description> The user data for @func.
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> The destroy notification for @func_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_clickable">
<description>
Sets the header to be active if @clickable is %TRUE.  When the header is
active, then it can take keyboard focus, and can be clicked.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
<parameter name="clickable">
<parameter_description> %TRUE if the header is active.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_expand">
<description>
Sets the column to take available extra space.  This space is shared equally
amongst all columns that have the expand set to %TRUE.  If no column has this
option set, then the last column gets all extra space.  By default, every
column is created with this %FALSE.

Along with “fixed-width”, the “expand” property changes when the column is
resized by the user.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
<parameter name="expand">
<parameter_description> %TRUE if the column should expand to fill available space.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_fixed_width">
<description>
If @fixed_width is not -1, sets the fixed width of @tree_column; otherwise
unsets it.  The effective value of @fixed_width is clamped between the
minimum and maximum width of the column; however, the value stored in the
“fixed-width” property is not clamped.  If the column sizing is
%GTK_TREE_VIEW_COLUMN_GROW_ONLY or %GTK_TREE_VIEW_COLUMN_AUTOSIZE, setting
a fixed width overrides the automatically calculated width.  Note that
@fixed_width is only a hint to GTK; the width actually allocated to the
column may be greater or less than requested.

Along with “expand”, the “fixed-width” property changes when the column is
resized by the user.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
<parameter name="fixed_width">
<parameter_description> The new fixed width, in pixels, or -1.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_max_width">
<description>
Sets the maximum width of the @tree_column.  If @max_width is -1, then the
maximum width is unset.  Note, the column can actually be wider than max
width if it’s the last column in a view.  In this case, the column expands to
fill any extra space.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
<parameter name="max_width">
<parameter_description> The maximum width of the column in pixels, or -1.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_min_width">
<description>
Sets the minimum width of the @tree_column.  If @min_width is -1, then the
minimum width is unset.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
<parameter name="min_width">
<parameter_description> The minimum width of the column in pixels, or -1.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_reorderable">
<description>
If @reorderable is %TRUE, then the column can be reordered by the end user
dragging the header.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`
</parameter_description>
</parameter>
<parameter name="reorderable">
<parameter_description> %TRUE, if the column can be reordered.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_resizable">
<description>
If @resizable is %TRUE, then the user can explicitly resize the column by
grabbing the outer edge of the column button.

If resizable is %TRUE and
sizing mode of the column is %GTK_TREE_VIEW_COLUMN_AUTOSIZE, then the sizing
mode is changed to %GTK_TREE_VIEW_COLUMN_GROW_ONLY.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`
</parameter_description>
</parameter>
<parameter name="resizable">
<parameter_description> %TRUE, if the column can be resized
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_sizing">
<description>
Sets the growth behavior of @tree_column to @type.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> The `GtkTreeViewColumn`Sizing.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_sort_column_id">
<description>
Sets the logical @sort_column_id that this column sorts on when this column
is selected for sorting.  Doing so makes the column header clickable.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> a `GtkTreeViewColumn`
</parameter_description>
</parameter>
<parameter name="sort_column_id">
<parameter_description> The @sort_column_id of the model to sort on.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_sort_indicator">
<description>
Call this function with a @setting of %TRUE to display an arrow in
the header button indicating the column is sorted. Call
gtk_tree_view_column_set_sort_order() to change the direction of
the arrow.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> a `GtkTreeViewColumn`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> %TRUE to display an indicator that the column is sorted
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_sort_order">
<description>
Changes the appearance of the sort indicator.

This does not actually sort the model.  Use
gtk_tree_view_column_set_sort_column_id() if you want automatic sorting
support.  This function is primarily for custom sorting behavior, and should
be used in conjunction with gtk_tree_sortable_set_sort_column_id() to do
that. For custom models, the mechanism will vary.

The sort indicator changes direction to indicate normal sort or reverse sort.
Note that you must have the sort indicator enabled to see anything when
calling this function; see gtk_tree_view_column_set_sort_indicator().

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> a `GtkTreeViewColumn`
</parameter_description>
</parameter>
<parameter name="order">
<parameter_description> sort order that the sort indicator should indicate
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_spacing">
<description>
Sets the spacing field of @tree_column, which is the number of pixels to
place between cell renderers packed into it.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
<parameter name="spacing">
<parameter_description> distance between cell renderers in pixels.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_title">
<description>
Sets the title of the @tree_column.  If a custom widget has been set, then
this value is ignored.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
<parameter name="title">
<parameter_description> The title of the @tree_column.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_visible">
<description>
Sets the visibility of @tree_column.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
<parameter name="visible">
<parameter_description> %TRUE if the @tree_column is visible.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_column_set_widget">
<description>
Sets the widget in the header to be @widget.  If widget is %NULL, then the
header button is set with a `GtkLabel` set to the title of @tree_column.

Deprecated: 4.10: Use GtkColumnView instead

</description>
<parameters>
<parameter name="tree_column">
<parameter_description> A `GtkTreeViewColumn`.
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> A child `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_columns_autosize">
<description>
Resizes all columns to their optimal width. Only works after the
treeview has been realized.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_convert_bin_window_to_tree_coords">
<description>
Converts bin_window coordinates to coordinates for the
tree (the full scrollable area of the tree).

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="bx">
<parameter_description> X coordinate relative to bin_window
</parameter_description>
</parameter>
<parameter name="by">
<parameter_description> Y coordinate relative to bin_window
</parameter_description>
</parameter>
<parameter name="tx">
<parameter_description> return location for tree X coordinate
</parameter_description>
</parameter>
<parameter name="ty">
<parameter_description> return location for tree Y coordinate
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_convert_bin_window_to_widget_coords">
<description>
Converts bin_window coordinates to widget relative coordinates.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="bx">
<parameter_description> bin_window X coordinate
</parameter_description>
</parameter>
<parameter name="by">
<parameter_description> bin_window Y coordinate
</parameter_description>
</parameter>
<parameter name="wx">
<parameter_description> return location for widget X coordinate
</parameter_description>
</parameter>
<parameter name="wy">
<parameter_description> return location for widget Y coordinate
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_convert_tree_to_bin_window_coords">
<description>
Converts tree coordinates (coordinates in full scrollable area of the tree)
to bin_window coordinates.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="tx">
<parameter_description> tree X coordinate
</parameter_description>
</parameter>
<parameter name="ty">
<parameter_description> tree Y coordinate
</parameter_description>
</parameter>
<parameter name="bx">
<parameter_description> return location for X coordinate relative to bin_window
</parameter_description>
</parameter>
<parameter name="by">
<parameter_description> return location for Y coordinate relative to bin_window
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_convert_tree_to_widget_coords">
<description>
Converts tree coordinates (coordinates in full scrollable area of the tree)
to widget coordinates.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="tx">
<parameter_description> X coordinate relative to the tree
</parameter_description>
</parameter>
<parameter name="ty">
<parameter_description> Y coordinate relative to the tree
</parameter_description>
</parameter>
<parameter name="wx">
<parameter_description> return location for widget X coordinate
</parameter_description>
</parameter>
<parameter name="wy">
<parameter_description> return location for widget Y coordinate
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_convert_widget_to_bin_window_coords">
<description>
Converts widget coordinates to coordinates for the bin_window.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="wx">
<parameter_description> X coordinate relative to the widget
</parameter_description>
</parameter>
<parameter name="wy">
<parameter_description> Y coordinate relative to the widget
</parameter_description>
</parameter>
<parameter name="bx">
<parameter_description> return location for bin_window X coordinate
</parameter_description>
</parameter>
<parameter name="by">
<parameter_description> return location for bin_window Y coordinate
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_convert_widget_to_tree_coords">
<description>
Converts widget coordinates to coordinates for the
tree (the full scrollable area of the tree).

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="wx">
<parameter_description> X coordinate relative to the widget
</parameter_description>
</parameter>
<parameter name="wy">
<parameter_description> Y coordinate relative to the widget
</parameter_description>
</parameter>
<parameter name="tx">
<parameter_description> return location for tree X coordinate
</parameter_description>
</parameter>
<parameter name="ty">
<parameter_description> return location for tree Y coordinate
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_create_row_drag_icon">
<description>
Creates a `cairo_surface_t` representation of the row at @path.
This image is used for a drag icon.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath` in @tree_view
</parameter_description>
</parameter>
</parameters>
<return> a newly-allocated surface of the drag icon.

</return>
</function>

<function name="gtk_tree_view_enable_model_drag_dest">
<description>
Turns @tree_view into a drop destination for automatic DND. Calling
this method sets `GtkTreeView`:reorderable to %FALSE.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="formats">
<parameter_description> the target formats that the drag will support
</parameter_description>
</parameter>
<parameter name="actions">
<parameter_description> the bitmask of possible actions for a drag from this
widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_enable_model_drag_source">
<description>
Turns @tree_view into a drag source for automatic DND. Calling this
method sets `GtkTreeView`:reorderable to %FALSE.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="start_button_mask">
<parameter_description> Mask of allowed buttons to start drag
</parameter_description>
</parameter>
<parameter name="formats">
<parameter_description> the target formats that the drag will support
</parameter_description>
</parameter>
<parameter name="actions">
<parameter_description> the bitmask of possible actions for a drag from this
widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_expand_all">
<description>
Recursively expands all nodes in the @tree_view.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_expand_row">
<description>
Opens the row so its children are visible.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> path to a row
</parameter_description>
</parameter>
<parameter name="open_all">
<parameter_description> whether to recursively expand, or just expand immediate children
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the row existed and had children

</return>
</function>

<function name="gtk_tree_view_expand_to_path">
<description>
Expands the row at @path. This will also expand all parent rows of
@path as necessary.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> path to a row.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_get_activate_on_single_click">
<description>
Gets the setting set by gtk_tree_view_set_activate_on_single_click().

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if row-activated will be emitted on a single click

</return>
</function>

<function name="gtk_tree_view_get_background_area">
<description>
Fills the bounding rectangle in bin_window coordinates for the cell at the
row specified by @path and the column specified by @column.  If @path is
%NULL, or points to a node not found in the tree, the @y and @height fields of
the rectangle will be filled with 0. If @column is %NULL, the @x and @width
fields will be filled with 0.  The returned rectangle is equivalent to the
@background_area passed to gtk_cell_renderer_render().  These background
areas tile to cover the entire bin window.  Contrast with the @cell_area,
returned by gtk_tree_view_get_cell_area(), which returns only the cell
itself, excluding surrounding borders and the tree expander area.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath` for the row, or %NULL to get only horizontal coordinates
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> a `GtkTreeViewColumn` for the column, or %NULL to get only vertical coordinates
</parameter_description>
</parameter>
<parameter name="rect">
<parameter_description> rectangle to fill with cell background rect
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_get_cell_area">
<description>
Fills the bounding rectangle in bin_window coordinates for the cell at the
row specified by @path and the column specified by @column.  If @path is
%NULL, or points to a path not currently displayed, the @y and @height fields
of the rectangle will be filled with 0. If @column is %NULL, the @x and @width
fields will be filled with 0.  The sum of all cell rects does not cover the
entire tree; there are extra pixels in between rows, for example. The
returned rectangle is equivalent to the @cell_area passed to
gtk_cell_renderer_render().  This function is only valid if @tree_view is
realized.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath` for the row, or %NULL to get only horizontal coordinates
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> a `GtkTreeViewColumn` for the column, or %NULL to get only vertical coordinates
</parameter_description>
</parameter>
<parameter name="rect">
<parameter_description> rectangle to fill with cell rect
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_get_column">
<description>
Gets the `GtkTreeViewColumn` at the given position in the #tree_view.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
<parameter name="n">
<parameter_description> The position of the column, counting from 0.
</parameter_description>
</parameter>
</parameters>
<return> The `GtkTreeViewColumn`, or %NULL if the
position is outside the range of columns.

</return>
</function>

<function name="gtk_tree_view_get_columns">
<description>
Returns a `GList` of all the `GtkTreeViewColumn`s currently in @tree_view.
The returned list must be freed with g_list_free ().

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> A list of `GtkTreeViewColumn`s

</return>
</function>

<function name="gtk_tree_view_get_cursor">
<description>
Fills in @path and @focus_column with the current path and focus column.  If
the cursor isn’t currently set, then *@path will be %NULL.  If no column
currently has focus, then *@focus_column will be %NULL.

The returned `GtkTreePath` must be freed with gtk_tree_path_free() when
you are done with it.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> A pointer to be
filled with the current cursor path
</parameter_description>
</parameter>
<parameter name="focus_column">
<parameter_description> A
pointer to be filled with the current focus column
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_get_dest_row_at_pos">
<description>
Determines the destination row for a given position.  @drag_x and
@drag_y are expected to be in widget coordinates.  This function is only
meaningful if @tree_view is realized.  Therefore this function will always
return %FALSE if @tree_view is not realized or does not have a model.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="drag_x">
<parameter_description> the position to determine the destination row for
</parameter_description>
</parameter>
<parameter name="drag_y">
<parameter_description> the position to determine the destination row for
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> Return location for the path of
the highlighted row
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> Return location for the drop position, or
%NULL
</parameter_description>
</parameter>
</parameters>
<return> whether there is a row at the given position, %TRUE if this
is indeed the case.

</return>
</function>

<function name="gtk_tree_view_get_drag_dest_row">
<description>
Gets information about the row that is highlighted for feedback.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> Return location for the path of the highlighted row
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> Return location for the drop position
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_get_enable_search">
<description>
Returns whether or not the tree allows to start interactive searching
by typing in text.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> whether or not to let the user search interactively

</return>
</function>

<function name="gtk_tree_view_get_enable_tree_lines">
<description>
Returns whether or not tree lines are drawn in @tree_view.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if tree lines are drawn in @tree_view, %FALSE
otherwise.

</return>
</function>

<function name="gtk_tree_view_get_expander_column">
<description>
Returns the column that is the current expander column,
or %NULL if none has been set.
This column has the expander arrow drawn next to it.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> The expander column.

</return>
</function>

<function name="gtk_tree_view_get_fixed_height_mode">
<description>
Returns whether fixed height mode is turned on for @tree_view.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @tree_view is in fixed height mode

</return>
</function>

<function name="gtk_tree_view_get_grid_lines">
<description>
Returns which grid lines are enabled in @tree_view.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkTreeView`GridLines value indicating which grid lines
are enabled.

</return>
</function>

<function name="gtk_tree_view_get_headers_clickable">
<description>
Returns whether all header columns are clickable.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if all header columns are clickable, otherwise %FALSE

</return>
</function>

<function name="gtk_tree_view_get_headers_visible">
<description>
Returns %TRUE if the headers on the @tree_view are visible.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
</parameters>
<return> Whether the headers are visible or not.

</return>
</function>

<function name="gtk_tree_view_get_hover_expand">
<description>
Returns whether hover expansion mode is turned on for @tree_view.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @tree_view is in hover expansion mode

</return>
</function>

<function name="gtk_tree_view_get_hover_selection">
<description>
Returns whether hover selection mode is turned on for @tree_view.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @tree_view is in hover selection mode

</return>
</function>

<function name="gtk_tree_view_get_level_indentation">
<description>
Returns the amount, in pixels, of extra indentation for child levels
in @tree_view.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`.
</parameter_description>
</parameter>
</parameters>
<return> the amount of extra indentation for child levels in
@tree_view.  A return value of 0 means that this feature is disabled.

</return>
</function>

<function name="gtk_tree_view_get_model">
<description>
Returns the model the `GtkTreeView` is based on.  Returns %NULL if the
model is unset.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> A `GtkTreeModel`

</return>
</function>

<function name="gtk_tree_view_get_n_columns">
<description>
Queries the number of columns in the given @tree_view.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> The number of columns in the @tree_view

</return>
</function>

<function name="gtk_tree_view_get_path_at_pos">
<description>
Finds the path at the point (@x, @y), relative to bin_window coordinates.
That is, @x and @y are relative to an events coordinates. Widget-relative
coordinates must be converted using
gtk_tree_view_convert_widget_to_bin_window_coords(). It is primarily for
things like popup menus. If @path is non-%NULL, then it will be filled
with the `GtkTreePath` at that point.  This path should be freed with
gtk_tree_path_free().  If @column is non-%NULL, then it will be filled
with the column at that point.  @cell_x and @cell_y return the coordinates
relative to the cell background (i.e. the @background_area passed to
gtk_cell_renderer_render()).  This function is only meaningful if
@tree_view is realized.  Therefore this function will always return %FALSE
if @tree_view is not realized or does not have a model.

For converting widget coordinates (eg. the ones you get from
GtkWidget::query-tooltip), please see
gtk_tree_view_convert_widget_to_bin_window_coords().

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> The x position to be identified (relative to bin_window).
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> The y position to be identified (relative to bin_window).
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> A pointer to a `GtkTreePath`
pointer to be filled in
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> A pointer to
a `GtkTreeViewColumn` pointer to be filled in
</parameter_description>
</parameter>
<parameter name="cell_x">
<parameter_description> A pointer where the X coordinate
relative to the cell can be placed
</parameter_description>
</parameter>
<parameter name="cell_y">
<parameter_description> A pointer where the Y coordinate
relative to the cell can be placed
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a row exists at that coordinate.

</return>
</function>

<function name="gtk_tree_view_get_reorderable">
<description>
Retrieves whether the user can reorder the tree via drag-and-drop. See
gtk_tree_view_set_reorderable().

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the tree can be reordered.

</return>
</function>

<function name="gtk_tree_view_get_row_separator_func">
<description>
Returns the current row separator function.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> the current row separator function.

</return>
</function>

<function name="gtk_tree_view_get_rubber_banding">
<description>
Returns whether rubber banding is turned on for @tree_view.  If the
selection mode is %GTK_SELECTION_MULTIPLE, rubber banding will allow the
user to select multiple rows by dragging the mouse.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if rubber banding in @tree_view is enabled.

</return>
</function>

<function name="gtk_tree_view_get_search_column">
<description>
Gets the column searched on by the interactive search code.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> the column the interactive search code searches in.

</return>
</function>

<function name="gtk_tree_view_get_search_entry">
<description>
Returns the `GtkEntry` which is currently in use as interactive search
entry for @tree_view.  In case the built-in entry is being used, %NULL
will be returned.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> the entry currently in use as search entry.

</return>
</function>

<function name="gtk_tree_view_get_search_equal_func">
<description>
Returns the compare function currently in use.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> the currently used compare function for the search code.

</return>
</function>

<function name="gtk_tree_view_get_selection">
<description>
Gets the `GtkTreeSelection` associated with @tree_view.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
</parameters>
<return> A `GtkTreeSelection` object.

</return>
</function>

<function name="gtk_tree_view_get_show_expanders">
<description>
Returns whether or not expanders are drawn in @tree_view.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if expanders are drawn in @tree_view, %FALSE
otherwise.

</return>
</function>

<function name="gtk_tree_view_get_tooltip_column">
<description>
Returns the column of @tree_view’s model which is being used for
displaying tooltips on @tree_view’s rows.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> the index of the tooltip column that is currently being
used, or -1 if this is disabled.

</return>
</function>

<function name="gtk_tree_view_get_tooltip_context">
<description>
This function is supposed to be used in a ::query-tooltip
signal handler for `GtkTreeView`. The @x, @y and @keyboard_tip values
which are received in the signal handler, should be passed to this
function without modification.

The return value indicates whether there is a tree view row at the given
coordinates (%TRUE) or not (%FALSE) for mouse tooltips. For keyboard
tooltips the row returned will be the cursor row. When %TRUE, then any of
@model, @path and @iter which have been provided will be set to point to
that row and the corresponding model. @x and @y will always be converted
to be relative to @tree_view’s bin_window if @keyboard_tooltip is %FALSE.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> the x coordinate (relative to widget coordinates)
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> the y coordinate (relative to widget coordinates)
</parameter_description>
</parameter>
<parameter name="keyboard_tip">
<parameter_description> whether this is a keyboard tooltip or not
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a pointer to
receive a `GtkTreeModel`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a pointer to receive a `GtkTreePath`
</parameter_description>
</parameter>
<parameter name="iter">
<parameter_description> a pointer to receive a `GtkTreeIter`
</parameter_description>
</parameter>
</parameters>
<return> whether or not the given tooltip context points to a row

</return>
</function>

<function name="gtk_tree_view_get_visible_range">
<description>
Sets @start_path and @end_path to be the first and last visible path.
Note that there may be invisible paths in between.

The paths should be freed with gtk_tree_path_free() after use.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="start_path">
<parameter_description> Return location for start of region
</parameter_description>
</parameter>
<parameter name="end_path">
<parameter_description> Return location for end of region
</parameter_description>
</parameter>
</parameters>
<return> %TRUE, if valid paths were placed in @start_path and @end_path.

</return>
</function>

<function name="gtk_tree_view_get_visible_rect">
<description>
Fills @visible_rect with the currently-visible region of the
buffer, in tree coordinates. Convert to bin_window coordinates with
gtk_tree_view_convert_tree_to_bin_window_coords().
Tree coordinates start at 0,0 for row 0 of the tree, and cover the entire
scrollable area of the tree.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="visible_rect">
<parameter_description> rectangle to fill
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_insert_column">
<description>
This inserts the @column into the @tree_view at @position.  If @position is
-1, then the column is inserted at the end. If @tree_view has
“fixed_height” mode enabled, then @column must have its “sizing” property
set to be GTK_TREE_VIEW_COLUMN_FIXED.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> The `GtkTreeViewColumn` to be inserted.
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> The position to insert @column in.
</parameter_description>
</parameter>
</parameters>
<return> The number of columns in @tree_view after insertion.

</return>
</function>

<function name="gtk_tree_view_insert_column_with_attributes">
<description>
Creates a new `GtkTreeViewColumn` and inserts it into the @tree_view at
@position.  If @position is -1, then the newly created column is inserted at
the end.  The column is initialized with the attributes given. If @tree_view
has “fixed_height” mode enabled, then the new column will have its sizing
property set to be GTK_TREE_VIEW_COLUMN_FIXED.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> The position to insert the new column in
</parameter_description>
</parameter>
<parameter name="title">
<parameter_description> The title to set the header to
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> The `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> A %NULL-terminated list of attributes
</parameter_description>
</parameter>
</parameters>
<return> The number of columns in @tree_view after insertion.

</return>
</function>

<function name="gtk_tree_view_insert_column_with_data_func">
<description>
Convenience function that inserts a new column into the `GtkTreeView`
with the given cell renderer and a `GtkTreeCellDataFunc` to set cell renderer
attributes (normally using data from the model). See also
gtk_tree_view_column_set_cell_data_func(), gtk_tree_view_column_pack_start().
If @tree_view has “fixed_height” mode enabled, then the new column will have its
“sizing” property set to be GTK_TREE_VIEW_COLUMN_FIXED.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> Position to insert, -1 for append
</parameter_description>
</parameter>
<parameter name="title">
<parameter_description> column title
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> cell renderer for column
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> function to set attributes of cell renderer
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> data for @func
</parameter_description>
</parameter>
<parameter name="dnotify">
<parameter_description> destroy notifier for @data
</parameter_description>
</parameter>
</parameters>
<return> number of columns in the tree view post-insert

</return>
</function>

<function name="gtk_tree_view_is_blank_at_pos">
<description>
Determine whether the point (@x, @y) in @tree_view is blank, that is no
cell content nor an expander arrow is drawn at the location. If so, the
location can be considered as the background. You might wish to take
special action on clicks on the background, such as clearing a current
selection, having a custom context menu or starting rubber banding.

The @x and @y coordinate that are provided must be relative to bin_window
coordinates.  Widget-relative coordinates must be converted using
gtk_tree_view_convert_widget_to_bin_window_coords().

For converting widget coordinates (eg. the ones you get from
GtkWidget::query-tooltip), please see
gtk_tree_view_convert_widget_to_bin_window_coords().

The @path, @column, @cell_x and @cell_y arguments will be filled in
likewise as for gtk_tree_view_get_path_at_pos().  Please see
gtk_tree_view_get_path_at_pos() for more information.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> The x position to be identified (relative to bin_window)
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> The y position to be identified (relative to bin_window)
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> A pointer to a `GtkTreePath` pointer to
be filled in
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> A pointer to a
`GtkTreeViewColumn` pointer to be filled in
</parameter_description>
</parameter>
<parameter name="cell_x">
<parameter_description> A pointer where the X coordinate relative to the
cell can be placed
</parameter_description>
</parameter>
<parameter name="cell_y">
<parameter_description> A pointer where the Y coordinate relative to the
cell can be placed
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the area at the given coordinates is blank,
%FALSE otherwise.

</return>
</function>

<function name="gtk_tree_view_is_rubber_banding_active">
<description>
Returns whether a rubber banding operation is currently being done
in @tree_view.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a rubber banding operation is currently being
done in @tree_view.

</return>
</function>

<function name="gtk_tree_view_map_expanded_rows">
<description>
Calls @func on all expanded rows.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> A function to be called
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> User data to be passed to the function.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_move_column_after">
<description>
Moves @column to be after to @base_column.  If @base_column is %NULL, then
@column is placed in the first position.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> The `GtkTreeViewColumn` to be moved.
</parameter_description>
</parameter>
<parameter name="base_column">
<parameter_description> The `GtkTreeViewColumn` to be moved relative to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_new">
<description>
Creates a new `GtkTreeView` widget.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
</parameters>
<return> A newly created `GtkTreeView` widget.

</return>
</function>

<function name="gtk_tree_view_new_with_model">
<description>
Creates a new `GtkTreeView` widget with the model initialized to @model.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="model">
<parameter_description> the model.
</parameter_description>
</parameter>
</parameters>
<return> A newly created `GtkTreeView` widget.

</return>
</function>

<function name="gtk_tree_view_remove_column">
<description>
Removes @column from @tree_view.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> The `GtkTreeViewColumn` to remove.
</parameter_description>
</parameter>
</parameters>
<return> The number of columns in @tree_view after removing.

</return>
</function>

<function name="gtk_tree_view_row_activated">
<description>
Activates the cell determined by @path and @column.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> The `GtkTreePath` to be activated.
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> The `GtkTreeViewColumn` to be activated.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_row_expanded">
<description>
Returns %TRUE if the node pointed to by @path is expanded in @tree_view.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> A `GtkTreePath` to test expansion state.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if #path is expanded.

</return>
</function>

<function name="gtk_tree_view_scroll_to_cell">
<description>
Moves the alignments of @tree_view to the position specified by @column and
@path.  If @column is %NULL, then no horizontal scrolling occurs.  Likewise,
if @path is %NULL no vertical scrolling occurs.  At a minimum, one of @column
or @path need to be non-%NULL.  @row_align determines where the row is
placed, and @col_align determines where @column is placed.  Both are expected
to be between 0.0 and 1.0. 0.0 means left/top alignment, 1.0 means
right/bottom alignment, 0.5 means center.

If @use_align is %FALSE, then the alignment arguments are ignored, and the
tree does the minimum amount of work to scroll the cell onto the screen.
This means that the cell will be scrolled to the edge closest to its current
position.  If the cell is currently visible on the screen, nothing is done.

This function only works if the model is set, and @path is a valid row on the
model.  If the model changes before the @tree_view is realized, the centered
path will be modified to reflect this change.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> The path of the row to move to
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> The `GtkTreeViewColumn` to move horizontally to
</parameter_description>
</parameter>
<parameter name="use_align">
<parameter_description> whether to use alignment arguments, or %FALSE.
</parameter_description>
</parameter>
<parameter name="row_align">
<parameter_description> The vertical alignment of the row specified by @path.
</parameter_description>
</parameter>
<parameter name="col_align">
<parameter_description> The horizontal alignment of the column specified by @column.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_scroll_to_point">
<description>
Scrolls the tree view such that the top-left corner of the visible
area is @tree_x, @tree_y, where @tree_x and @tree_y are specified
in tree coordinates.  The @tree_view must be realized before
this function is called.  If it isn't, you probably want to be
using gtk_tree_view_scroll_to_cell().

If either @tree_x or @tree_y are -1, then that direction isn’t scrolled.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="tree_x">
<parameter_description> X coordinate of new top-left pixel of visible area, or -1
</parameter_description>
</parameter>
<parameter name="tree_y">
<parameter_description> Y coordinate of new top-left pixel of visible area, or -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_activate_on_single_click">
<description>
Cause the `GtkTreeView`::row-activated signal to be emitted
on a single click instead of a double click.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="single">
<parameter_description> %TRUE to emit row-activated on a single click
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_column_drag_function">
<description>
Sets a user function for determining where a column may be dropped when
dragged.  This function is called on every column pair in turn at the
beginning of a column drag to determine where a drop can take place.  The
arguments passed to @func are: the @tree_view, the `GtkTreeViewColumn` being
dragged, the two `GtkTreeViewColumn`s determining the drop spot, and
@user_data.  If either of the `GtkTreeViewColumn` arguments for the drop spot
are %NULL, then they indicate an edge.  If @func is set to be %NULL, then
@tree_view reverts to the default behavior of allowing all columns to be
dropped everywhere.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> A function to determine which columns are reorderable
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> User data to be passed to @func
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> Destroy notifier for @user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_cursor">
<description>
Sets the current keyboard focus to be at @path, and selects it.  This is
useful when you want to focus the user’s attention on a particular row.  If
@focus_column is not %NULL, then focus is given to the column specified by
it. Additionally, if @focus_column is specified, and @start_editing is
%TRUE, then editing should be started in the specified cell.
This function is often followed by @gtk_widget_grab_focus (@tree_view)
in order to give keyboard focus to the widget.  Please note that editing
can only happen when the widget is realized.

If @path is invalid for @model, the current cursor (if any) will be unset
and the function will return without failing.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> A `GtkTreePath`
</parameter_description>
</parameter>
<parameter name="focus_column">
<parameter_description> A `GtkTreeViewColumn`
</parameter_description>
</parameter>
<parameter name="start_editing">
<parameter_description> %TRUE if the specified cell should start being edited.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_cursor_on_cell">
<description>
Sets the current keyboard focus to be at @path, and selects it.  This is
useful when you want to focus the user’s attention on a particular row.  If
@focus_column is not %NULL, then focus is given to the column specified by
it. If @focus_column and @focus_cell are not %NULL, and @focus_column
contains 2 or more editable or activatable cells, then focus is given to
the cell specified by @focus_cell. Additionally, if @focus_column is
specified, and @start_editing is %TRUE, then editing should be started in
the specified cell.  This function is often followed by
@gtk_widget_grab_focus (@tree_view) in order to give keyboard focus to the
widget.  Please note that editing can only happen when the widget is
realized.

If @path is invalid for @model, the current cursor (if any) will be unset
and the function will return without failing.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> A `GtkTreePath`
</parameter_description>
</parameter>
<parameter name="focus_column">
<parameter_description> A `GtkTreeViewColumn`
</parameter_description>
</parameter>
<parameter name="focus_cell">
<parameter_description> A `GtkCellRenderer`
</parameter_description>
</parameter>
<parameter name="start_editing">
<parameter_description> %TRUE if the specified cell should start being edited.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_drag_dest_row">
<description>
Sets the row that is highlighted for feedback.
If @path is %NULL, an existing highlight is removed.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> The path of the row to highlight
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> Specifies whether to drop before, after or into the row
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_enable_search">
<description>
If @enable_search is set, then the user can type in text to search through
the tree interactively (this is sometimes called &quot;typeahead find&quot;).

Note that even if this is %FALSE, the user can still initiate a search
using the “start-interactive-search” key binding.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="enable_search">
<parameter_description> %TRUE, if the user can search interactively
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_enable_tree_lines">
<description>
Sets whether to draw lines interconnecting the expanders in @tree_view.
This does not have any visible effects for lists.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> %TRUE to enable tree line drawing, %FALSE otherwise.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_expander_column">
<description>
Sets the column to draw the expander arrow at. It must be in @tree_view.
If @column is %NULL, then the expander arrow is always at the first
visible column.

If you do not want expander arrow to appear in your tree, set the
expander column to a hidden column.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> %NULL, or the column to draw the expander arrow at.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_fixed_height_mode">
<description>
Enables or disables the fixed height mode of @tree_view.
Fixed height mode speeds up `GtkTreeView` by assuming that all
rows have the same height.
Only enable this option if all rows are the same height and all
columns are of type %GTK_TREE_VIEW_COLUMN_FIXED.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="enable">
<parameter_description> %TRUE to enable fixed height mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_grid_lines">
<description>
Sets which grid lines to draw in @tree_view.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="grid_lines">
<parameter_description> a `GtkTreeView`GridLines value indicating which grid lines to
enable.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_headers_clickable">
<description>
Allow the column title buttons to be clicked.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> %TRUE if the columns are clickable.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_headers_visible">
<description>
Sets the visibility state of the headers.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
<parameter name="headers_visible">
<parameter_description> %TRUE if the headers are visible
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_hover_expand">
<description>
Enables or disables the hover expansion mode of @tree_view.
Hover expansion makes rows expand or collapse if the pointer
moves over them.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="expand">
<parameter_description> %TRUE to enable hover selection mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_hover_selection">
<description>
Enables or disables the hover selection mode of @tree_view.
Hover selection makes the selected row follow the pointer.
Currently, this works only for the selection modes
%GTK_SELECTION_SINGLE and %GTK_SELECTION_BROWSE.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="hover">
<parameter_description> %TRUE to enable hover selection mode
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_level_indentation">
<description>
Sets the amount of extra indentation for child levels to use in @tree_view
in addition to the default indentation.  The value should be specified in
pixels, a value of 0 disables this feature and in this case only the default
indentation will be used.
This does not have any visible effects for lists.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="indentation">
<parameter_description> the amount, in pixels, of extra indentation in @tree_view.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_model">
<description>
Sets the model for a `GtkTreeView`.  If the @tree_view already has a model
set, it will remove it before setting the new model.  If @model is %NULL,
then it will unset the old model.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> The model.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_reorderable">
<description>
This function is a convenience function to allow you to reorder
models that support the `GtkTreeDragSourceIface` and the
`GtkTreeDragDestIface`.  Both `GtkTreeStore` and `GtkListStore` support
these.  If @reorderable is %TRUE, then the user can reorder the
model by dragging and dropping rows. The developer can listen to
these changes by connecting to the model’s `GtkTreeModel::row-inserted`
and `GtkTreeModel::row-deleted` signals. The reordering is implemented
by setting up the tree view as a drag source and destination.
Therefore, drag and drop can not be used in a reorderable view for any
other purpose.

This function does not give you any degree of control over the order -- any
reordering is allowed.  If more control is needed, you should probably
handle drag and drop manually.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`.
</parameter_description>
</parameter>
<parameter name="reorderable">
<parameter_description> %TRUE, if the tree can be reordered.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_row_separator_func">
<description>
Sets the row separator function, which is used to determine
whether a row should be drawn as a separator. If the row separator
function is %NULL, no separators are drawn. This is the default value.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> a `GtkTreeView`RowSeparatorFunc
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> user data to pass to @func
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> destroy notifier for @data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_rubber_banding">
<description>
Enables or disables rubber banding in @tree_view.  If the selection mode
is %GTK_SELECTION_MULTIPLE, rubber banding will allow the user to select
multiple rows by dragging the mouse.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="enable">
<parameter_description> %TRUE to enable rubber banding
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_search_column">
<description>
Sets @column as the column where the interactive search code should
search in for the current model.

If the search column is set, users can use the “start-interactive-search”
key binding to bring up search popup. The enable-search property controls
whether simply typing text will also start an interactive search.

Note that @column refers to a column of the current model. The search
column is reset to -1 when the model is changed.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> the column of the model to search in, or -1 to disable searching
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_search_entry">
<description>
Sets the entry which the interactive search code will use for this
@tree_view.  This is useful when you want to provide a search entry
in our interface at all time at a fixed position.  Passing %NULL for
@entry will make the interactive search code use the built-in popup
entry again.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="entry">
<parameter_description> the entry the interactive search code of @tree_view should use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_search_equal_func">
<description>
Sets the compare function for the interactive search capabilities; note
that somewhat like strcmp() returning 0 for equality
`GtkTreeView`SearchEqualFunc returns %FALSE on matches.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> A `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="search_equal_func">
<parameter_description> the compare function to use during the search
</parameter_description>
</parameter>
<parameter name="search_user_data">
<parameter_description> user data to pass to @search_equal_func
</parameter_description>
</parameter>
<parameter name="search_destroy">
<parameter_description> Destroy notifier for @search_user_data
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_show_expanders">
<description>
Sets whether to draw and enable expanders and indent child rows in
@tree_view.  When disabled there will be no expanders visible in trees
and there will be no way to expand and collapse rows by default.  Also
note that hiding the expanders will disable the default indentation.  You
can set a custom indentation in this case using
gtk_tree_view_set_level_indentation().
This does not have any visible effects for lists.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> %TRUE to enable expander drawing, %FALSE otherwise.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_tooltip_cell">
<description>
Sets the tip area of @tooltip to the area @path, @column and @cell have
in common.  For example if @path is %NULL and @column is set, the tip
area will be set to the full area covered by @column.  See also
gtk_tooltip_set_tip_area().

Note that if @path is not specified and @cell is set and part of a column
containing the expander, the tooltip might not show and hide at the correct
position.  In such cases @path must be set to the current node under the
mouse cursor for this function to operate correctly.

See also gtk_tree_view_set_tooltip_column() for a simpler alternative.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="tooltip">
<parameter_description> a `GtkTooltip`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> a `GtkTreeViewColumn`
</parameter_description>
</parameter>
<parameter name="cell">
<parameter_description> a `GtkCellRenderer`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_tooltip_column">
<description>
If you only plan to have simple (text-only) tooltips on full rows, you
can use this function to have `GtkTreeView` handle these automatically
for you. @column should be set to the column in @tree_view’s model
containing the tooltip texts, or -1 to disable this feature.

When enabled, `GtkWidget:has-tooltip` will be set to %TRUE and
@tree_view will connect a `GtkWidget::query-tooltip` signal handler.

Note that the signal handler sets the text with gtk_tooltip_set_markup(),
so &amp;, &lt;, etc have to be escaped in the text.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="column">
<parameter_description> an integer, which is a valid column number for @tree_view’s model
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_set_tooltip_row">
<description>
Sets the tip area of @tooltip to be the area covered by the row at @path.
See also gtk_tree_view_set_tooltip_column() for a simpler alternative.
See also gtk_tooltip_set_tip_area().

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
<parameter name="tooltip">
<parameter_description> a `GtkTooltip`
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a `GtkTreePath`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_unset_rows_drag_dest">
<description>
Undoes the effect of
gtk_tree_view_enable_model_drag_dest(). Calling this method sets
`GtkTreeView`:reorderable to %FALSE.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_tree_view_unset_rows_drag_source">
<description>
Undoes the effect of
gtk_tree_view_enable_model_drag_source(). Calling this method sets
`GtkTreeView`:reorderable to %FALSE.

Deprecated: 4.10: Use [class@Gtk.ListView] or [class@Gtk.ColumnView] instead

</description>
<parameters>
<parameter name="tree_view">
<parameter_description> a `GtkTreeView`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_uri_launcher_get_uri">
<description>
Gets the uri that will be opened.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkUriLauncher`
</parameter_description>
</parameter>
</parameters>
<return> the uri

</return>
</function>

<function name="gtk_uri_launcher_launch">
<description>
Launch an application to open the uri.

This may present an app chooser dialog to the user.

The @callback will be called when the operation is completed.
It should call [method@Gtk.UriLauncher.launch_finish] to obtain
the result.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkUriLauncher`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWindow`
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> a `GCancellable` to cancel the operation
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a callback to call when the operation is complete
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_uri_launcher_launch_finish">
<description>
Finishes the [method@Gtk.UriLauncher.launch] call and
returns the result.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkUriLauncher`
</parameter_description>
</parameter>
<parameter name="result">
<parameter_description> a `GAsyncResult`
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> return location for a [enum@Gtk.DialogError] or [enum@Gio.Error] error
</parameter_description>
</parameter>
</parameters>
<return> `TRUE` if an application was launched,
or `FALSE` and @error is set

</return>
</function>

<function name="gtk_uri_launcher_new">
<description>
Creates a new `GtkUriLauncher` object.

Since: 4.10

</description>
<parameters>
<parameter name="uri">
<parameter_description> the uri to open
</parameter_description>
</parameter>
</parameters>
<return> the new `GtkUriLauncher`

</return>
</function>

<function name="gtk_uri_launcher_set_uri">
<description>
Sets the uri that will be opened.

Since: 4.10

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkUriLauncher`
</parameter_description>
</parameter>
<parameter name="uri">
<parameter_description> the uri
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_value_dup_expression">
<description>
Retrieves the `GtkExpression` stored inside the given `value`, and acquires
a reference to it.


</description>
<parameters>
<parameter name="value">
<parameter_description> a `GValue` initialized with type `GTK_TYPE_EXPRESSION`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkExpression`
</return>
</function>

<function name="gtk_value_get_expression">
<description>
Retrieves the `GtkExpression` stored inside the given `value`.


</description>
<parameters>
<parameter name="value">
<parameter_description> a `GValue` initialized with type `GTK_TYPE_EXPRESSION`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkExpression`
</return>
</function>

<function name="gtk_value_set_expression">
<description>
Stores the given `GtkExpression` inside `value`.

The `GValue` will acquire a reference to the `expression`.

</description>
<parameters>
<parameter name="value">
<parameter_description> a `GValue` initialized with type `GTK_TYPE_EXPRESSION`
</parameter_description>
</parameter>
<parameter name="expression">
<parameter_description> a `GtkExpression`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_value_take_expression">
<description>
Stores the given `GtkExpression` inside `value`.

This function transfers the ownership of the `expression` to the `GValue`.

</description>
<parameters>
<parameter name="value">
<parameter_description> a `GValue` initialized with type `GTK_TYPE_EXPRESSION`
</parameter_description>
</parameter>
<parameter name="expression">
<parameter_description> a `GtkExpression`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_video_get_autoplay">
<description>
Returns %TRUE if videos have been set to loop.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkVideo`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if streams should autoplay
</return>
</function>

<function name="gtk_video_get_file">
<description>
Gets the file played by @self or %NULL if not playing back
a file.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkVideo`
</parameter_description>
</parameter>
</parameters>
<return> The file played by @self
</return>
</function>

<function name="gtk_video_get_graphics_offload">
<description>
Returns whether graphics offload is enabled.

See [class@Gtk.GraphicsOffload] for more information on graphics offload.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkVideo`
</parameter_description>
</parameter>
</parameters>
<return> the graphics offload status

</return>
</function>

<function name="gtk_video_get_loop">
<description>
Returns %TRUE if videos have been set to loop.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkVideo`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if streams should loop
</return>
</function>

<function name="gtk_video_get_media_stream">
<description>
Gets the media stream managed by @self or %NULL if none.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkVideo`
</parameter_description>
</parameter>
</parameters>
<return> The media stream managed by @self
</return>
</function>

<function name="gtk_video_new">
<description>
Creates a new empty `GtkVideo`.


</description>
<parameters>
</parameters>
<return> a new `GtkVideo`
</return>
</function>

<function name="gtk_video_new_for_file">
<description>
Creates a `GtkVideo` to play back the given @file.


</description>
<parameters>
<parameter name="file">
<parameter_description> a `GFile`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkVideo`
</return>
</function>

<function name="gtk_video_new_for_filename">
<description>
Creates a `GtkVideo` to play back the given @filename.

This is a utility function that calls [ctor@Gtk.Video.new_for_file],
See that function for details.


</description>
<parameters>
<parameter name="filename">
<parameter_description> filename to play back
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkVideo`
</return>
</function>

<function name="gtk_video_new_for_media_stream">
<description>
Creates a `GtkVideo` to play back the given @stream.


</description>
<parameters>
<parameter name="stream">
<parameter_description> a `GtkMediaStream`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkVideo`
</return>
</function>

<function name="gtk_video_new_for_resource">
<description>
Creates a `GtkVideo` to play back the resource at the
given @resource_path.

This is a utility function that calls [ctor@Gtk.Video.new_for_file].


</description>
<parameters>
<parameter name="resource_path">
<parameter_description> resource path to play back
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkVideo`
</return>
</function>

<function name="gtk_video_set_autoplay">
<description>
Sets whether @self automatically starts playback when it
becomes visible or when a new file gets loaded.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkVideo`
</parameter_description>
</parameter>
<parameter name="autoplay">
<parameter_description> whether media streams should autoplay
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_video_set_file">
<description>
Makes @self play the given @file.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkVideo`
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description> the file to play
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_video_set_filename">
<description>
Makes @self play the given @filename.

This is a utility function that calls gtk_video_set_file(),

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkVideo`
</parameter_description>
</parameter>
<parameter name="filename">
<parameter_description> the filename to play
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_video_set_graphics_offload">
<description>
Sets whether to enable graphics offload.

See [class@Gtk.GraphicsOffload] for more information on graphics offload.

Since: 4.14

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkVideo`
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> the new graphics offload status
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_video_set_loop">
<description>
Sets whether new files loaded by @self should be set to loop.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkVideo`
</parameter_description>
</parameter>
<parameter name="loop">
<parameter_description> whether media streams should loop
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_video_set_media_stream">
<description>
Sets the media stream to be played back.

@self will take full control of managing the media stream. If you
want to manage a media stream yourself, consider using a
[class@Gtk.Picture] for display.

If you want to display a file, consider using [method@Gtk.Video.set_file]
instead.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkVideo`
</parameter_description>
</parameter>
<parameter name="stream">
<parameter_description> The media stream to play or %NULL to unset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_video_set_resource">
<description>
Makes @self play the resource at the given @resource_path.

This is a utility function that calls [method@Gtk.Video.set_file].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkVideo`
</parameter_description>
</parameter>
<parameter name="resource_path">
<parameter_description> the resource to set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_viewport_get_child">
<description>
Gets the child widget of @viewport.


</description>
<parameters>
<parameter name="viewport">
<parameter_description> a `GtkViewport`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @viewport
</return>
</function>

<function name="gtk_viewport_get_scroll_to_focus">
<description>
Gets whether the viewport is scrolling to keep the focused
child in view.


</description>
<parameters>
<parameter name="viewport">
<parameter_description> a `GtkViewport`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the viewport keeps the focus child scrolled to view
</return>
</function>

<function name="gtk_viewport_new">
<description>
Creates a new `GtkViewport`.

The new viewport uses the given adjustments, or default
adjustments if none are given.


</description>
<parameters>
<parameter name="hadjustment">
<parameter_description> horizontal adjustment
</parameter_description>
</parameter>
<parameter name="vadjustment">
<parameter_description> vertical adjustment
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkViewport`
</return>
</function>

<function name="gtk_viewport_scroll_to">
<description>
Scrolls a descendant of the viewport into view.

The viewport and the descendant must be visible and mapped for
this function to work, otherwise no scrolling will be performed.

Since: 4.12

</description>
<parameters>
<parameter name="viewport">
<parameter_description> a `GtkViewport`
</parameter_description>
</parameter>
<parameter name="descendant">
<parameter_description> a descendant widget of the viewport
</parameter_description>
</parameter>
<parameter name="scroll">
<parameter_description> details of how to perform
the scroll operation or NULL to scroll into view
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_viewport_set_child">
<description>
Sets the child widget of @viewport.

</description>
<parameters>
<parameter name="viewport">
<parameter_description> a `GtkViewport`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_viewport_set_scroll_to_focus">
<description>
Sets whether the viewport should automatically scroll
to keep the focused child in view.

</description>
<parameters>
<parameter name="viewport">
<parameter_description> a `GtkViewport`
</parameter_description>
</parameter>
<parameter name="scroll_to_focus">
<parameter_description> whether to keep the focus widget scrolled to view
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_volume_button_new">
<description>
Creates a `GtkVolumeButton`.

The button has a range between 0.0 and 1.0, with a stepping of 0.02.
Volume values can be obtained and modified using the functions from
[class@Gtk.ScaleButton].

Deprecated: 4.10: This widget will be removed in GTK 5

</description>
<parameters>
</parameters>
<return> a new `GtkVolumeButton`

</return>
</function>

<function name="gtk_widget_action_set_enabled">
<description>
Enable or disable an action installed with
gtk_widget_class_install_action().

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="action_name">
<parameter_description> action name, such as &quot;clipboard.paste&quot;
</parameter_description>
</parameter>
<parameter name="enabled">
<parameter_description> whether the action is now enabled
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_activate">
<description>
For widgets that can be “activated” (buttons, menu items, etc.),
this function activates them.

The activation will emit the signal set using
[method@Gtk.WidgetClass.set_activate_signal] during class initialization.

Activation is what happens when you press &lt;kbd&gt;Enter&lt;/kbd&gt;
on a widget during key navigation.

If you wish to handle the activation keybinding yourself, it is
recommended to use [method@Gtk.WidgetClass.add_shortcut] with an action
created with [ctor@Gtk.SignalAction.new].

If @widget isn't activatable, the function returns %FALSE.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget` that’s activatable
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the widget was activatable
</return>
</function>

<function name="gtk_widget_activate_action">
<description>
Looks up the action in the action groups associated
with @widget and its ancestors, and activates it.

This is a wrapper around [method@Gtk.Widget.activate_action_variant]
that constructs the @args variant according to @format_string.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the action to activate
</parameter_description>
</parameter>
<parameter name="format_string">
<parameter_description> GVariant format string for arguments
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments, as given by format string
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the action was activated, %FALSE if the action
does not exist
</return>
</function>

<function name="gtk_widget_activate_action_variant">
<description>
Looks up the action in the action groups associated with
@widget and its ancestors, and activates it.

If the action is in an action group added with
[method@Gtk.Widget.insert_action_group], the @name is expected
to be prefixed with the prefix that was used when the group was
inserted.

The arguments must match the actions expected parameter type,
as returned by `g_action_get_parameter_type()`.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the action to activate
</parameter_description>
</parameter>
<parameter name="args">
<parameter_description> parameters to use
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the action was activated, %FALSE if the
action does not exist.
</return>
</function>

<function name="gtk_widget_activate_default">
<description>
Activates the `default.activate` action from @widget.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_add_controller">
<description>
Adds @controller to @widget so that it will receive events.

You will usually want to call this function right after
creating any kind of [class@Gtk.EventController].

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="controller">
<parameter_description> a `GtkEventController` that hasn't been
added to a widget yet
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_add_css_class">
<description>
Adds a style class to @widget.

After calling this function, the widget’s style will match
for @css_class, according to CSS matching rules.

Use [method@Gtk.Widget.remove_css_class] to remove the
style again.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="css_class">
<parameter_description> The style class to add to @widget, without
the leading '.' used for notation of style classes
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_add_mnemonic_label">
<description>
Adds a widget to the list of mnemonic labels for this widget.

See [method@Gtk.Widget.list_mnemonic_labels]. Note the
list of mnemonic labels for the widget is cleared when the
widget is destroyed, so the caller must make sure to update
its internal state at this point as well.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="label">
<parameter_description> a `GtkWidget` that acts as a mnemonic label for @widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_add_surface_transform_changed_callback">
<description>
Invokes the callback whenever the surface relative transform of
the widget changes.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a function to call when the surface transform changes
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> function to call to free @user_data when the callback is removed
</parameter_description>
</parameter>
</parameters>
<return> an id for the connection of this callback. Remove the
callback by passing the id returned from this function to
[method@Gtk.Widget.remove_surface_transform_changed_callback]
</return>
</function>

<function name="gtk_widget_add_tick_callback">
<description>
Queues an animation frame update and adds a callback to be called
before each frame.

Until the tick callback is removed, it will be called frequently
(usually at the frame rate of the output device or as quickly as
the application can be repainted, whichever is slower). For this
reason, is most suitable for handling graphics that change every
frame or every few frames. The tick callback does not automatically
imply a relayout or repaint. If you want a repaint or relayout, and
aren’t changing widget properties that would trigger that (for example,
changing the text of a `GtkLabel`), then you will have to call
[method@Gtk.Widget.queue_resize] or [method@Gtk.Widget.queue_draw]
yourself.

[method@Gdk.FrameClock.get_frame_time] should generally be used
for timing continuous animations and
[method@Gdk.FrameTimings.get_predicted_presentation_time] if you are
trying to display isolated frames at particular times.

This is a more convenient alternative to connecting directly to the
[signal@Gdk.FrameClock::update] signal of `GdkFrameClock`, since you
don't have to worry about when a `GdkFrameClock` is assigned to a widget.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> function to call for updating animations
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> data to pass to @callback
</parameter_description>
</parameter>
<parameter name="notify">
<parameter_description> function to call to free @user_data when the callback is removed.
</parameter_description>
</parameter>
</parameters>
<return> an id for the connection of this callback. Remove the callback
by passing the id returned from this function to
[method@Gtk.Widget.remove_tick_callback]
</return>
</function>

<function name="gtk_widget_allocate">
<description>
This function is only used by `GtkWidget` subclasses, to
assign a size, position and (optionally) baseline to their
child widgets.

In this function, the allocation and baseline may be adjusted.
The given allocation will be forced to be bigger than the
widget's minimum size, as well as at least 0×0 in size.

For a version that does not take a transform, see
[method@Gtk.Widget.size_allocate].

</description>
<parameters>
<parameter name="widget">
<parameter_description> A `GtkWidget`
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> New width of @widget
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> New height of @widget
</parameter_description>
</parameter>
<parameter name="baseline">
<parameter_description> New baseline of @widget, or -1
</parameter_description>
</parameter>
<parameter name="transform">
<parameter_description> Transformation to be applied to @widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_child_focus">
<description>
Called by widgets as the user moves around the window using
keyboard shortcuts.

The @direction argument indicates what kind of motion is taking place (up,
down, left, right, tab forward, tab backward).

This function calls the [vfunc@Gtk.Widget.focus] virtual function; widgets
can override the virtual function in order to implement appropriate focus
behavior.

The default `focus()` virtual function for a widget should return `TRUE` if
moving in @direction left the focus on a focusable location inside that
widget, and `FALSE` if moving in @direction moved the focus outside the
widget. When returning `TRUE`, widgets normally call [method@Gtk.Widget.grab_focus]
to place the focus accordingly; when returning `FALSE`, they don’t modify
the current focus location.

This function is used by custom widget implementations; if you're
writing an app, you’d use [method@Gtk.Widget.grab_focus] to move
the focus to a particular widget.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> direction of focus movement
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if focus ended up inside @widget
</return>
</function>

<function name="gtk_widget_class_add_binding">
<description>
Creates a new shortcut for @widget_class that calls the given @callback
with arguments read according to @format_string.

The arguments and format string must be provided in the same way as
with g_variant_new().

This function is a convenience wrapper around
[method@Gtk.WidgetClass.add_shortcut] and must be called during class
initialization. It does not provide for user_data, if you need that,
you will have to use [method@Gtk.WidgetClass.add_shortcut] with a custom
shortcut.

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> the class to add the binding to
</parameter_description>
</parameter>
<parameter name="keyval">
<parameter_description> key value of binding to install
</parameter_description>
</parameter>
<parameter name="mods">
<parameter_description> key modifier of binding to install
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> the callback to call upon activation
</parameter_description>
</parameter>
<parameter name="format_string">
<parameter_description> GVariant format string for arguments
or %NULL for no arguments
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments, as given by format string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_add_binding_action">
<description>
Creates a new shortcut for @widget_class that activates the given
@action_name with arguments read according to @format_string.

The arguments and format string must be provided in the same way as
with g_variant_new().

This function is a convenience wrapper around
[method@Gtk.WidgetClass.add_shortcut] and must be called during class
initialization.

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> the class to add the binding to
</parameter_description>
</parameter>
<parameter name="keyval">
<parameter_description> key value of binding to install
</parameter_description>
</parameter>
<parameter name="mods">
<parameter_description> key modifier of binding to install
</parameter_description>
</parameter>
<parameter name="action_name">
<parameter_description> the action to activate
</parameter_description>
</parameter>
<parameter name="format_string">
<parameter_description> GVariant format string for arguments
or %NULL for no arguments
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments, as given by format string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_add_binding_signal">
<description>
Creates a new shortcut for @widget_class that emits the given action
@signal with arguments read according to @format_string.

The arguments and format string must be provided in the same way as
with g_variant_new().

This function is a convenience wrapper around
[method@Gtk.WidgetClass.add_shortcut] and must be called during class
initialization.

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> the class to add the binding to
</parameter_description>
</parameter>
<parameter name="keyval">
<parameter_description> key value of binding to install
</parameter_description>
</parameter>
<parameter name="mods">
<parameter_description> key modifier of binding to install
</parameter_description>
</parameter>
<parameter name="signal">
<parameter_description> the signal to execute
</parameter_description>
</parameter>
<parameter name="format_string">
<parameter_description> GVariant format string for arguments
or %NULL for no arguments
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments, as given by format string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_add_shortcut">
<description>
Installs a shortcut in @widget_class.

Every instance created for @widget_class or its subclasses will
inherit this shortcut and trigger it.

Shortcuts added this way will be triggered in the %GTK_PHASE_BUBBLE
phase, which means they may also trigger if child widgets have focus.

This function must only be used in class initialization functions
otherwise it is not guaranteed that the shortcut will be installed.

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> the class to add the shortcut to
</parameter_description>
</parameter>
<parameter name="shortcut">
<parameter_description> the `GtkShortcut` to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_bind_template_callback">
<description>
Binds a callback function defined in a template to the @widget_class.

This macro is a convenience wrapper around the
gtk_widget_class_bind_template_callback_full() function. It is not
supported after gtk_widget_class_set_template_scope() has been used
on @widget_class.

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> a `GtkWidgetClass`
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> the callback symbol
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_bind_template_callback_full">
<description>
Declares a @callback_symbol to handle @callback_name from
the template XML defined for @widget_type.

This function is not supported after [method@Gtk.WidgetClass.set_template_scope]
has been used on @widget_class. See [method@Gtk.BuilderCScope.add_callback_symbol].

Note that this must be called from a composite widget classes
class initializer after calling [method@Gtk.WidgetClass.set_template].

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> A `GtkWidgetClass`
</parameter_description>
</parameter>
<parameter name="callback_name">
<parameter_description> The name of the callback as expected in the template XML
</parameter_description>
</parameter>
<parameter name="callback_symbol">
<parameter_description> The callback symbol
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_bind_template_child">
<description>
Binds a child widget defined in a template to the @widget_class.

This macro is a convenience wrapper around the
gtk_widget_class_bind_template_child_full() function.

This macro will use the offset of the @member_name inside the @TypeName
instance structure.

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> a `GtkWidgetClass`
</parameter_description>
</parameter>
<parameter name="TypeName">
<parameter_description> the type name of this widget
</parameter_description>
</parameter>
<parameter name="member_name">
<parameter_description> name of the instance member in the instance struct for @data_type
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_bind_template_child_full">
<description>
Automatically assign an object declared in the class template XML to
be set to a location on a freshly built instance’s private data, or
alternatively accessible via [method@Gtk.Widget.get_template_child].

The struct can point either into the public instance, then you should
use `G_STRUCT_OFFSET(WidgetType, member)` for @struct_offset, or in the
private struct, then you should use `G_PRIVATE_OFFSET(WidgetType, member)`.

An explicit strong reference will be held automatically for the duration
of your instance’s life cycle, it will be released automatically when
`GObjectClass.dispose()` runs on your instance and if a @struct_offset
that is `!= 0` is specified, then the automatic location in your instance
public or private data will be set to %NULL. You can however access an
automated child pointer the first time your classes `GObjectClass.dispose()`
runs, or alternatively in [signal@Gtk.Widget::destroy].

If @internal_child is specified, [vfunc@Gtk.Buildable.get_internal_child]
will be automatically implemented by the `GtkWidget` class so there is no
need to implement it manually.

The wrapper macros [func@Gtk.widget_class_bind_template_child],
[func@Gtk.widget_class_bind_template_child_internal],
[func@Gtk.widget_class_bind_template_child_private] and
[func@Gtk.widget_class_bind_template_child_internal_private]
might be more convenient to use.

Note that this must be called from a composite widget classes class
initializer after calling [method@Gtk.WidgetClass.set_template].

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> A `GtkWidgetClass`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> The “id” of the child defined in the template XML
</parameter_description>
</parameter>
<parameter name="internal_child">
<parameter_description> Whether the child should be accessible as an “internal-child”
when this class is used in GtkBuilder XML
</parameter_description>
</parameter>
<parameter name="struct_offset">
<parameter_description> The structure offset into the composite widget’s instance
public or private structure where the automated child pointer should be set,
or 0 to not assign the pointer.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_bind_template_child_internal">
<description>
Binds a child widget defined in a template to the @widget_class, and
also makes it available as an internal child in GtkBuilder, under the
name @member_name.

This macro is a convenience wrapper around the
gtk_widget_class_bind_template_child_full() function.

This macro will use the offset of the @member_name inside the @TypeName
instance structure.

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> a `GtkWidgetClass`
</parameter_description>
</parameter>
<parameter name="TypeName">
<parameter_description> the type name, in CamelCase
</parameter_description>
</parameter>
<parameter name="member_name">
<parameter_description> name of the instance member in the instance struct for @data_type
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_bind_template_child_internal_private">
<description>
Binds a child widget defined in a template to the @widget_class, and
also makes it available as an internal child in GtkBuilder, under the
name @member_name.

This macro is a convenience wrapper around the
gtk_widget_class_bind_template_child_full() function.

This macro will use the offset of the @member_name inside the @TypeName
private data structure.

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> a `GtkWidgetClass`
</parameter_description>
</parameter>
<parameter name="TypeName">
<parameter_description> the type name, in CamelCase
</parameter_description>
</parameter>
<parameter name="member_name">
<parameter_description> name of the instance private member on the private struct for @data_type
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_bind_template_child_private">
<description>
Binds a child widget defined in a template to the @widget_class.

This macro is a convenience wrapper around the
gtk_widget_class_bind_template_child_full() function.

This macro will use the offset of the @member_name inside the @TypeName
private data structure (it uses G_PRIVATE_OFFSET(), so the private struct
must be added with G_ADD_PRIVATE()).

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> a `GtkWidgetClass`
</parameter_description>
</parameter>
<parameter name="TypeName">
<parameter_description> the type name of this widget
</parameter_description>
</parameter>
<parameter name="member_name">
<parameter_description> name of the instance private member in the private struct for @data_type
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_get_accessible_role">
<description>
Retrieves the accessible role used by the given `GtkWidget` class.

Different accessible roles have different states, and are rendered
differently by assistive technologies.

See also: [method@Gtk.Accessible.get_accessible_role].


</description>
<parameters>
<parameter name="widget_class">
<parameter_description> a `GtkWidgetClass`
</parameter_description>
</parameter>
</parameters>
<return> the accessible role for the widget class
</return>
</function>

<function name="gtk_widget_class_get_activate_signal">
<description>
Retrieves the signal id for the activation signal.

the activation signal is set using
[method@Gtk.WidgetClass.set_activate_signal].


</description>
<parameters>
<parameter name="widget_class">
<parameter_description> a `GtkWidgetClass`
</parameter_description>
</parameter>
</parameters>
<return> a signal id, or 0 if the widget class does not
specify an activation signal
</return>
</function>

<function name="gtk_widget_class_get_css_name">
<description>
Gets the name used by this class for matching in CSS code.

See [method@Gtk.WidgetClass.set_css_name] for details.


</description>
<parameters>
<parameter name="widget_class">
<parameter_description> class to set the name on
</parameter_description>
</parameter>
</parameters>
<return> the CSS name of the given class
</return>
</function>

<function name="gtk_widget_class_get_layout_manager_type">
<description>
Retrieves the type of the [class@Gtk.LayoutManager]
used by widgets of class @widget_class.

See also: [method@Gtk.WidgetClass.set_layout_manager_type].


</description>
<parameters>
<parameter name="widget_class">
<parameter_description> a `GtkWidgetClass`
</parameter_description>
</parameter>
</parameters>
<return> type of a `GtkLayoutManager` subclass, or %G_TYPE_INVALID
</return>
</function>

<function name="gtk_widget_class_install_action">
<description>
This should be called at class initialization time to specify
actions to be added for all instances of this class.

Actions installed by this function are stateless. The only state
they have is whether they are enabled or not (which can be changed with
[method@Gtk.Widget.action_set_enabled]).

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> a `GtkWidgetClass`
</parameter_description>
</parameter>
<parameter name="action_name">
<parameter_description> a prefixed action name, such as &quot;clipboard.paste&quot;
</parameter_description>
</parameter>
<parameter name="parameter_type">
<parameter_description> the parameter type
</parameter_description>
</parameter>
<parameter name="activate">
<parameter_description> callback to use when the action is activated
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_install_property_action">
<description>
Installs an action called @action_name on @widget_class and
binds its state to the value of the @property_name property.

This function will perform a few sanity checks on the property selected
via @property_name. Namely, the property must exist, must be readable,
writable and must not be construct-only. There are also restrictions
on the type of the given property, it must be boolean, int, unsigned int,
double or string. If any of these conditions are not met, a critical
warning will be printed and no action will be added.

The state type of the action matches the property type.

If the property is boolean, the action will have no parameter and
toggle the property value. Otherwise, the action will have a parameter
of the same type as the property.

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> a `GtkWidgetClass`
</parameter_description>
</parameter>
<parameter name="action_name">
<parameter_description> name of the action
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> name of the property in instances of @widget_class
or any parent class.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_query_action">
<description>
Returns details about the @index_-th action that has been
installed for @widget_class during class initialization.

See [method@Gtk.WidgetClass.install_action] for details on
how to install actions.

Note that this function will also return actions defined
by parent classes. You can identify those by looking
at @owner.


</description>
<parameters>
<parameter name="widget_class">
<parameter_description> a `GtkWidget` class
</parameter_description>
</parameter>
<parameter name="index_">
<parameter_description> position of the action to query
</parameter_description>
</parameter>
<parameter name="owner">
<parameter_description> return location for the type where the action was defined
</parameter_description>
</parameter>
<parameter name="action_name">
<parameter_description> return location for the action name
</parameter_description>
</parameter>
<parameter name="parameter_type">
<parameter_description> return location for the parameter type
</parameter_description>
</parameter>
<parameter name="property_name">
<parameter_description> return location for the property name
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the action was found, %FALSE if @index_
is out of range
</return>
</function>

<function name="gtk_widget_class_set_accessible_role">
<description>
Sets the accessible role used by the given `GtkWidget` class.

Different accessible roles have different states, and are
rendered differently by assistive technologies.

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> a `GtkWidgetClass`
</parameter_description>
</parameter>
<parameter name="accessible_role">
<parameter_description> the `GtkAccessibleRole` used by the @widget_class
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_set_activate_signal">
<description>
Sets the `GtkWidgetClass.activate_signal` field with the
given @signal_id.

The signal will be emitted when calling [method@Gtk.Widget.activate].

The @signal_id must have been registered with `g_signal_new()`
or g_signal_newv() before calling this function.

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> a `GtkWidgetClass`
</parameter_description>
</parameter>
<parameter name="signal_id">
<parameter_description> the id for the activate signal
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_set_activate_signal_from_name">
<description>
Sets the `GtkWidgetClass.activate_signal` field with the signal id for
the given @signal_name.

The signal will be emitted when calling [method@Gtk.Widget.activate].

The @signal_name of @widget_type must have been registered with
g_signal_new() or g_signal_newv() before calling this function.

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> a `GtkWidgetClass`
</parameter_description>
</parameter>
<parameter name="signal_name">
<parameter_description> the name of the activate signal of @widget_type
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_set_css_name">
<description>
Sets the name to be used for CSS matching of widgets.

If this function is not called for a given class, the name
set on the parent class is used. By default, `GtkWidget`
uses the name &quot;widget&quot;.

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> class to set the name on
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name to use
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_set_layout_manager_type">
<description>
Sets the type to be used for creating layout managers for
widgets of @widget_class.

The given @type must be a subtype of [class@Gtk.LayoutManager].

This function should only be called from class init functions
of widgets.

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> a `GtkWidgetClass`
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> The object type that implements the `GtkLayoutManager`
for @widget_class
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_set_template">
<description>
This should be called at class initialization time to specify
the `GtkBuilder` XML to be used to extend a widget.

For convenience, [method@Gtk.WidgetClass.set_template_from_resource]
is also provided.

Note that any class that installs templates must call
[method@Gtk.Widget.init_template] in the widget’s instance initializer.

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> A `GtkWidgetClass`
</parameter_description>
</parameter>
<parameter name="template_bytes">
<parameter_description> A `GBytes` holding the `GtkBuilder` XML
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_set_template_from_resource">
<description>
A convenience function that calls [method@Gtk.WidgetClass.set_template]
with the contents of a `GResource`.

Note that any class that installs templates must call
[method@Gtk.Widget.init_template] in the widget’s instance
initializer.

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> A `GtkWidgetClass`
</parameter_description>
</parameter>
<parameter name="resource_name">
<parameter_description> The name of the resource to load the template from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_class_set_template_scope">
<description>
For use in language bindings, this will override the default
`GtkBuilderScope` to be used when parsing GtkBuilder XML from
this class’s template data.

Note that this must be called from a composite widget classes class
initializer after calling [method@Gtk.WidgetClass.set_template].

</description>
<parameters>
<parameter name="widget_class">
<parameter_description> A `GtkWidgetClass`
</parameter_description>
</parameter>
<parameter name="scope">
<parameter_description> The `GtkBuilderScope` to use when loading
the class template
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_common_ancestor">
<description>
Find the common ancestor of @widget_a and @widget_b that
is closest to the two widgets.


</description>
<parameters>
<parameter name="widget_a">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="widget_b">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the closest common ancestor of @widget_a and
@widget_b or %NULL if @widget_a and @widget_b do not
share a common ancestor.
</return>
</function>

<function name="gtk_widget_compute_bounds">
<description>
Computes the bounds for @widget in the coordinate space of @target.

The bounds of widget are (the bounding box of) the region that it is
expected to draw in. See the [coordinate system](coordinates.html)
overview to learn more.

If the operation is successful, %TRUE is returned. If @widget has no
bounds or the bounds cannot be expressed in @target's coordinate space
(for example if both widgets are in different windows), %FALSE is
returned and @bounds is set to the zero rectangle.

It is valid for @widget and @target to be the same widget.


</description>
<parameters>
<parameter name="widget">
<parameter_description> the `GtkWidget` to query
</parameter_description>
</parameter>
<parameter name="target">
<parameter_description> the `GtkWidget`
</parameter_description>
</parameter>
<parameter name="out_bounds">
<parameter_description> the rectangle taking the bounds
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the bounds could be computed
</return>
</function>

<function name="gtk_widget_compute_expand">
<description>
Computes whether a container should give this widget
extra space when possible.

Containers should check this, rather than looking at
[method@Gtk.Widget.get_hexpand] or [method@Gtk.Widget.get_vexpand].

This function already checks whether the widget is visible, so
visibility does not need to be checked separately. Non-visible
widgets are not expanded.

The computed expand value uses either the expand setting explicitly
set on the widget itself, or, if none has been explicitly set,
the widget may expand if some of its children do.


</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget
</parameter_description>
</parameter>
<parameter name="orientation">
<parameter_description> expand direction
</parameter_description>
</parameter>
</parameters>
<return> whether widget tree rooted here should be expanded
</return>
</function>

<function name="gtk_widget_compute_point">
<description>
Translates the given @point in @widget's coordinates to coordinates
relative to @target’s coordinate system.

In order to perform this operation, both widgets must share a
common ancestor.


</description>
<parameters>
<parameter name="widget">
<parameter_description> the `GtkWidget` to query
</parameter_description>
</parameter>
<parameter name="target">
<parameter_description> the `GtkWidget` to transform into
</parameter_description>
</parameter>
<parameter name="point">
<parameter_description> a point in @widget's coordinate system
</parameter_description>
</parameter>
<parameter name="out_point">
<parameter_description> Set to the corresponding coordinates in
@target's coordinate system
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the point could be determined, %FALSE on failure.
In this case, 0 is stored in @out_point.
</return>
</function>

<function name="gtk_widget_compute_transform">
<description>
Computes a matrix suitable to describe a transformation from
@widget's coordinate system into @target's coordinate system.

The transform can not be computed in certain cases, for example
when @widget and @target do not share a common ancestor. In that
case @out_transform gets set to the identity matrix.

To learn more about widget coordinate systems, see the coordinate
system [overview](coordinates.html).


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="target">
<parameter_description> the target widget that the matrix will transform to
</parameter_description>
</parameter>
<parameter name="out_transform">
<parameter_description> location to
store the final transformation
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the transform could be computed, %FALSE otherwise
</return>
</function>

<function name="gtk_widget_contains">
<description>
Tests if the point at (@x, @y) is contained in @widget.

The coordinates for (@x, @y) must be in widget coordinates, so
(0, 0) is assumed to be the top left of @widget's content area.


</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget to query
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X coordinate to test, relative to @widget's origin
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y coordinate to test, relative to @widget's origin
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @widget contains (@x, @y).
</return>
</function>

<function name="gtk_widget_create_pango_context">
<description>
Creates a new `PangoContext` with the appropriate font map,
font options, font description, and base direction for drawing
text for this widget.

See also [method@Gtk.Widget.get_pango_context].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the new `PangoContext`
</return>
</function>

<function name="gtk_widget_create_pango_layout">
<description>
Creates a new `PangoLayout` with the appropriate font map,
font description, and base direction for drawing text for
this widget.

If you keep a `PangoLayout` created in this way around,
you need to re-create it when the widget `PangoContext`
is replaced. This can be tracked by listening to changes
of the [property@Gtk.Widget:root] property on the widget.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> text to set on the layout
</parameter_description>
</parameter>
</parameters>
<return> the new `PangoLayout`
</return>
</function>

<function name="gtk_widget_dispose_template">
<description>
Clears the template children for the given widget.

This function is the opposite of [method@Gtk.Widget.init_template], and
it is used to clear all the template children from a widget instance.
If you bound a template child to a field in the instance structure, or
in the instance private data structure, the field will be set to `NULL`
after this function returns.

You should call this function inside the `GObjectClass.dispose()`
implementation of any widget that called `gtk_widget_init_template()`.
Typically, you will want to call this function last, right before
chaining up to the parent type's dispose implementation, e.g.

```c
static void
some_widget_dispose (GObject *gobject)
{
SomeWidget *self = SOME_WIDGET (gobject);

// Clear the template data for SomeWidget
gtk_widget_dispose_template (GTK_WIDGET (self), SOME_TYPE_WIDGET);

G_OBJECT_CLASS (some_widget_parent_class)-&gt;dispose (gobject);
}
```

Since: 4.8

</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget with a template
</parameter_description>
</parameter>
<parameter name="widget_type">
<parameter_description> the type of the widget to finalize the template for
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_error_bell">
<description>
Notifies the user about an input-related error on this widget.

If the [property@Gtk.Settings:gtk-error-bell] setting is %TRUE,
it calls [method@Gdk.Surface.beep], otherwise it does nothing.

Note that the effect of [method@Gdk.Surface.beep] can be configured
in many ways, depending on the windowing backend and the desktop
environment or window manager that is used.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_get_allocated_baseline">
<description>
Returns the baseline that has currently been allocated to @widget.

This function is intended to be used when implementing handlers
for the `GtkWidget`Class.snapshot() function, and when allocating
child widgets in `GtkWidget`Class.size_allocate().

Deprecated: 4.12: Use [method@Gtk.Widget.get_baseline] instead

</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget to query
</parameter_description>
</parameter>
</parameters>
<return> the baseline of the @widget, or -1 if none

</return>
</function>

<function name="gtk_widget_get_allocated_height">
<description>
Returns the height that has currently been allocated to @widget.

To learn more about widget sizes, see the coordinate
system [overview](coordinates.html).

Deprecated: 4.12: Use [method@Gtk.Widget.get_height] instead

</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget to query
</parameter_description>
</parameter>
</parameters>
<return> the height of the @widget

</return>
</function>

<function name="gtk_widget_get_allocated_width">
<description>
Returns the width that has currently been allocated to @widget.

To learn more about widget sizes, see the coordinate
system [overview](coordinates.html).

Deprecated: 4.12: Use [method@Gtk.Widget.get_width] instead

</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget to query
</parameter_description>
</parameter>
</parameters>
<return> the width of the @widget

</return>
</function>

<function name="gtk_widget_get_allocation">
<description>
Retrieves the widget’s allocation.

Note, when implementing a layout container: a widget’s allocation
will be its “adjusted” allocation, that is, the widget’s parent
typically calls [method@Gtk.Widget.size_allocate] with an allocation,
and that allocation is then adjusted (to handle margin
and alignment for example) before assignment to the widget.
[method@Gtk.Widget.get_allocation] returns the adjusted allocation that
was actually assigned to the widget. The adjusted allocation is
guaranteed to be completely contained within the
[method@Gtk.Widget.size_allocate] allocation, however.

So a layout container is guaranteed that its children stay inside
the assigned bounds, but not that they have exactly the bounds the
container assigned.

Deprecated: 4.12: Use [method@Gtk.Widget.compute_bounds],
[method@Gtk.Widget.get_width] or [method@Gtk.Widget.get_height] instead.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="allocation">
<parameter_description> a pointer to a `GtkAllocation` to copy to
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_get_ancestor">
<description>
Gets the first ancestor of @widget with type @widget_type.

For example, `gtk_widget_get_ancestor (widget, GTK_TYPE_BOX)`
gets the first `GtkBox` that’s an ancestor of @widget. No
reference will be added to the returned widget; it should
not be unreferenced.

Note that unlike [method@Gtk.Widget.is_ancestor], this function
considers @widget to be an ancestor of itself.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="widget_type">
<parameter_description> ancestor type
</parameter_description>
</parameter>
</parameters>
<return> the ancestor widget
</return>
</function>

<function name="gtk_widget_get_baseline">
<description>
Returns the baseline that has currently been allocated to @widget.

This function is intended to be used when implementing handlers
for the `GtkWidget`Class.snapshot() function, and when allocating
child widgets in `GtkWidget`Class.size_allocate().

Since: 4.12

</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget to query
</parameter_description>
</parameter>
</parameters>
<return> the baseline of the @widget, or -1 if none

</return>
</function>

<function name="gtk_widget_get_can_focus">
<description>
Determines whether the input focus can enter @widget or any
of its children.

See [method@Gtk.Widget.set_focusable].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the input focus can enter @widget, %FALSE otherwise
</return>
</function>

<function name="gtk_widget_get_can_target">
<description>
Queries whether @widget can be the target of pointer events.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @widget can receive pointer events
</return>
</function>

<function name="gtk_widget_get_child_visible">
<description>
Gets the value set with gtk_widget_set_child_visible().

If you feel a need to use this function, your code probably
needs reorganization.

This function is only useful for container implementations
and should never be called by an application.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the widget is mapped with the parent.
</return>
</function>

<function name="gtk_widget_get_clipboard">
<description>
Gets the clipboard object for @widget.

This is a utility function to get the clipboard object for the
`GdkDisplay` that @widget is using.

Note that this function always works, even when @widget is not
realized yet.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the appropriate clipboard object
</return>
</function>

<function name="gtk_widget_get_color">
<description>
Gets the current foreground color for the widget’s
CSS style.

This function should only be used in snapshot
implementations that need to do custom
drawing with the foreground color.

Since: 4.10

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="color">
<parameter_description> return location for the color
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_get_css_classes">
<description>
Returns the list of style classes applied to @widget.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> a %NULL-terminated list of
css classes currently applied to @widget. The returned
list must freed using g_strfreev().
</return>
</function>

<function name="gtk_widget_get_css_name">
<description>
Returns the CSS name that is used for @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the CSS name
</return>
</function>

<function name="gtk_widget_get_cursor">
<description>
Queries the cursor set on @widget.

See [method@Gtk.Widget.set_cursor] for details.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the cursor
currently in use or %NULL if the cursor is inherited
</return>
</function>

<function name="gtk_widget_get_default_direction">
<description>
Obtains the current default reading direction.

See [func@Gtk.Widget.set_default_direction].


</description>
<parameters>
</parameters>
<return> the current default direction.
</return>
</function>

<function name="gtk_widget_get_direction">
<description>
Gets the reading direction for a particular widget.

See [method@Gtk.Widget.set_direction].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the reading direction for the widget.
</return>
</function>

<function name="gtk_widget_get_display">
<description>
Get the `GdkDisplay` for the toplevel window associated with
this widget.

This function can only be called after the widget has been
added to a widget hierarchy with a `GtkWindow` at the top.

In general, you should only create display specific
resources when a widget has been realized, and you should
free those resources when the widget is unrealized.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the `GdkDisplay` for the toplevel
for this widget.
</return>
</function>

<function name="gtk_widget_get_first_child">
<description>
Returns the widget’s first child.

This API is primarily meant for widget implementations.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> The widget's first child
</return>
</function>

<function name="gtk_widget_get_focus_child">
<description>
Returns the current focus child of @widget.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> The current focus
child of @widget
</return>
</function>

<function name="gtk_widget_get_focus_on_click">
<description>
Returns whether the widget should grab focus when it is clicked
with the mouse.

See [method@Gtk.Widget.set_focus_on_click].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the widget should grab focus when it is
clicked with the mouse
</return>
</function>

<function name="gtk_widget_get_focusable">
<description>
Determines whether @widget can own the input focus.

See [method@Gtk.Widget.set_focusable].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @widget can own the input focus, %FALSE otherwise
</return>
</function>

<function name="gtk_widget_get_font_map">
<description>
Gets the font map of @widget.

See [method@Gtk.Widget.set_font_map].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> A `PangoFontMap`
</return>
</function>

<function name="gtk_widget_get_font_options">
<description>
Returns the `cairo_font_options_t` of widget.

Seee [method@Gtk.Widget.set_font_options].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the `cairo_font_options_t`
of widget
</return>
</function>

<function name="gtk_widget_get_frame_clock">
<description>
Obtains the frame clock for a widget.

The frame clock is a global “ticker” that can be used to drive
animations and repaints. The most common reason to get the frame
clock is to call [method@Gdk.FrameClock.get_frame_time], in order
to get a time to use for animating. For example you might record
the start of the animation with an initial value from
[method@Gdk.FrameClock.get_frame_time], and then update the animation
by calling [method@Gdk.FrameClock.get_frame_time] again during each repaint.

[method@Gdk.FrameClock.request_phase] will result in a new frame on the
clock, but won’t necessarily repaint any widgets. To repaint a
widget, you have to use [method@Gtk.Widget.queue_draw] which invalidates
the widget (thus scheduling it to receive a draw on the next
frame). gtk_widget_queue_draw() will also end up requesting a frame
on the appropriate frame clock.

A widget’s frame clock will not change while the widget is
mapped. Reparenting a widget (which implies a temporary unmap) can
change the widget’s frame clock.

Unrealized widgets do not have a frame clock.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> a `GdkFrameClock`
</return>
</function>

<function name="gtk_widget_get_halign">
<description>
Gets the horizontal alignment of @widget.

For backwards compatibility reasons this method will never return
one of the baseline alignments, but instead it will convert it to
`GTK_ALIGN_FILL` or `GTK_ALIGN_CENTER`.

Baselines are not supported for horizontal alignment.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the horizontal alignment of @widget
</return>
</function>

<function name="gtk_widget_get_has_tooltip">
<description>
Returns the current value of the `has-tooltip` property.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> current value of `has-tooltip` on @widget.
</return>
</function>

<function name="gtk_widget_get_height">
<description>
Returns the content height of the widget.

This function returns the height passed to its
size-allocate implementation, which is the height you
should be using in [vfunc@Gtk.Widget.snapshot].

For pointer events, see [method@Gtk.Widget.contains].

To learn more about widget sizes, see the coordinate
system [overview](coordinates.html).


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> The height of @widget
</return>
</function>

<function name="gtk_widget_get_hexpand">
<description>
Gets whether the widget would like any available extra horizontal
space.

When a user resizes a `GtkWindow`, widgets with expand=TRUE
generally receive the extra space. For example, a list or
scrollable area or document in your window would often be set to
expand.

Containers should use [method@Gtk.Widget.compute_expand] rather
than this function, to see whether a widget, or any of its children,
has the expand flag set. If any child of a widget wants to
expand, the parent may ask to expand also.

This function only looks at the widget’s own hexpand flag, rather
than computing whether the entire widget tree rooted at this widget
wants to expand.


</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget
</parameter_description>
</parameter>
</parameters>
<return> whether hexpand flag is set
</return>
</function>

<function name="gtk_widget_get_hexpand_set">
<description>
Gets whether gtk_widget_set_hexpand() has been used
to explicitly set the expand flag on this widget.

If [property@Gtk.Widget:hexpand] property is set, then it
overrides any computed expand value based on child widgets.
If `hexpand` is not set, then the expand value depends on
whether any children of the widget would like to expand.

There are few reasons to use this function, but it’s here
for completeness and consistency.


</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget
</parameter_description>
</parameter>
</parameters>
<return> whether hexpand has been explicitly set
</return>
</function>

<function name="gtk_widget_get_last_child">
<description>
Returns the widget’s last child.

This API is primarily meant for widget implementations.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> The widget's last child
</return>
</function>

<function name="gtk_widget_get_layout_manager">
<description>
Retrieves the layout manager used by @widget.

See [method@Gtk.Widget.set_layout_manager].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkLayoutManager`
</return>
</function>

<function name="gtk_widget_get_mapped">
<description>
Whether the widget is mapped.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the widget is mapped, %FALSE otherwise.
</return>
</function>

<function name="gtk_widget_get_margin_bottom">
<description>
Gets the bottom margin of @widget.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> The bottom margin of @widget
</return>
</function>

<function name="gtk_widget_get_margin_end">
<description>
Gets the end margin of @widget.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> The end margin of @widget
</return>
</function>

<function name="gtk_widget_get_margin_start">
<description>
Gets the start margin of @widget.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> The start margin of @widget
</return>
</function>

<function name="gtk_widget_get_margin_top">
<description>
Gets the top margin of @widget.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> The top margin of @widget
</return>
</function>

<function name="gtk_widget_get_name">
<description>
Retrieves the name of a widget.

See [method@Gtk.Widget.set_name] for the significance of widget names.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> name of the widget. This string is owned by GTK and
should not be modified or freed
</return>
</function>

<function name="gtk_widget_get_native">
<description>
Returns the nearest `GtkNative` ancestor of @widget.

This function will return %NULL if the widget is not
contained inside a widget tree with a native ancestor.

`GtkNative` widgets will return themselves here.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkNative` ancestor of @widget
</return>
</function>

<function name="gtk_widget_get_next_sibling">
<description>
Returns the widget’s next sibling.

This API is primarily meant for widget implementations.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> The widget's next sibling
</return>
</function>

<function name="gtk_widget_get_opacity">
<description>
#Fetches the requested opacity for this widget.

See [method@Gtk.Widget.set_opacity].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the requested opacity for this widget.
</return>
</function>

<function name="gtk_widget_get_overflow">
<description>
Returns the widget’s overflow value.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> The widget's overflow.
</return>
</function>

<function name="gtk_widget_get_pango_context">
<description>
Gets a `PangoContext` with the appropriate font map, font description,
and base direction for this widget.

Unlike the context returned by [method@Gtk.Widget.create_pango_context],
this context is owned by the widget (it can be used until the screen
for the widget changes or the widget is removed from its toplevel),
and will be updated to match any changes to the widget’s attributes.
This can be tracked by listening to changes of the
[property@Gtk.Widget:root] property on the widget.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the `PangoContext` for the widget.
</return>
</function>

<function name="gtk_widget_get_parent">
<description>
Returns the parent widget of @widget.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the parent widget of @widget
</return>
</function>

<function name="gtk_widget_get_preferred_size">
<description>
Retrieves the minimum and natural size of a widget, taking
into account the widget’s preference for height-for-width management.

This is used to retrieve a suitable size by container widgets which do
not impose any restrictions on the child placement. It can be used
to deduce toplevel window and menu sizes as well as child widgets in
free-form containers such as `GtkFixed`.

Handle with care. Note that the natural height of a height-for-width
widget will generally be a smaller size than the minimum height, since
the required height for the natural width is generally smaller than the
required height for the minimum width.

Use [method@Gtk.Widget.measure] if you want to support baseline alignment.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget` instance
</parameter_description>
</parameter>
<parameter name="minimum_size">
<parameter_description> location for storing the minimum size
</parameter_description>
</parameter>
<parameter name="natural_size">
<parameter_description> location for storing the natural size
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_get_prev_sibling">
<description>
Returns the widget’s previous sibling.

This API is primarily meant for widget implementations.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> The widget's previous sibling
</return>
</function>

<function name="gtk_widget_get_primary_clipboard">
<description>
Gets the primary clipboard of @widget.

This is a utility function to get the primary clipboard object
for the `GdkDisplay` that @widget is using.

Note that this function always works, even when @widget is not
realized yet.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the appropriate clipboard object
</return>
</function>

<function name="gtk_widget_get_realized">
<description>
Determines whether @widget is realized.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @widget is realized, %FALSE otherwise
</return>
</function>

<function name="gtk_widget_get_receives_default">
<description>
Determines whether @widget is always treated as the default widget
within its toplevel when it has the focus, even if another widget
is the default.

See [method@Gtk.Widget.set_receives_default].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @widget acts as the default widget when focused,
%FALSE otherwise
</return>
</function>

<function name="gtk_widget_get_request_mode">
<description>
Gets whether the widget prefers a height-for-width layout
or a width-for-height layout.

Single-child widgets generally propagate the preference of
their child, more complex widgets need to request something
either in context of their children or in context of their
allocation capabilities.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget` instance
</parameter_description>
</parameter>
</parameters>
<return> The `GtkSizeRequestMode` preferred by @widget.
</return>
</function>

<function name="gtk_widget_get_root">
<description>
Returns the `GtkRoot` widget of @widget.

This function will return %NULL if the widget is not contained
inside a widget tree with a root widget.

`GtkRoot` widgets will return themselves here.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the root widget of @widget
</return>
</function>

<function name="gtk_widget_get_scale_factor">
<description>
Retrieves the internal scale factor that maps from window
coordinates to the actual device pixels.

On traditional systems this is 1, on high density outputs,
it can be a higher value (typically 2).

See [method@Gdk.Surface.get_scale_factor].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the scale factor for @widget
</return>
</function>

<function name="gtk_widget_get_sensitive">
<description>
Returns the widget’s sensitivity.

This function returns the value that has been set using
[method@Gtk.Widget.set_sensitive]).

The effective sensitivity of a widget is however determined
by both its own and its parent widget’s sensitivity.
See [method@Gtk.Widget.is_sensitive].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the widget is sensitive
</return>
</function>

<function name="gtk_widget_get_settings">
<description>
Gets the settings object holding the settings used for this widget.

Note that this function can only be called when the `GtkWidget`
is attached to a toplevel, since the settings object is specific
to a particular `GdkDisplay`. If you want to monitor the widget for
changes in its settings, connect to the `notify::display` signal.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the relevant `GtkSettings` object
</return>
</function>

<function name="gtk_widget_get_size">
<description>
Returns the content width or height of the widget.

Which dimension is returned depends on @orientation.

This is equivalent to calling [method@Gtk.Widget.get_width]
for %GTK_ORIENTATION_HORIZONTAL or [method@Gtk.Widget.get_height]
for %GTK_ORIENTATION_VERTICAL, but can be used when
writing orientation-independent code, such as when
implementing [iface@Gtk.Orientable] widgets.

To learn more about widget sizes, see the coordinate
system [overview](coordinates.html).


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="orientation">
<parameter_description> the orientation to query
</parameter_description>
</parameter>
</parameters>
<return> The size of @widget in @orientation.
</return>
</function>

<function name="gtk_widget_get_size_request">
<description>
Gets the size request that was explicitly set for the widget using
gtk_widget_set_size_request().

A value of -1 stored in @width or @height indicates that that
dimension has not been set explicitly and the natural requisition
of the widget will be used instead. See
[method@Gtk.Widget.set_size_request]. To get the size a widget will
actually request, call [method@Gtk.Widget.measure] instead of
this function.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> return location for width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> return location for height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_get_state_flags">
<description>
Returns the widget state as a flag set.

It is worth mentioning that the effective %GTK_STATE_FLAG_INSENSITIVE
state will be returned, that is, also based on parent insensitivity,
even if @widget itself is sensitive.

Also note that if you are looking for a way to obtain the
[flags@Gtk.StateFlags] to pass to a [class@Gtk.StyleContext]
method, you should look at [method@Gtk.StyleContext.get_state].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> The state flags for widget
</return>
</function>

<function name="gtk_widget_get_style_context">
<description>
Returns the style context associated to @widget.

The returned object is guaranteed to be the same
for the lifetime of @widget.

Deprecated: 4.10: Style contexts will be removed in GTK 5

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the widget’s `GtkStyleContext`

</return>
</function>

<function name="gtk_widget_get_template_child">
<description>
Fetch an object build from the template XML for @widget_type in
this @widget instance.

This will only report children which were previously declared
with [method@Gtk.WidgetClass.bind_template_child_full] or one of its
variants.

This function is only meant to be called for code which is private
to the @widget_type which declared the child and is meant for language
bindings which cannot easily make use of the GObject structure offsets.


</description>
<parameters>
<parameter name="widget">
<parameter_description> A `GtkWidget`
</parameter_description>
</parameter>
<parameter name="widget_type">
<parameter_description> The `GType` to get a template child for
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> The “id” of the child defined in the template XML
</parameter_description>
</parameter>
</parameters>
<return> The object built in the template XML with
the id @name
</return>
</function>

<function name="gtk_widget_get_tooltip_markup">
<description>
Gets the contents of the tooltip for @widget.

If the tooltip has not been set using
[method@Gtk.Widget.set_tooltip_markup], this
function returns %NULL.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the tooltip text
</return>
</function>

<function name="gtk_widget_get_tooltip_text">
<description>
Gets the contents of the tooltip for @widget.

If the @widget's tooltip was set using
[method@Gtk.Widget.set_tooltip_markup],
this function will return the escaped text.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the tooltip text
</return>
</function>

<function name="gtk_widget_get_valign">
<description>
Gets the vertical alignment of @widget.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the vertical alignment of @widget
</return>
</function>

<function name="gtk_widget_get_vexpand">
<description>
Gets whether the widget would like any available extra vertical
space.

See [method@Gtk.Widget.get_hexpand] for more detail.


</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget
</parameter_description>
</parameter>
</parameters>
<return> whether vexpand flag is set
</return>
</function>

<function name="gtk_widget_get_vexpand_set">
<description>
Gets whether gtk_widget_set_vexpand() has been used to
explicitly set the expand flag on this widget.

See [method@Gtk.Widget.get_hexpand_set] for more detail.


</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget
</parameter_description>
</parameter>
</parameters>
<return> whether vexpand has been explicitly set
</return>
</function>

<function name="gtk_widget_get_visible">
<description>
Determines whether the widget is visible.

If you want to take into account whether the widget’s
parent is also marked as visible, use
[method@Gtk.Widget.is_visible] instead.

This function does not check if the widget is
obscured in any way.

See [method@Gtk.Widget.set_visible].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the widget is visible
</return>
</function>

<function name="gtk_widget_get_width">
<description>
Returns the content width of the widget.

This function returns the width passed to its
size-allocate implementation, which is the width you
should be using in [vfunc@Gtk.Widget.snapshot].

For pointer events, see [method@Gtk.Widget.contains].

To learn more about widget sizes, see the coordinate
system [overview](coordinates.html).


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> The width of @widget
</return>
</function>

<function name="gtk_widget_grab_focus">
<description>
Causes @widget to have the keyboard focus for the `GtkWindow` it's inside.

If @widget is not focusable, or its [vfunc@Gtk.Widget.grab_focus]
implementation cannot transfer the focus to a descendant of @widget
that is focusable, it will not take focus and %FALSE will be returned.

Calling [method@Gtk.Widget.grab_focus] on an already focused widget
is allowed, should not have an effect, and return %TRUE.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if focus is now inside @widget.
</return>
</function>

<function name="gtk_widget_has_css_class">
<description>
Returns whether @css_class is currently applied to @widget.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="css_class">
<parameter_description> A style class, without the leading '.'
used for notation of style classes
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @css_class is currently applied to @widget,
%FALSE otherwise.
</return>
</function>

<function name="gtk_widget_has_default">
<description>
Determines whether @widget is the current default widget
within its toplevel.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @widget is the current default widget
within its toplevel, %FALSE otherwise
</return>
</function>

<function name="gtk_widget_has_focus">
<description>
Determines if the widget has the global input focus.

See [method@Gtk.Widget.is_focus] for the difference between
having the global input focus, and only having the focus
within a toplevel.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the widget has the global input focus.
</return>
</function>

<function name="gtk_widget_has_visible_focus">
<description>
Determines if the widget should show a visible indication that
it has the global input focus.

This is a convenience function that takes into account whether
focus indication should currently be shown in the toplevel window
of @widget. See [method@Gtk.Window.get_focus_visible] for more
information about focus indication.

To find out if the widget has the global input focus, use
[method@Gtk.Widget.has_focus].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the widget should display a “focus rectangle”
</return>
</function>

<function name="gtk_widget_hide">
<description>
Reverses the effects of gtk_widget_show().

This is causing the widget to be hidden (invisible to the user).

Deprecated: 4.10: Use [method@Gtk.Widget.set_visible] instead

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_in_destruction">
<description>
Returns whether the widget is currently being destroyed.

This information can sometimes be used to avoid doing
unnecessary work.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @widget is being destroyed
</return>
</function>

<function name="gtk_widget_init_template">
<description>
Creates and initializes child widgets defined in templates.

This function must be called in the instance initializer
for any class which assigned itself a template using
[method@Gtk.WidgetClass.set_template].

It is important to call this function in the instance initializer
of a `GtkWidget` subclass and not in `GObject.constructed()` or
`GObject.constructor()` for two reasons:

- derived widgets will assume that the composite widgets
defined by its parent classes have been created in their
relative instance initializers
- when calling `g_object_new()` on a widget with composite templates,
it’s important to build the composite widgets before the construct
properties are set. Properties passed to `g_object_new()` should
take precedence over properties set in the private template XML

A good rule of thumb is to call this function as the first thing in
an instance initialization function.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_insert_action_group">
<description>
Inserts @group into @widget.

Children of @widget that implement [iface@Gtk.Actionable] can
then be associated with actions in @group by setting their
“action-name” to @prefix.`action-name`.

Note that inheritance is defined for individual actions. I.e.
even if you insert a group with prefix @prefix, actions with
the same prefix will still be inherited from the parent, unless
the group contains an action with the same name.

If @group is %NULL, a previously inserted group for @name is
removed from @widget.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the prefix for actions in @group
</parameter_description>
</parameter>
<parameter name="group">
<parameter_description> a `GActionGroup`, or %NULL to remove
the previously inserted group for @name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_insert_after">
<description>
Inserts @widget into the child widget list of @parent.

It will be placed after @previous_sibling, or at the beginning if
@previous_sibling is %NULL.

After calling this function, `gtk_widget_get_prev_sibling(widget)`
will return @previous_sibling.

If @parent is already set as the parent widget of @widget, this
function can also be used to reorder @widget in the child widget
list of @parent.

This API is primarily meant for widget implementations; if you are
just using a widget, you *must* use its own API for adding children.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWidget` to insert @widget into
</parameter_description>
</parameter>
<parameter name="previous_sibling">
<parameter_description> the new previous sibling of @widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_insert_before">
<description>
Inserts @widget into the child widget list of @parent.

It will be placed before @next_sibling, or at the end if
@next_sibling is %NULL.

After calling this function, `gtk_widget_get_next_sibling(widget)`
will return @next_sibling.

If @parent is already set as the parent widget of @widget, this function
can also be used to reorder @widget in the child widget list of @parent.

This API is primarily meant for widget implementations; if you are
just using a widget, you *must* use its own API for adding children.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent `GtkWidget` to insert @widget into
</parameter_description>
</parameter>
<parameter name="next_sibling">
<parameter_description> the new next sibling of @widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_is_ancestor">
<description>
Determines whether @widget is somewhere inside @ancestor,
possibly with intermediate containers.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="ancestor">
<parameter_description> another `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @ancestor contains @widget as a child,
grandchild, great grandchild, etc.
</return>
</function>

<function name="gtk_widget_is_drawable">
<description>
Determines whether @widget can be drawn to.

A widget can be drawn if it is mapped and visible.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @widget is drawable, %FALSE otherwise
</return>
</function>

<function name="gtk_widget_is_focus">
<description>
Determines if the widget is the focus widget within its
toplevel.

This does not mean that the [property@Gtk.Widget:has-focus]
property is necessarily set; [property@Gtk.Widget:has-focus]
will only be set if the toplevel widget additionally has the
global input focus.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the widget is the focus widget.
</return>
</function>

<function name="gtk_widget_is_sensitive">
<description>
Returns the widget’s effective sensitivity.

This means it is sensitive itself and also its
parent widget is sensitive.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the widget is effectively sensitive
</return>
</function>

<function name="gtk_widget_is_visible">
<description>
Determines whether the widget and all its parents are marked as
visible.

This function does not check if the widget is obscured in any way.

See also [method@Gtk.Widget.get_visible] and
[method@Gtk.Widget.set_visible].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the widget and all its parents are visible
</return>
</function>

<function name="gtk_widget_keynav_failed">
<description>
Emits the `::keynav-failed` signal on the widget.

This function should be called whenever keyboard navigation
within a single widget hits a boundary.

The return value of this function should be interpreted
in a way similar to the return value of
[method@Gtk.Widget.child_focus]. When %TRUE is returned,
stay in the widget, the failed keyboard  navigation is OK
and/or there is nowhere we can/should move the focus to.
When %FALSE is returned, the caller should continue with
keyboard navigation outside the widget, e.g. by calling
[method@Gtk.Widget.child_focus] on the widget’s toplevel.

The default [signal@Gtk.Widget::keynav-failed] handler returns
%FALSE for %GTK_DIR_TAB_FORWARD and %GTK_DIR_TAB_BACKWARD.
For the other values of `GtkDirectionType` it returns %TRUE.

Whenever the default handler returns %TRUE, it also calls
[method@Gtk.Widget.error_bell] to notify the user of the
failed keyboard navigation.

A use case for providing an own implementation of ::keynav-failed
(either by connecting to it or by overriding it) would be a row of
[class@Gtk.Entry] widgets where the user should be able to navigate
the entire row with the cursor keys, as e.g. known from user
interfaces that require entering license keys.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="direction">
<parameter_description> direction of focus movement
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if stopping keyboard navigation is fine, %FALSE
if the emitting widget should try to handle the keyboard
navigation attempt in its parent container(s).
</return>
</function>

<function name="gtk_widget_list_mnemonic_labels">
<description>
Returns the widgets for which this widget is the target of a
mnemonic.

Typically, these widgets will be labels. See, for example,
[method@Gtk.Label.set_mnemonic_widget].

The widgets in the list are not individually referenced.
If you want to iterate through the list and perform actions
involving callbacks that might destroy the widgets, you
must call `g_list_foreach (result, (GFunc)g_object_ref, NULL)`
first, and then unref all the widgets afterwards.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> the list
of mnemonic labels; free this list with g_list_free() when you
are done with it.
</return>
</function>

<function name="gtk_widget_map">
<description>
Causes a widget to be mapped if it isn’t already.

This function is only for use in widget implementations.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_measure">
<description>
Measures @widget in the orientation @orientation and for the given @for_size.

As an example, if @orientation is %GTK_ORIENTATION_HORIZONTAL and @for_size
is 300, this functions will compute the minimum and natural width of @widget
if it is allocated at a height of 300 pixels.

See [GtkWidget’s geometry management section](class.Widget.html#height-for-width-geometry-management) for
a more details on implementing `GtkWidgetClass.measure()`.

</description>
<parameters>
<parameter name="widget">
<parameter_description> A `GtkWidget` instance
</parameter_description>
</parameter>
<parameter name="orientation">
<parameter_description> the orientation to measure
</parameter_description>
</parameter>
<parameter name="for_size">
<parameter_description> Size for the opposite of @orientation, i.e.
if @orientation is %GTK_ORIENTATION_HORIZONTAL, this is
the height the widget should be measured with. The %GTK_ORIENTATION_VERTICAL
case is analogous. This way, both height-for-width and width-for-height
requests can be implemented. If no size is known, -1 can be passed.
</parameter_description>
</parameter>
<parameter name="minimum">
<parameter_description> location to store the minimum size
</parameter_description>
</parameter>
<parameter name="natural">
<parameter_description> location to store the natural size
</parameter_description>
</parameter>
<parameter name="minimum_baseline">
<parameter_description> location to store the baseline
position for the minimum size, or -1 to report no baseline
</parameter_description>
</parameter>
<parameter name="natural_baseline">
<parameter_description> location to store the baseline
position for the natural size, or -1 to report no baseline
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_mnemonic_activate">
<description>
Emits the ::mnemonic-activate signal.

See [signal@Gtk.Widget::mnemonic-activate].


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="group_cycling">
<parameter_description> %TRUE if there are other widgets with the same mnemonic
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the signal has been handled
</return>
</function>

<function name="gtk_widget_observe_children">
<description>
Returns a `GListModel` to track the children of @widget.

Calling this function will enable extra internal bookkeeping
to track children and emit signals on the returned listmodel.
It may slow down operations a lot.

Applications should try hard to avoid calling this function
because of the slowdowns.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return>
a `GListModel` tracking @widget's children
</return>
</function>

<function name="gtk_widget_observe_controllers">
<description>
Returns a `GListModel` to track the [class@Gtk.EventController]s
of @widget.

Calling this function will enable extra internal bookkeeping
to track controllers and emit signals on the returned listmodel.
It may slow down operations a lot.

Applications should try hard to avoid calling this function
because of the slowdowns.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return>
a `GListModel` tracking @widget's controllers
</return>
</function>

<function name="gtk_widget_paintable_get_widget">
<description>
Returns the widget that is observed or %NULL if none.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkWidgetPaintable`
</parameter_description>
</parameter>
</parameters>
<return> the observed widget.
</return>
</function>

<function name="gtk_widget_paintable_new">
<description>
Creates a new widget paintable observing the given widget.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkWidgetPaintable`
</return>
</function>

<function name="gtk_widget_paintable_set_widget">
<description>
Sets the widget that should be observed.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkWidgetPaintable`
</parameter_description>
</parameter>
<parameter name="widget">
<parameter_description> the widget to observe
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_pick">
<description>
Finds the descendant of @widget closest to the point (@x, @y).

The point must be given in widget coordinates, so (0, 0) is assumed
to be the top left of @widget's content area.

Usually widgets will return %NULL if the given coordinate is not
contained in @widget checked via [method@Gtk.Widget.contains].
Otherwise they will recursively try to find a child that does
not return %NULL. Widgets are however free to customize their
picking algorithm.

This function is used on the toplevel to determine the widget
below the mouse cursor for purposes of hover highlighting and
delivering events.


</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget to query
</parameter_description>
</parameter>
<parameter name="x">
<parameter_description> X coordinate to test, relative to @widget's origin
</parameter_description>
</parameter>
<parameter name="y">
<parameter_description> Y coordinate to test, relative to @widget's origin
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> Flags to influence what is picked
</parameter_description>
</parameter>
</parameters>
<return> The widget descendant at
the given point
</return>
</function>

<function name="gtk_widget_queue_allocate">
<description>
Flags the widget for a rerun of the [vfunc@Gtk.Widget.size_allocate]
function.

Use this function instead of [method@Gtk.Widget.queue_resize]
when the @widget's size request didn't change but it wants to
reposition its contents.

An example user of this function is [method@Gtk.Widget.set_halign].

This function is only for use in widget implementations.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_queue_compute_expand">
<description>
Mark @widget as needing to recompute its expand flags.

Call this function when setting legacy expand child
properties on the child of a container.

See [method@Gtk.Widget.compute_expand].

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_queue_draw">
<description>
Schedules this widget to be redrawn in the paint phase
of the current or the next frame.

This means @widget's [vfunc@Gtk.Widget.snapshot]
implementation will be called.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_queue_resize">
<description>
Flags a widget to have its size renegotiated.

This should be called when a widget for some reason has a new
size request. For example, when you change the text in a
[class@Gtk.Label], the label queues a resize to ensure there’s
enough space for the new text.

Note that you cannot call gtk_widget_queue_resize() on a widget
from inside its implementation of the [vfunc@Gtk.Widget.size_allocate]
virtual method. Calls to gtk_widget_queue_resize() from inside
[vfunc@Gtk.Widget.size_allocate] will be silently ignored.

This function is only for use in widget implementations.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_realize">
<description>
Creates the GDK resources associated with a widget.

Normally realization happens implicitly; if you show a widget
and all its parent containers, then the widget will be realized
and mapped automatically.

Realizing a widget requires all the widget’s parent widgets to be
realized; calling this function realizes the widget’s parents
in addition to @widget itself. If a widget is not yet inside a
toplevel window when you realize it, bad things will happen.

This function is primarily used in widget implementations, and
isn’t very useful otherwise. Many times when you think you might
need it, a better approach is to connect to a signal that will be
called after the widget is realized automatically, such as
[signal@Gtk.Widget::realize].

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_remove_controller">
<description>
Removes @controller from @widget, so that it doesn't process
events anymore.

It should not be used again.

Widgets will remove all event controllers automatically when they
are destroyed, there is normally no need to call this function.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="controller">
<parameter_description> a `GtkEventController`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_remove_css_class">
<description>
Removes a style from @widget.

After this, the style of @widget will stop matching for @css_class.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="css_class">
<parameter_description> The style class to remove from @widget, without
the leading '.' used for notation of style classes
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_remove_mnemonic_label">
<description>
Removes a widget from the list of mnemonic labels for this widget.

See [method@Gtk.Widget.list_mnemonic_labels]. The widget must
have previously been added to the list with
[method@Gtk.Widget.add_mnemonic_label].

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="label">
<parameter_description> a `GtkWidget` that was previously set as a mnemonic
label for @widget with [method@Gtk.Widget.add_mnemonic_label]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_remove_surface_transform_changed_callback">
<description>
Removes a surface transform changed callback previously registered with
gtk_widget_add_surface_transform_changed_callback().

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> an id returned by [method@Gtk.Widget.add_surface_transform_changed_callback]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_remove_tick_callback">
<description>
Removes a tick callback previously registered with
gtk_widget_add_tick_callback().

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> an id returned by [method@Gtk.Widget.add_tick_callback]
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_can_focus">
<description>
Specifies whether the input focus can enter the widget
or any of its children.

Applications should set @can_focus to %FALSE to mark a
widget as for pointer/touch use only.

Note that having @can_focus be %TRUE is only one of the
necessary conditions for being focusable. A widget must
also be sensitive and focusable and not have an ancestor
that is marked as not can-focus in order to receive input
focus.

See [method@Gtk.Widget.grab_focus] for actually setting
the input focus on a widget.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="can_focus">
<parameter_description> whether or not the input focus can enter
the widget or any of its children
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_can_target">
<description>
Sets whether @widget can be the target of pointer events.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="can_target">
<parameter_description> whether this widget should be able to
receive pointer events
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_child_visible">
<description>
Sets whether @widget should be mapped along with its parent.

The child visibility can be set for widget before it is added
to a container with [method@Gtk.Widget.set_parent], to avoid
mapping children unnecessary before immediately unmapping them.
However it will be reset to its default state of %TRUE when the
widget is removed from a container.

Note that changing the child visibility of a widget does not
queue a resize on the widget. Most of the time, the size of
a widget is computed from all visible children, whether or
not they are mapped. If this is not the case, the container
can queue a resize itself.

This function is only useful for container implementations
and should never be called by an application.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="child_visible">
<parameter_description> if %TRUE, @widget should be mapped along
with its parent.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_css_classes">
<description>
Clear all style classes applied to @widget
and replace them with @classes.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="classes">
<parameter_description>
%NULL-terminated list of style classes to apply to @widget.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_cursor">
<description>
Sets the cursor to be shown when pointer devices point
towards @widget.

If the @cursor is NULL, @widget will use the cursor
inherited from the parent widget.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="cursor">
<parameter_description> the new cursor
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_cursor_from_name">
<description>
Sets a named cursor to be shown when pointer devices point
towards @widget.

This is a utility function that creates a cursor via
[ctor@Gdk.Cursor.new_from_name] and then sets it on @widget
with [method@Gtk.Widget.set_cursor]. See those functions for
details.

On top of that, this function allows @name to be %NULL, which
will do the same as calling [method@Gtk.Widget.set_cursor]
with a %NULL cursor.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> The name of the cursor
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_default_direction">
<description>
Sets the default reading direction for widgets.

See [method@Gtk.Widget.set_direction].

</description>
<parameters>
<parameter name="dir">
<parameter_description> the new default direction. This cannot be %GTK_TEXT_DIR_NONE.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_direction">
<description>
Sets the reading direction on a particular widget.

This direction controls the primary direction for widgets
containing text, and also the direction in which the children
of a container are packed. The ability to set the direction is
present in order so that correct localization into languages with
right-to-left reading directions can be done. Generally, applications
will let the default reading direction present, except for containers
where the containers are arranged in an order that is explicitly
visual rather than logical (such as buttons for text justification).

If the direction is set to %GTK_TEXT_DIR_NONE, then the value
set by [func@Gtk.Widget.set_default_direction] will be used.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="dir">
<parameter_description> the new direction
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_focus_child">
<description>
Set @child as the current focus child of @widget.

This function is only suitable for widget implementations.
If you want a certain widget to get the input focus, call
[method@Gtk.Widget.grab_focus] on it.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a direct child widget of @widget or %NULL
to unset the focus child of @widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_focus_on_click">
<description>
Sets whether the widget should grab focus when it is clicked
with the mouse.

Making mouse clicks not grab focus is useful in places like
toolbars where you don’t want the keyboard focus removed from
the main area of the application.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="focus_on_click">
<parameter_description> whether the widget should grab focus when clicked
with the mouse
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_focusable">
<description>
Specifies whether @widget can own the input focus.

Widget implementations should set @focusable to %TRUE in
their init() function if they want to receive keyboard input.

Note that having @focusable be %TRUE is only one of the
necessary conditions for being focusable. A widget must
also be sensitive and can-focus and not have an ancestor
that is marked as not can-focus in order to receive input
focus.

See [method@Gtk.Widget.grab_focus] for actually setting
the input focus on a widget.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="focusable">
<parameter_description> whether or not @widget can own the input focus
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_font_map">
<description>
Sets the font map to use for Pango rendering.

The font map is the object that is used to look up fonts.
Setting a custom font map can be useful in special situations,
e.g. when you need to add application-specific fonts to the set
of available fonts.

When not set, the widget will inherit the font map from its parent.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="font_map">
<parameter_description> a `PangoFontMap`, or %NULL to unset any
previously set font map
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_font_options">
<description>
Sets the `cairo_font_options_t` used for Pango rendering
in this widget.

When not set, the default font options for the `GdkDisplay`
will be used.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="options">
<parameter_description> a `cairo_font_options_t`
to unset any previously set default font options
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_halign">
<description>
Sets the horizontal alignment of @widget.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="align">
<parameter_description> the horizontal alignment
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_has_tooltip">
<description>
Sets the `has-tooltip` property on @widget to @has_tooltip.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="has_tooltip">
<parameter_description> whether or not @widget has a tooltip.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_hexpand">
<description>
Sets whether the widget would like any available extra horizontal
space.

When a user resizes a `GtkWindow`, widgets with expand=TRUE
generally receive the extra space. For example, a list or
scrollable area or document in your window would often be set to
expand.

Call this function to set the expand flag if you would like your
widget to become larger horizontally when the window has extra
room.

By default, widgets automatically expand if any of their children
want to expand. (To see if a widget will automatically expand given
its current children and state, call [method@Gtk.Widget.compute_expand].
A container can decide how the expandability of children affects the
expansion of the container by overriding the compute_expand virtual
method on `GtkWidget`.).

Setting hexpand explicitly with this function will override the
automatic expand behavior.

This function forces the widget to expand or not to expand,
regardless of children.  The override occurs because
[method@Gtk.Widget.set_hexpand] sets the hexpand-set property (see
[method@Gtk.Widget.set_hexpand_set]) which causes the widget’s hexpand
value to be used, rather than looking at children and widget state.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget
</parameter_description>
</parameter>
<parameter name="expand">
<parameter_description> whether to expand
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_hexpand_set">
<description>
Sets whether the hexpand flag will be used.

The [property@Gtk.Widget:hexpand-set] property will be set
automatically when you call [method@Gtk.Widget.set_hexpand]
to set hexpand, so the most likely reason to use this function
would be to unset an explicit expand flag.

If hexpand is set, then it overrides any computed
expand value based on child widgets. If hexpand is not
set, then the expand value depends on whether any
children of the widget would like to expand.

There are few reasons to use this function, but it’s here
for completeness and consistency.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget
</parameter_description>
</parameter>
<parameter name="set">
<parameter_description> value for hexpand-set property
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_layout_manager">
<description>
Sets the layout manager delegate instance that provides an
implementation for measuring and allocating the children of @widget.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="layout_manager">
<parameter_description> a `GtkLayoutManager`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_margin_bottom">
<description>
Sets the bottom margin of @widget.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="margin">
<parameter_description> the bottom margin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_margin_end">
<description>
Sets the end margin of @widget.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="margin">
<parameter_description> the end margin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_margin_start">
<description>
Sets the start margin of @widget.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="margin">
<parameter_description> the start margin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_margin_top">
<description>
Sets the top margin of @widget.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="margin">
<parameter_description> the top margin
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_name">
<description>
Sets a widgets name.

Setting a name allows you to refer to the widget from a
CSS file. You can apply a style to widgets with a particular name
in the CSS file. See the documentation for the CSS syntax (on the
same page as the docs for [class@Gtk.StyleContext].

Note that the CSS syntax has certain special characters to delimit
and represent elements in a selector (period, #, &gt;, *...), so using
these will make your widget impossible to match by name. Any combination
of alphanumeric symbols, dashes and underscores will suffice.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name for the widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_opacity">
<description>
Request the @widget to be rendered partially transparent.

An opacity of 0 is fully transparent and an opacity of 1
is fully opaque.

Opacity works on both toplevel widgets and child widgets, although
there are some limitations: For toplevel widgets, applying opacity
depends on the capabilities of the windowing system. On X11, this
has any effect only on X displays with a compositing manager,
see gdk_display_is_composited(). On Windows and Wayland it should
always work, although setting a window’s opacity after the window
has been shown may cause some flicker.

Note that the opacity is inherited through inclusion — if you set
a toplevel to be partially translucent, all of its content will
appear translucent, since it is ultimatively rendered on that
toplevel. The opacity value itself is not inherited by child
widgets (since that would make widgets deeper in the hierarchy
progressively more translucent). As a consequence, [class@Gtk.Popover]s
and other [iface@Gtk.Native] widgets with their own surface will use their
own opacity value, and thus by default appear non-translucent,
even if they are attached to a toplevel that is translucent.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="opacity">
<parameter_description> desired opacity, between 0 and 1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_overflow">
<description>
Sets how @widget treats content that is drawn outside the
widget's content area.

See the definition of [enum@Gtk.Overflow] for details.

This setting is provided for widget implementations and
should not be used by application code.

The default value is %GTK_OVERFLOW_VISIBLE.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="overflow">
<parameter_description> desired overflow
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_parent">
<description>
Sets @parent as the parent widget of @widget.

This takes care of details such as updating the state and style
of the child to reflect its new location and resizing the parent.
The opposite function is [method@Gtk.Widget.unparent].

This function is useful only when implementing subclasses of
`GtkWidget`.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> parent widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_receives_default">
<description>
Specifies whether @widget will be treated as the default
widget within its toplevel when it has the focus, even if
another widget is the default.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="receives_default">
<parameter_description> whether or not @widget can be a default widget.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_sensitive">
<description>
Sets the sensitivity of a widget.

A widget is sensitive if the user can interact with it.
Insensitive widgets are “grayed out” and the user can’t
interact with them. Insensitive widgets are known as
“inactive”, “disabled”, or “ghosted” in some other toolkits.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="sensitive">
<parameter_description> %TRUE to make the widget sensitive
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_size_request">
<description>
Sets the minimum size of a widget.

That is, the widget’s size request will be at least @width
by @height. You can use this function to force a widget to
be larger than it normally would be.

In most cases, [method@Gtk.Window.set_default_size] is a better
choice for toplevel windows than this function; setting the default
size will still allow users to shrink the window. Setting the size
request will force them to leave the window at least as large as
the size request.

Note the inherent danger of setting any fixed size - themes,
translations into other languages, different fonts, and user action
can all change the appropriate size for a given widget. So, it's
basically impossible to hardcode a size that will always be
correct.

The size request of a widget is the smallest size a widget can
accept while still functioning well and drawing itself correctly.
However in some strange cases a widget may be allocated less than
its requested size, and in many cases a widget may be allocated more
space than it requested.

If the size request in a given direction is -1 (unset), then
the “natural” size request of the widget will be used instead.

The size request set here does not include any margin from the
properties
[property@Gtk.Widget:margin-start],
[property@Gtk.Widget:margin-end],
[property@Gtk.Widget:margin-top], and
[property@Gtk.Widget:margin-bottom], but it does include pretty
much all other padding or border properties set by any subclass
of `GtkWidget`.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> width @widget should request, or -1 to unset
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> height @widget should request, or -1 to unset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_state_flags">
<description>
Turns on flag values in the current widget state.

Typical widget states are insensitive, prelighted, etc.

This function accepts the values %GTK_STATE_FLAG_DIR_LTR and
%GTK_STATE_FLAG_DIR_RTL but ignores them. If you want to set
the widget's direction, use [method@Gtk.Widget.set_direction].

This function is for use in widget implementations.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> State flags to turn on
</parameter_description>
</parameter>
<parameter name="clear">
<parameter_description> Whether to clear state before turning on @flags
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_tooltip_markup">
<description>
Sets @markup as the contents of the tooltip, which is marked
up with Pango markup.

This function will take care of setting the
[property@Gtk.Widget:has-tooltip] as a side effect, and of the
default handler for the [signal@Gtk.Widget::query-tooltip] signal.

See also [method@Gtk.Tooltip.set_markup].

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="markup">
<parameter_description> the contents of the tooltip for @widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_tooltip_text">
<description>
Sets @text as the contents of the tooltip.

If @text contains any markup, it will be escaped.

This function will take care of setting
[property@Gtk.Widget:has-tooltip] as a side effect,
and of the default handler for the
[signal@Gtk.Widget::query-tooltip] signal.

See also [method@Gtk.Tooltip.set_text].

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="text">
<parameter_description> the contents of the tooltip for @widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_valign">
<description>
Sets the vertical alignment of @widget.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="align">
<parameter_description> the vertical alignment
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_vexpand">
<description>
Sets whether the widget would like any available extra vertical
space.

See [method@Gtk.Widget.set_hexpand] for more detail.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget
</parameter_description>
</parameter>
<parameter name="expand">
<parameter_description> whether to expand
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_vexpand_set">
<description>
Sets whether the vexpand flag will be used.

See [method@Gtk.Widget.set_hexpand_set] for more detail.

</description>
<parameters>
<parameter name="widget">
<parameter_description> the widget
</parameter_description>
</parameter>
<parameter name="set">
<parameter_description> value for vexpand-set property
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_set_visible">
<description>
Sets the visibility state of @widget.

Note that setting this to %TRUE doesn’t mean the widget is
actually viewable, see [method@Gtk.Widget.get_visible].

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="visible">
<parameter_description> whether the widget should be shown or not
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_should_layout">
<description>
Returns whether @widget should contribute to
the measuring and allocation of its parent.

This is %FALSE for invisible children, but also
for children that have their own surface.


</description>
<parameters>
<parameter name="widget">
<parameter_description> a widget
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if child should be included in
measuring and allocating
</return>
</function>

<function name="gtk_widget_show">
<description>
Flags a widget to be displayed.

Any widget that isn’t shown will not appear on the screen.

Remember that you have to show the containers containing a widget,
in addition to the widget itself, before it will appear onscreen.

When a toplevel container is shown, it is immediately realized and
mapped; other shown widgets are realized and mapped when their
toplevel container is realized and mapped.

Deprecated: 4.10: Use [method@Gtk.Widget.set_visible] instead

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_size_allocate">
<description>
Allocates widget with a transformation that translates
the origin to the position in @allocation.

This is a simple form of [method@Gtk.Widget.allocate].

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="allocation">
<parameter_description> position and size to be allocated to @widget
</parameter_description>
</parameter>
<parameter name="baseline">
<parameter_description> The baseline of the child, or -1
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_snapshot_child">
<description>
Snapshot the a child of @widget.

When a widget receives a call to the snapshot function,
it must send synthetic [vfunc@Gtk.Widget.snapshot] calls
to all children. This function provides a convenient way
of doing this. A widget, when it receives a call to its
[vfunc@Gtk.Widget.snapshot] function, calls
gtk_widget_snapshot_child() once for each child, passing in
the @snapshot the widget received.

gtk_widget_snapshot_child() takes care of translating the origin of
@snapshot, and deciding whether the child needs to be snapshot.

This function does nothing for children that implement `GtkNative`.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> a child of @widget
</parameter_description>
</parameter>
<parameter name="snapshot">
<parameter_description> `GtkSnapshot` as passed to the widget. In particular, no
calls to gtk_snapshot_translate() or other transform calls should
have been made.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_translate_coordinates">
<description>
Translate coordinates relative to @src_widget’s allocation
to coordinates relative to @dest_widget’s allocations.

In order to perform this operation, both widget must share
a common ancestor.

Deprecated: 4.12: Use gtk_widget_compute_point() instead

</description>
<parameters>
<parameter name="src_widget">
<parameter_description>  a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="dest_widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="src_x">
<parameter_description> X position relative to @src_widget
</parameter_description>
</parameter>
<parameter name="src_y">
<parameter_description> Y position relative to @src_widget
</parameter_description>
</parameter>
<parameter name="dest_x">
<parameter_description> location to store X position relative to @dest_widget
</parameter_description>
</parameter>
<parameter name="dest_y">
<parameter_description> location to store Y position relative to @dest_widget
</parameter_description>
</parameter>
</parameters>
<return> %FALSE if @src_widget and @dest_widget have no common
ancestor. In this case, 0 is stored in *@dest_x and *@dest_y.
Otherwise %TRUE.

</return>
</function>

<function name="gtk_widget_trigger_tooltip_query">
<description>
Triggers a tooltip query on the display where the toplevel
of @widget is located.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_unmap">
<description>
Causes a widget to be unmapped if it’s currently mapped.

This function is only for use in widget implementations.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_unparent">
<description>
Dissociate @widget from its parent.

This function is only for use in widget implementations,
typically in dispose.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_unrealize">
<description>
Causes a widget to be unrealized (frees all GDK resources
associated with the widget).

This function is only useful in widget implementations.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_widget_unset_state_flags">
<description>
Turns off flag values for the current widget state.

See [method@Gtk.Widget.set_state_flags].

This function is for use in widget implementations.

</description>
<parameters>
<parameter name="widget">
<parameter_description> a `GtkWidget`
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> State flags to turn off
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_close">
<description>
Requests that the window is closed.

This is similar to what happens when a window manager
close button is clicked.

This function can be used with close buttons in custom
titlebars.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_controls_get_decoration_layout">
<description>
Gets the decoration layout of this `GtkWindowControls`.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkWindowControls`
</parameter_description>
</parameter>
</parameters>
<return> the decoration layout or %NULL if it is unset
</return>
</function>

<function name="gtk_window_controls_get_empty">
<description>
Gets whether the widget has any window buttons.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkWindowControls`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the widget has window buttons, otherwise %FALSE
</return>
</function>

<function name="gtk_window_controls_get_side">
<description>
Gets the side to which this `GtkWindowControls` instance belongs.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkWindowControls`
</parameter_description>
</parameter>
</parameters>
<return> the side
</return>
</function>

<function name="gtk_window_controls_new">
<description>
Creates a new `GtkWindowControls`.


</description>
<parameters>
<parameter name="side">
<parameter_description> the side
</parameter_description>
</parameter>
</parameters>
<return> a new `GtkWindowControls`.
</return>
</function>

<function name="gtk_window_controls_set_decoration_layout">
<description>
Sets the decoration layout for the title buttons.

This overrides the [property@Gtk.Settings:gtk-decoration-layout]
setting.

The format of the string is button names, separated by commas.
A colon separates the buttons that should appear on the left
from those on the right. Recognized button names are minimize,
maximize, close and icon (the window icon).

For example, “icon:minimize,maximize,close” specifies a icon
on the left, and minimize, maximize and close buttons on the right.

If [property@Gtk.WindowControls:side] value is @GTK_PACK_START, @self
will display the part before the colon, otherwise after that.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkWindowControls`
</parameter_description>
</parameter>
<parameter name="layout">
<parameter_description> a decoration layout, or %NULL to unset the layout
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_controls_set_side">
<description>
Determines which part of decoration layout the `GtkWindowControls` uses.

See [property@Gtk.WindowControls:decoration-layout].

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkWindowControls`
</parameter_description>
</parameter>
<parameter name="side">
<parameter_description> a side
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_destroy">
<description>
Drop the internal reference GTK holds on toplevel windows.

</description>
<parameters>
<parameter name="window">
<parameter_description> The window to destroy
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_fullscreen">
<description>
Asks to place @window in the fullscreen state.

Note that you shouldn’t assume the window is definitely fullscreen
afterward, because other entities (e.g. the user or window manager)
unfullscreen it again, and not all window managers honor requests
to fullscreen windows.

You can track the result of this operation via the
[property@Gdk.Toplevel:state] property, or by listening to
notifications of the [property@Gtk.Window:fullscreened] property.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_fullscreen_on_monitor">
<description>
Asks to place @window in the fullscreen state on the given @monitor.

Note that you shouldn't assume the window is definitely fullscreen
afterward, or that the windowing system allows fullscreen windows on
any given monitor.

You can track the result of this operation via the
[property@Gdk.Toplevel:state] property, or by listening to
notifications of the [property@Gtk.Window:fullscreened] property.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="monitor">
<parameter_description> which monitor to go fullscreen on
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_get_application">
<description>
Gets the `GtkApplication` associated with the window.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> a `GtkApplication`
</return>
</function>

<function name="gtk_window_get_child">
<description>
Gets the child widget of @window.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @window
</return>
</function>

<function name="gtk_window_get_decorated">
<description>
Returns whether the window has been set to have decorations.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the window has been set to have decorations
</return>
</function>

<function name="gtk_window_get_default_icon_name">
<description>
Returns the fallback icon name for windows.

The returned string is owned by GTK and should not
be modified. It is only valid until the next call to
[func@Gtk.Window.set_default_icon_name].


</description>
<parameters>
</parameters>
<return> the fallback icon name for windows
</return>
</function>

<function name="gtk_window_get_default_size">
<description>
Gets the default size of the window.

A value of 0 for the width or height indicates that a default
size has not been explicitly set for that dimension, so the
“natural” size of the window will be used.

This function is the recommended way for [saving window state
across restarts of applications](https://developer.gnome.org/documentation/tutorials/save-state.html).

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> location to store the default width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> location to store the default height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_get_default_widget">
<description>
Returns the default widget for @window.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> the default widget
</return>
</function>

<function name="gtk_window_get_deletable">
<description>
Returns whether the window has been set to have a close button.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the window has been set to have a close button
</return>
</function>

<function name="gtk_window_get_destroy_with_parent">
<description>
Returns whether the window will be destroyed with its transient parent.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the window will be destroyed with its transient parent.
</return>
</function>

<function name="gtk_window_get_focus">
<description>
Retrieves the current focused widget within the window.

Note that this is the widget that would have the focus
if the toplevel window focused; if the toplevel window
is not focused then `gtk_widget_has_focus (widget)` will
not be %TRUE for the widget.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> the currently focused widget
</return>
</function>

<function name="gtk_window_get_focus_visible">
<description>
Gets whether “focus rectangles” are supposed to be visible.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if “focus rectangles” are supposed to be visible
in this window.
</return>
</function>

<function name="gtk_window_get_group">
<description>
Returns the group for @window.

If the window has no group, then the default group is returned.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> the `GtkWindowGroup` for a window
or the default group
</return>
</function>

<function name="gtk_window_get_handle_menubar_accel">
<description>
Returns whether this window reacts to F10 key presses by
activating a menubar it contains.

Since: 4.2

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the window handles F10

</return>
</function>

<function name="gtk_window_get_hide_on_close">
<description>
Returns whether the window will be hidden when the close button is clicked.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the window will be hidden
</return>
</function>

<function name="gtk_window_get_icon_name">
<description>
Returns the name of the themed icon for the window.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> the icon name
</return>
</function>

<function name="gtk_window_get_mnemonics_visible">
<description>
Gets whether mnemonics are supposed to be visible.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if mnemonics are supposed to be visible
in this window.
</return>
</function>

<function name="gtk_window_get_modal">
<description>
Returns whether the window is modal.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the window is set to be modal and
establishes a grab when shown
</return>
</function>

<function name="gtk_window_get_resizable">
<description>
Gets the value set by gtk_window_set_resizable().


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the user can resize the window
</return>
</function>

<function name="gtk_window_get_title">
<description>
Retrieves the title of the window.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> the title of the window
</return>
</function>

<function name="gtk_window_get_titlebar">
<description>
Returns the custom titlebar that has been set with
gtk_window_set_titlebar().


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> the custom titlebar
</return>
</function>

<function name="gtk_window_get_toplevels">
<description>
Returns a list of all existing toplevel windows.

If you want to iterate through the list and perform actions involving
callbacks that might destroy the widgets or add new ones, be aware that
the list of toplevels will change and emit the &quot;items-changed&quot; signal.


</description>
<parameters>
</parameters>
<return> the list
of toplevel widgets
</return>
</function>

<function name="gtk_window_get_transient_for">
<description>
Fetches the transient parent for this window.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> the transient parent for this window
</return>
</function>

<function name="gtk_window_group_add_window">
<description>
Adds a window to a `GtkWindowGroup`.

</description>
<parameters>
<parameter name="window_group">
<parameter_description> a `GtkWindowGroup`
</parameter_description>
</parameter>
<parameter name="window">
<parameter_description> the `GtkWindow` to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_group_list_windows">
<description>
Returns a list of the `GtkWindows` that belong to @window_group.


</description>
<parameters>
<parameter name="window_group">
<parameter_description> a `GtkWindowGroup`
</parameter_description>
</parameter>
</parameters>
<return> A
newly-allocated list of windows inside the group.
</return>
</function>

<function name="gtk_window_group_new">
<description>
Creates a new `GtkWindowGroup` object.

Modality of windows only affects windows
within the same `GtkWindowGroup`.


</description>
<parameters>
</parameters>
<return> a new `GtkWindowGroup`.
</return>
</function>

<function name="gtk_window_group_remove_window">
<description>
Removes a window from a `GtkWindowGroup`.

</description>
<parameters>
<parameter name="window_group">
<parameter_description> a `GtkWindowGroup`
</parameter_description>
</parameter>
<parameter name="window">
<parameter_description> the `GtkWindow` to remove
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_handle_get_child">
<description>
Gets the child widget of @self.


</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkWindowHandle`
</parameter_description>
</parameter>
</parameters>
<return> the child widget of @self
</return>
</function>

<function name="gtk_window_handle_new">
<description>
Creates a new `GtkWindowHandle`.


</description>
<parameters>
</parameters>
<return> a new `GtkWindowHandle`.
</return>
</function>

<function name="gtk_window_handle_set_child">
<description>
Sets the child widget of @self.

</description>
<parameters>
<parameter name="self">
<parameter_description> a `GtkWindowHandle`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_has_group">
<description>
Returns whether @window has an explicit window group.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @window has an explicit window group.
</return>
</function>

<function name="gtk_window_is_active">
<description>
Returns whether the window is part of the current active toplevel.

The active toplevel is the window receiving keystrokes.

The return value is %TRUE if the window is active toplevel itself.
You might use this function if you wanted to draw a widget
differently in an active window from a widget in an inactive window.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the window part of the current active window.
</return>
</function>

<function name="gtk_window_is_fullscreen">
<description>
Retrieves the current fullscreen state of @window.

Note that since fullscreening is ultimately handled by the window
manager and happens asynchronously to an application request, you
shouldn’t assume the return value of this function changing
immediately (or at all), as an effect of calling
[method@Gtk.Window.fullscreen] or [method@Gtk.Window.unfullscreen].

If the window isn't yet mapped, the value returned will whether the
initial requested state is fullscreen.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> whether the window has a fullscreen state.
</return>
</function>

<function name="gtk_window_is_maximized">
<description>
Retrieves the current maximized state of @window.

Note that since maximization is ultimately handled by the window
manager and happens asynchronously to an application request, you
shouldn’t assume the return value of this function changing
immediately (or at all), as an effect of calling
[method@Gtk.Window.maximize] or [method@Gtk.Window.unmaximize].

If the window isn't yet mapped, the value returned will whether the
initial requested state is maximized.


</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> whether the window has a maximized state.
</return>
</function>

<function name="gtk_window_is_suspended">
<description>
Retrieves the current suspended state of @window.

A window being suspended means it's currently not visible to the user, for
example by being on a inactive workspace, minimized, obstructed.

Since: 4.12

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return> whether the window is suspended.

</return>
</function>

<function name="gtk_window_list_toplevels">
<description>
Returns a list of all existing toplevel windows.

The widgets in the list are not individually referenced.
If you want to iterate through the list and perform actions
involving callbacks that might destroy the widgets, you must
call `g_list_foreach (result, (GFunc)g_object_ref, NULL)` first,
and then unref all the widgets afterwards.


</description>
<parameters>
</parameters>
<return> list of
toplevel widgets
</return>
</function>

<function name="gtk_window_maximize">
<description>
Asks to maximize @window, so that it fills the screen.

Note that you shouldn’t assume the window is definitely maximized
afterward, because other entities (e.g. the user or window manager)
could unmaximize it again, and not all window managers support
maximization.

It’s permitted to call this function before showing a window,
in which case the window will be maximized when it appears onscreen
initially.

You can track the result of this operation via the
[property@Gdk.Toplevel:state] property, or by listening to
notifications on the [property@Gtk.Window:maximized]
property.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_minimize">
<description>
Asks to minimize the specified @window.

Note that you shouldn’t assume the window is definitely minimized
afterward, because the windowing system might not support this
functionality; other entities (e.g. the user or the window manager)
could unminimize it again, or there may not be a window manager in
which case minimization isn’t possible, etc.

It’s permitted to call this function before showing a window,
in which case the window will be minimized before it ever appears
onscreen.

You can track result of this operation via the
[property@Gdk.Toplevel:state] property.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_new">
<description>
Creates a new `GtkWindow`.

To get an undecorated window (no window borders), use
[method@Gtk.Window.set_decorated].

All top-level windows created by gtk_window_new() are stored
in an internal top-level window list. This list can be obtained
from [func@Gtk.Window.list_toplevels]. Due to GTK keeping a
reference to the window internally, gtk_window_new() does not
return a reference to the caller.

To delete a `GtkWindow`, call [method@Gtk.Window.destroy].


</description>
<parameters>
</parameters>
<return> a new `GtkWindow`.
</return>
</function>

<function name="gtk_window_present">
<description>
Presents a window to the user.

This may mean raising the window in the stacking order,
unminimizing it, moving it to the current desktop and/or
giving it the keyboard focus (possibly dependent on the user’s
platform, window manager and preferences).

If @window is hidden, this function also makes it visible.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_present_with_time">
<description>
Presents a window to the user in response to an user interaction.

See [method@Gtk.Window.present] for more details.

The timestamp should be gathered when the window was requested
to be shown (when clicking a link for example), rather than once
the window is ready to be shown.

Deprecated: 4.14: Use gtk_window_present()

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="timestamp">
<parameter_description> the timestamp of the user interaction (typically a
button or key press event) which triggered this call
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_application">
<description>
Sets or unsets the `GtkApplication` associated with the window.

The application will be kept alive for at least as long as it has
any windows associated with it (see g_application_hold() for a way
to keep it alive without windows).

Normally, the connection between the application and the window will
remain until the window is destroyed, but you can explicitly remove
it by setting the @application to %NULL.

This is equivalent to calling [method@Gtk.Application.remove_window]
and/or [method@Gtk.Application.add_window] on the old/new applications
as relevant.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="application">
<parameter_description> a `GtkApplication`, or %NULL to unset
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_auto_startup_notification">
<description>
Sets whether the window should request startup notification.

By default, after showing the first `GtkWindow`, GTK calls
[method@Gdk.Toplevel.set_startup_id]. Call this function
to disable the automatic startup notification. You might do this
if your first window is a splash screen, and you want to delay
notification until after your real main window has been shown,
for example.

In that example, you would disable startup notification
temporarily, show your splash screen, then re-enable it so that
showing the main window would automatically result in notification.

</description>
<parameters>
<parameter name="setting">
<parameter_description> %TRUE to automatically do startup notification
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_child">
<description>
Sets the child widget of @window.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="child">
<parameter_description> the child widget
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_decorated">
<description>
Sets whether the window should be decorated.

By default, windows are decorated with a title bar, resize
controls, etc. Some window managers allow GTK to disable these
decorations, creating a borderless window. If you set the decorated
property to %FALSE using this function, GTK will do its best to
convince the window manager not to decorate the window. Depending on
the system, this function may not have any effect when called on a
window that is already visible, so you should call it before calling
[method@Gtk.Widget.show].

On Windows, this function always works, since there’s no window manager
policy involved.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> %TRUE to decorate the window
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_default_icon_name">
<description>
Sets an icon to be used as fallback.

The fallback icon is used for windows that
haven't had [method@Gtk.Window.set_icon_name]
called on them.

</description>
<parameters>
<parameter name="name">
<parameter_description> the name of the themed icon
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_default_size">
<description>
Sets the default size of a window.

The default size of a window is the size that will be used if no other constraints apply.

The default size will be updated whenever the window is resized
to reflect the new size, unless the window is forced to a size,
like when it is maximized or fullscreened.

If the window’s minimum size request is larger than
the default, the default will be ignored.

Setting the default size to a value &lt;= 0 will cause it to be
ignored and the natural size request will be used instead. It
is possible to do this while the window is showing to &quot;reset&quot;
it to its initial size.

Unlike [method@Gtk.Widget.set_size_request], which sets a size
request for a widget and thus would keep users from shrinking
the window, this function only sets the initial size, just as
if the user had resized the window themselves. Users can still
shrink the window again as they normally would. Setting a default
size of -1 means to use the “natural” default size (the size request
of the window).

If you use this function to reestablish a previously saved window size,
note that the appropriate size to save is the one returned by
[method@Gtk.Window.get_default_size]. Using the window allocation
directly will not work in all circumstances and can lead to growing
or shrinking windows.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="width">
<parameter_description> width in pixels, or -1 to unset the default width
</parameter_description>
</parameter>
<parameter name="height">
<parameter_description> height in pixels, or -1 to unset the default height
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_default_widget">
<description>
Sets the default widget.

The default widget is the widget that is activated when the user
presses Enter in a dialog (for example).

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="default_widget">
<parameter_description> widget to be the default
to unset the default widget for the toplevel
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_deletable">
<description>
Sets whether the window should be deletable.

By default, windows have a close button in the window frame.
Some  window managers allow GTK to disable this button. If you
set the deletable property to %FALSE using this function, GTK
will do its best to convince the window manager not to show a
close button. Depending on the system, this function may not
have any effect when called on a window that is already visible,
so you should call it before calling [method@Gtk.Widget.show].

On Windows, this function always works, since there’s no window
manager policy involved.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> %TRUE to decorate the window as deletable
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_destroy_with_parent">
<description>
If @setting is %TRUE, then destroying the transient parent of @window
will also destroy @window itself.

This is useful for dialogs that shouldn’t persist beyond the lifetime
of the main window they are associated with, for example.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> whether to destroy @window with its transient parent
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_display">
<description>
Sets the `GdkDisplay` where the @window is displayed.

If the window is already mapped, it will be unmapped,
and then remapped on the new display.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="display">
<parameter_description> a `GdkDisplay`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_focus">
<description>
Sets the focus widget.

If @focus is not the current focus widget, and is focusable,
sets it as the focus widget for the window. If @focus is %NULL,
unsets the focus widget for this window. To set the focus to a
particular widget in the toplevel, it is usually more convenient
to use [method@Gtk.Widget.grab_focus] instead of this function.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="focus">
<parameter_description> widget to be the new focus widget, or %NULL to unset
any focus widget for the toplevel window.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_focus_visible">
<description>
Sets whether “focus rectangles” are supposed to be visible.

This property is maintained by GTK based on user input,
and should not be set by applications.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_handle_menubar_accel">
<description>
Sets whether this window should react to F10 key presses
by activating a menubar it contains.

Since: 4.2

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="handle_menubar_accel">
<parameter_description> %TRUE to make @window handle F10
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_hide_on_close">
<description>
If @setting is %TRUE, then clicking the close button on the window
will not destroy it, but only hide it.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> whether to hide the window when it is closed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_icon_name">
<description>
Sets the icon for the window from a named themed icon.

See the docs for [class@Gtk.IconTheme] for more details.
On some platforms, the window icon is not used at all.

Note that this has nothing to do with the WM_ICON_NAME
property which is mentioned in the ICCCM.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the themed icon
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_interactive_debugging">
<description>
Opens or closes the [interactive debugger](running.html#interactive-debugging).

The debugger offers access to the widget hierarchy of the application
and to useful debugging tools.

</description>
<parameters>
<parameter name="enable">
<parameter_description> %TRUE to enable interactive debugging
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_mnemonics_visible">
<description>
Sets whether mnemonics are supposed to be visible.

This property is maintained by GTK based on user input,
and should not be set by applications.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="setting">
<parameter_description> the new value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_modal">
<description>
Sets a window modal or non-modal.

Modal windows prevent interaction with other windows in the same
application. To keep modal dialogs on top of main application windows,
use [method@Gtk.Window.set_transient_for] to make the dialog transient
for the parent; most window managers will then disallow lowering the
dialog below the parent.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="modal">
<parameter_description> whether the window is modal
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_resizable">
<description>
Sets whether the user can resize a window.

Windows are user resizable by default.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="resizable">
<parameter_description> %TRUE if the user can resize this window
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_startup_id">
<description>
Sets the startup notification ID.

Startup notification identifiers are used by desktop environment
to track application startup, to provide user feedback and other
features. This function changes the corresponding property on the
underlying `GdkSurface`.

Normally, startup identifier is managed automatically and you should
only use this function in special cases like transferring focus from
other processes. You should use this function before calling
[method@Gtk.Window.present] or any equivalent function generating
a window map event.

This function is only useful on X11, not with other GTK targets.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="startup_id">
<parameter_description> a string with startup-notification identifier
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_title">
<description>
Sets the title of the `GtkWindow`.

The title of a window will be displayed in its title bar; on the
X Window System, the title bar is rendered by the window manager
so exactly how the title appears to users may vary according to a
user’s exact configuration. The title should help a user distinguish
this window from other windows they may have open. A good title might
include the application name and current document filename, for example.

Passing %NULL does the same as setting the title to an empty string.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="title">
<parameter_description> title of the window
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_titlebar">
<description>
Sets a custom titlebar for @window.

A typical widget used here is [class@Gtk.HeaderBar], as it
provides various features expected of a titlebar while allowing
the addition of child widgets to it.

If you set a custom titlebar, GTK will do its best to convince
the window manager not to put its own titlebar on the window.
Depending on the system, this function may not work for a window
that is already visible, so you set the titlebar before calling
[method@Gtk.Widget.show].

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="titlebar">
<parameter_description> the widget to use as titlebar
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_set_transient_for">
<description>
Dialog windows should be set transient for the main application
window they were spawned from. This allows window managers to e.g.
keep the dialog on top of the main window, or center the dialog
over the main window. [ctor@Gtk.Dialog.new_with_buttons] and other
convenience functions in GTK will sometimes call
gtk_window_set_transient_for() on your behalf.

Passing %NULL for @parent unsets the current transient window.

On Windows, this function puts the child window on top of the parent,
much as the window manager would have done on X.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> parent window
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_unfullscreen">
<description>
Asks to remove the fullscreen state for @window, and return to
its previous state.

Note that you shouldn’t assume the window is definitely not
fullscreen afterward, because other entities (e.g. the user or
window manager) could fullscreen it again, and not all window
managers honor requests to unfullscreen windows; normally the
window will end up restored to its normal state. Just don’t
write code that crashes if not.

You can track the result of this operation via the
[property@Gdk.Toplevel:state] property, or by listening to
notifications of the [property@Gtk.Window:fullscreened] property.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_unmaximize">
<description>
Asks to unmaximize @window.

Note that you shouldn’t assume the window is definitely unmaximized
afterward, because other entities (e.g. the user or window manager)
maximize it again, and not all window managers honor requests to
unmaximize.

You can track the result of this operation via the
[property@Gdk.Toplevel:state] property, or by listening to
notifications on the [property@Gtk.Window:maximized] property.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_window_unminimize">
<description>
Asks to unminimize the specified @window.

Note that you shouldn’t assume the window is definitely unminimized
afterward, because the windowing system might not support this
functionality; other entities (e.g. the user or the window manager)
could minimize it again, or there may not be a window manager in
which case minimization isn’t possible, etc.

You can track result of this operation via the
[property@Gdk.Toplevel:state] property.

</description>
<parameters>
<parameter name="window">
<parameter_description> a `GtkWindow`
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_xdp_open_uri_call_open_directory">
<description>
Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-freedesktop-portal-OpenURI.OpenDirectory&quot;&gt;OpenDirectory()&lt;/link&gt; D-Bus method on @proxy.
When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
You can then call gtk_xdp_open_uri_call_open_directory_finish() to get the result of the operation.

See gtk_xdp_open_uri_call_open_directory_sync() for the synchronous, blocking version of this method.

</description>
<parameters>
<parameter name="proxy">
<parameter_description> A #GtkXdpOpenURIProxy.
</parameter_description>
</parameter>
<parameter name="arg_parent_window">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="arg_fd">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="arg_options">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="fd_list">
<parameter_description> A #GUnixFDList or %NULL.
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> A #GCancellable or %NULL.
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> User data to pass to @callback.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_xdp_open_uri_call_open_directory_finish">
<description>
Finishes an operation started with gtk_xdp_open_uri_call_open_directory().


</description>
<parameters>
<parameter name="proxy">
<parameter_description> A #GtkXdpOpenURIProxy.
</parameter_description>
</parameter>
<parameter name="out_handle">
<parameter_description> Return location for return parameter or %NULL to ignore.
</parameter_description>
</parameter>
<parameter name="out_fd_list">
<parameter_description> Return location for a #GUnixFDList or %NULL to ignore.
</parameter_description>
</parameter>
<parameter name="res">
<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gtk_xdp_open_uri_call_open_directory().
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> Return location for error or %NULL.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the call succeeded, %FALSE if @error is set.
</return>
</function>

<function name="gtk_xdp_open_uri_call_open_directory_sync">
<description>
Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-freedesktop-portal-OpenURI.OpenDirectory&quot;&gt;OpenDirectory()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.

See gtk_xdp_open_uri_call_open_directory() for the asynchronous version of this method.


</description>
<parameters>
<parameter name="proxy">
<parameter_description> A #GtkXdpOpenURIProxy.
</parameter_description>
</parameter>
<parameter name="arg_parent_window">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="arg_fd">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="arg_options">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="fd_list">
<parameter_description> A #GUnixFDList or %NULL.
</parameter_description>
</parameter>
<parameter name="out_handle">
<parameter_description> Return location for return parameter or %NULL to ignore.
</parameter_description>
</parameter>
<parameter name="out_fd_list">
<parameter_description> Return location for a #GUnixFDList or %NULL.
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> A #GCancellable or %NULL.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> Return location for error or %NULL.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the call succeeded, %FALSE if @error is set.
</return>
</function>

<function name="gtk_xdp_open_uri_call_open_file">
<description>
Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-freedesktop-portal-OpenURI.OpenFile&quot;&gt;OpenFile()&lt;/link&gt; D-Bus method on @proxy.
When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
You can then call gtk_xdp_open_uri_call_open_file_finish() to get the result of the operation.

See gtk_xdp_open_uri_call_open_file_sync() for the synchronous, blocking version of this method.

</description>
<parameters>
<parameter name="proxy">
<parameter_description> A #GtkXdpOpenURIProxy.
</parameter_description>
</parameter>
<parameter name="arg_parent_window">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="arg_fd">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="arg_options">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="fd_list">
<parameter_description> A #GUnixFDList or %NULL.
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> A #GCancellable or %NULL.
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> User data to pass to @callback.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_xdp_open_uri_call_open_file_finish">
<description>
Finishes an operation started with gtk_xdp_open_uri_call_open_file().


</description>
<parameters>
<parameter name="proxy">
<parameter_description> A #GtkXdpOpenURIProxy.
</parameter_description>
</parameter>
<parameter name="out_handle">
<parameter_description> Return location for return parameter or %NULL to ignore.
</parameter_description>
</parameter>
<parameter name="out_fd_list">
<parameter_description> Return location for a #GUnixFDList or %NULL to ignore.
</parameter_description>
</parameter>
<parameter name="res">
<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gtk_xdp_open_uri_call_open_file().
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> Return location for error or %NULL.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the call succeeded, %FALSE if @error is set.
</return>
</function>

<function name="gtk_xdp_open_uri_call_open_file_sync">
<description>
Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-freedesktop-portal-OpenURI.OpenFile&quot;&gt;OpenFile()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.

See gtk_xdp_open_uri_call_open_file() for the asynchronous version of this method.


</description>
<parameters>
<parameter name="proxy">
<parameter_description> A #GtkXdpOpenURIProxy.
</parameter_description>
</parameter>
<parameter name="arg_parent_window">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="arg_fd">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="arg_options">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="fd_list">
<parameter_description> A #GUnixFDList or %NULL.
</parameter_description>
</parameter>
<parameter name="out_handle">
<parameter_description> Return location for return parameter or %NULL to ignore.
</parameter_description>
</parameter>
<parameter name="out_fd_list">
<parameter_description> Return location for a #GUnixFDList or %NULL.
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> A #GCancellable or %NULL.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> Return location for error or %NULL.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the call succeeded, %FALSE if @error is set.
</return>
</function>

<function name="gtk_xdp_open_uri_call_open_uri">
<description>
Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-freedesktop-portal-OpenURI.OpenURI&quot;&gt;OpenURI()&lt;/link&gt; D-Bus method on @proxy.
When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
You can then call gtk_xdp_open_uri_call_open_uri_finish() to get the result of the operation.

See gtk_xdp_open_uri_call_open_uri_sync() for the synchronous, blocking version of this method.

</description>
<parameters>
<parameter name="proxy">
<parameter_description> A #GtkXdpOpenURIProxy.
</parameter_description>
</parameter>
<parameter name="arg_parent_window">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="arg_uri">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="arg_options">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> A #GCancellable or %NULL.
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> User data to pass to @callback.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_xdp_open_uri_call_open_uri_finish">
<description>
Finishes an operation started with gtk_xdp_open_uri_call_open_uri().


</description>
<parameters>
<parameter name="proxy">
<parameter_description> A #GtkXdpOpenURIProxy.
</parameter_description>
</parameter>
<parameter name="out_handle">
<parameter_description> Return location for return parameter or %NULL to ignore.
</parameter_description>
</parameter>
<parameter name="res">
<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gtk_xdp_open_uri_call_open_uri().
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> Return location for error or %NULL.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the call succeeded, %FALSE if @error is set.
</return>
</function>

<function name="gtk_xdp_open_uri_call_open_uri_sync">
<description>
Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-freedesktop-portal-OpenURI.OpenURI&quot;&gt;OpenURI()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.

See gtk_xdp_open_uri_call_open_uri() for the asynchronous version of this method.


</description>
<parameters>
<parameter name="proxy">
<parameter_description> A #GtkXdpOpenURIProxy.
</parameter_description>
</parameter>
<parameter name="arg_parent_window">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="arg_uri">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="arg_options">
<parameter_description> Argument to pass with the method invocation.
</parameter_description>
</parameter>
<parameter name="out_handle">
<parameter_description> Return location for return parameter or %NULL to ignore.
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> A #GCancellable or %NULL.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> Return location for error or %NULL.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the call succeeded, %FALSE if @error is set.
</return>
</function>

<function name="gtk_xdp_open_uri_complete_open_directory">
<description>
Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-freedesktop-portal-OpenURI.OpenDirectory&quot;&gt;OpenDirectory()&lt;/link&gt; D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.

This method will free @invocation, you cannot use it afterwards.

</description>
<parameters>
<parameter name="object">
<parameter_description> A #GtkXdpOpenURI.
</parameter_description>
</parameter>
<parameter name="invocation">
<parameter_description> A #GDBusMethodInvocation.
</parameter_description>
</parameter>
<parameter name="fd_list">
<parameter_description> A #GUnixFDList or %NULL.
</parameter_description>
</parameter>
<parameter name="handle">
<parameter_description> Parameter to return.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_xdp_open_uri_complete_open_file">
<description>
Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-freedesktop-portal-OpenURI.OpenFile&quot;&gt;OpenFile()&lt;/link&gt; D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.

This method will free @invocation, you cannot use it afterwards.

</description>
<parameters>
<parameter name="object">
<parameter_description> A #GtkXdpOpenURI.
</parameter_description>
</parameter>
<parameter name="invocation">
<parameter_description> A #GDBusMethodInvocation.
</parameter_description>
</parameter>
<parameter name="fd_list">
<parameter_description> A #GUnixFDList or %NULL.
</parameter_description>
</parameter>
<parameter name="handle">
<parameter_description> Parameter to return.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_xdp_open_uri_complete_open_uri">
<description>
Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-freedesktop-portal-OpenURI.OpenURI&quot;&gt;OpenURI()&lt;/link&gt; D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.

This method will free @invocation, you cannot use it afterwards.

</description>
<parameters>
<parameter name="object">
<parameter_description> A #GtkXdpOpenURI.
</parameter_description>
</parameter>
<parameter name="invocation">
<parameter_description> A #GDBusMethodInvocation.
</parameter_description>
</parameter>
<parameter name="handle">
<parameter_description> Parameter to return.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_xdp_open_uri_get_version">
<description>
Gets the value of the &lt;link linkend=&quot;gdbus-property-org-freedesktop-portal-OpenURI.version&quot;&gt;&quot;version&quot;&lt;/link&gt; D-Bus property.

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.


</description>
<parameters>
<parameter name="object">
<parameter_description> A #GtkXdpOpenURI.
</parameter_description>
</parameter>
</parameters>
<return> The property value.
</return>
</function>

<function name="gtk_xdp_open_uri_interface_info">
<description>
Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page&quot;&gt;org.freedesktop.portal.OpenURI&lt;/link&gt; D-Bus interface.


</description>
<parameters>
</parameters>
<return> A #GDBusInterfaceInfo. Do not free.
</return>
</function>

<function name="gtk_xdp_open_uri_override_properties">
<description>
Overrides all #GObject properties in the #GtkXdpOpenURI interface for a concrete class.
The properties are overridden in the order they are defined.


</description>
<parameters>
<parameter name="klass">
<parameter_description> The class structure for a #GObject derived class.
</parameter_description>
</parameter>
<parameter name="property_id_begin">
<parameter_description> The property id to assign to the first overridden property.
</parameter_description>
</parameter>
</parameters>
<return> The last property id.
</return>
</function>

<function name="gtk_xdp_open_uri_proxy_new">
<description>
Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page&quot;&gt;org.freedesktop.portal.OpenURI&lt;/link&gt;. See g_dbus_proxy_new() for more details.

When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
You can then call gtk_xdp_open_uri_proxy_new_finish() to get the result of the operation.

See gtk_xdp_open_uri_proxy_new_sync() for the synchronous, blocking version of this constructor.

</description>
<parameters>
<parameter name="connection">
<parameter_description> A #GDBusConnection.
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> Flags from the #GDBusProxyFlags enumeration.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
</parameter_description>
</parameter>
<parameter name="object_path">
<parameter_description> An object path.
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> A #GCancellable or %NULL.
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> User data to pass to @callback.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_xdp_open_uri_proxy_new_finish">
<description>
Finishes an operation started with gtk_xdp_open_uri_proxy_new().


</description>
<parameters>
<parameter name="res">
<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gtk_xdp_open_uri_proxy_new().
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> Return location for error or %NULL
</parameter_description>
</parameter>
</parameters>
<return> The constructed proxy object or %NULL if @error is set.
</return>
</function>

<function name="gtk_xdp_open_uri_proxy_new_for_bus">
<description>
Like gtk_xdp_open_uri_proxy_new() but takes a #GBusType instead of a #GDBusConnection.

When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
You can then call gtk_xdp_open_uri_proxy_new_for_bus_finish() to get the result of the operation.

See gtk_xdp_open_uri_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

</description>
<parameters>
<parameter name="bus_type">
<parameter_description> A #GBusType.
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> Flags from the #GDBusProxyFlags enumeration.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> A bus name (well-known or unique).
</parameter_description>
</parameter>
<parameter name="object_path">
<parameter_description> An object path.
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> A #GCancellable or %NULL.
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> User data to pass to @callback.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_xdp_open_uri_proxy_new_for_bus_finish">
<description>
Finishes an operation started with gtk_xdp_open_uri_proxy_new_for_bus().


</description>
<parameters>
<parameter name="res">
<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gtk_xdp_open_uri_proxy_new_for_bus().
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> Return location for error or %NULL
</parameter_description>
</parameter>
</parameters>
<return> The constructed proxy object or %NULL if @error is set.
</return>
</function>

<function name="gtk_xdp_open_uri_proxy_new_for_bus_sync">
<description>
Like gtk_xdp_open_uri_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.

The calling thread is blocked until a reply is received.

See gtk_xdp_open_uri_proxy_new_for_bus() for the asynchronous version of this constructor.


</description>
<parameters>
<parameter name="bus_type">
<parameter_description> A #GBusType.
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> Flags from the #GDBusProxyFlags enumeration.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> A bus name (well-known or unique).
</parameter_description>
</parameter>
<parameter name="object_path">
<parameter_description> An object path.
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> A #GCancellable or %NULL.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> Return location for error or %NULL
</parameter_description>
</parameter>
</parameters>
<return> The constructed proxy object or %NULL if @error is set.
</return>
</function>

<function name="gtk_xdp_open_uri_proxy_new_sync">
<description>
Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page&quot;&gt;org.freedesktop.portal.OpenURI&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.

The calling thread is blocked until a reply is received.

See gtk_xdp_open_uri_proxy_new() for the asynchronous version of this constructor.


</description>
<parameters>
<parameter name="connection">
<parameter_description> A #GDBusConnection.
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> Flags from the #GDBusProxyFlags enumeration.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
</parameter_description>
</parameter>
<parameter name="object_path">
<parameter_description> An object path.
</parameter_description>
</parameter>
<parameter name="cancellable">
<parameter_description> A #GCancellable or %NULL.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> Return location for error or %NULL
</parameter_description>
</parameter>
</parameters>
<return> The constructed proxy object or %NULL if @error is set.
</return>
</function>

<function name="gtk_xdp_open_uri_set_version">
<description>
Sets the &lt;link linkend=&quot;gdbus-property-org-freedesktop-portal-OpenURI.version&quot;&gt;&quot;version&quot;&lt;/link&gt; D-Bus property to @value.

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

</description>
<parameters>
<parameter name="object">
<parameter_description> A #GtkXdpOpenURI.
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> The value to set.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gtk_xdp_open_uri_skeleton_new">
<description>
Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page&quot;&gt;org.freedesktop.portal.OpenURI&lt;/link&gt;.


</description>
<parameters>
</parameters>
<return> The skeleton object.
</return>
</function>

</root>
